Brocade vTM, as a software ADC can be deployed on any x86 cloud platform. It's so simple to deploy on top of Linux or Solaris, that I'm sure people have been spinning up vTMs on Googles Compute Engine for a while now. But with the release of vTM 10.3 in December we now have an official Virtual Appliance available. It's probably about time some one published an Auto-Scaling driver too.
Auto-Scaling is a feature in Brocade vTM which allows the Traffic Manager to automatically scale your pool of servers on demand. The Auto-Scaler process constantly monitors the availability and responsiveness of your nodes, and ensures the pool is always “right-sized” for the current demands.
When the Auto-Scaler decides that the pool is not sized correctly for the current load, it will take an action to rectify the situation. If the Auto-Scaler determines that you have more nodes running than are needed, then it will take action to remove one of the nodes. When it determines that the pool has too few nodes to serve the current load, then it will take action to create a node.
The Auto-Scaler makes use of drivers to help it integrate with 3rd party cloud APIs. The Auto-Scaler makes the decisions, but then uses the driver to make the required changes in the cloud. Typically a driver provides three core functions:
status - reports the current nodes deployed and their state
createnode - used by the Auto-Scaler to deploy a new node into the cloud
destroynode - used by the Auto-Scaler to remove a node from the cloud
Some cloud drivers provide additional functionality, which can be used by the system administrator or by other vTM sub-systems. However the Auto-Scaler itself only uses the three described above.
For more information on Auto-Scaling, please refer to the Brocade vTM User Guide.
The Google Driver
The Google driver implements the three required Auto-Scaling functions: status, createnode, and destroynode, for integration with Google Compute Engine.
It authenticates with the Google API, either with the a token retrieved from a local metadata server, or by autheticating with it's own OAUTH2 credentials. If you use the OAUTH2 authentication method, then you must run the special authclient function first to establish those credentials.
For a full list of functions and their arguments, execute the driver with no paramaters.
Instructions on using the driver and the driver itself are attached below.