Skip to content
LionsPhil edited this page Jun 5, 2015 · 4 revisions

Components

Plumage is made of four parts, which interoperate as web services:

  • UI serves the user interface, by driving the...
  • Master, which handles configuration templates, dispatches runs to clients, and collects and stores the results. You will have one of these, and it is the (only) part that stores valuable persistent data. The actual Polygraph runs are managed by a...
  • Client, which runs the Polygraph clients making requests to your proxy. You can have multiple of these in a large deployment. Each one of them drives a single...
  • Server, which runs the Polygraph servers your proxy will make requests to.

(If you want more technical detail, each of the Master, Client, and Server components serve up API documentation as a webpage on their listening port. The Master is designed so it can be driven by automation tools in advanced setups.)

Networking and hosts

Don't forget to read Web Polygraph's own documentation. At the end of the day, it's doing all the real testing. Plumage just helps you organize it.

Important: This is a testing tool which can generate heavy traffic. Keep behind your firewall.

You can put all of the components on a single machine and call it a day, but at the very least you should put the Client and Server on different machines, so they are under independent load. Here's an example real-world setup:

                +-------------+                   }  This  can  be a
                | UI & Master |                   }- VM,  so long as
                +-------------+                   }  it's responsive
                       |
               (Rest of network)
                       |
          +--------------------------+            }
          | Dedicated testing switch |            }
          +--------------------------+            }  Repeat   this
     ,-------'         |          `-------.       }- as many times
+--------+    +------------------+    +--------+  }  as  you  need
| Client |    | Proxy under test |    | Server |  }
+--------+    +------------------+    +--------+  }

If you are using Polygraph configurations with hostnames instead of IP addresses for servers, you may want to add a DNS server within the bottom section, possibly sharing a machine with the Server.

The important features of a setup like this are:

  • The UI, Master, Clients, and Servers can all communicate with each-other.
  • Traffic from the client, through the proxy, to the server has a switch to itself. This a) stops high-load performance testing hurting the rest of your network b) stops load on the rest of your network interfering with the test.
  • You can repeat the switch/Client/Server/link-to-proxy setup as many times as you need. If you buy new, beefier test kit, you can keep the older pair around for lighter tests.
  • Neither the UI nor Master are performance-critical (nor is their link to the Client and Server). For the most part the traffic between them are small, infrequent web requests, and they will tolerate a second or two of latency without ill effect.

The Plumage machines should all be running Linux. You'll have an easier time with Debian or Ubuntu since that's what it has been developed on. (BSD might work, but expect to need to do at least some tweaking.) Only the Clients and Servers will be running Polygraph if you want to try to tune them further. The proxy is up to you.

Next: Build and install Plumage

Clone this wiki locally