Our position as one of the first enterprise cloud platforms has given us a great view of the evolution of the cloud. On any given day at SOASTA we may be looking for thousands of cloud servers to simulate millions of virtual web site visitors. As a result, we’ve done more cloud testing across more cloud providers than anyone else.
In doing so, SOASTA is a consumer of Infrastructure-as-a-Service (IaaS) and a provider of Software-as-a-Service. Amazon was among the first to make IaaS available as an elastic, pay-as-you-go cloud service and have since been joined by many other providers such as Rackspace, IBM, Microsoft and GoGrid. Along with these public providers, companies like Eucalyptus and Nimbula offer behind-the-firewall cloud platform solutions.
SOASTA’s CloudTest platform depends on the swift provisioning and releasing of servers, and we must quickly identify bad instances and bring up replacements, while ensuring that each server plays its role in a distributed, multi-vendor architecture. To do this, and best take advantage of the capability to easily and affordably start, stop and manage servers, SOASTA uses cloud vendor APIs for automation.
Using Cloud APIs
Elasticity is most commonly associated with changes in supply and demand based on price. The application of elasticity in the cloud is not much different. An elastic API refers to an infrastructure vendor’s ability to respond to demand by allowing customers to quickly and automatically spin up servers, and just as quickly take them down. For applications such as performance testing this is incredibly important.
SOASTA evaluates cloud vendors based on a number of criteria. Our initial experience is always through the provider’s web-based user interface. If servers come up fast, the configuration options are appropriate, the GUI is capable, and the business model fits, we switch our attention to the cloud vendor’s API.
SOASTA’s unique grid provisioning technology uses the APIs to automate test setup. CloudTest is a sophisticated, distributed test platform that is controlled through a browser. Testers use a wizard (shown below) to quickly select provider(s), location(s), number of servers and type of servers so that within minutes they can execute large-scale performance tests.
The API should support functions such as start, stop, reboot and resize. In addition, using an API highlights the importance of intelligently handling errors and providing clear notifications. As always, meaningful error messages go a long way toward troubleshooting when there’s a problem.
No cloud vendor is immune to instances occasionally failing upon launch. Some vendors have fewer issues than others, but when it does happen you want to delete that instance and automatically replace it through the API. Also, you want to be able to do it no matter what state the instance is in. An image stuck in provisioning mode, or that can’t be stopped at all, is inconvenient, at best, and expensive if not caught.
If, like SOASTA, you have a requirement or can benefit from going cross-cloud, you’ll have to deal with the fact that every API is still quite different. Many vendors will tell you they have an AWS-like or compatible API, but that doesn’t mean you can just unplug from one and plug into another. We take care of this behind the scenes for our customers using CloudTest.
In addition to the proprietary APIs, there are ongoing collaborative efforts at creating standards within the cloud infrastructure community. Efforts like libCloud, DMTF’s Open Cloud Standards and OpenStack have gotten traction, the latter probably more so than any other to date. While still not ready for primetime, OpenStack, initiated by Rackspace and NASA Ames, is supported by players such as Dell, Cisco and Citrix, among others, and serves as the basis for the upcoming HP cloud offering. It’s also garnering interest from enterprises as the basis for internal deployments.
Cloud-based infrastructure services have matured dramatically in the last three years, with greatly increased reliability and capacity. Today, there are dozens of providers with locations around the world providing access to hundreds of thousands of affordable server resources. This access allows individual developers to exercise their creativity, and companies like SOASTA, using the available APIs, to provide services at a speed and cost that was impossible just a few short years ago.
About the Author