It has become clear that the infrastructure services provided by the cloud are being driven by applications that are particularly well suited to taking advantage of virtualization and elasticity. Elasticity is most commonly associated with changes in supply and demand based on price. The definition for the cloud is not much different. An elastic API refers to an infrastructure vendor’s ability to quickly respond to demand by allowing customers to quickly spin up servers, and just as quickly take them down. For applications such as performance testing this is incredibly important.
The best-known examples are companies that leverage the cloud to accommodate dramatic swings in traffic or short-term application requirements. For instance, pharmaceutical and financial services companies have heavy compute requirements that may last for hours or weeks at a time. These apps are a great match for the ability to deploy hundreds or thousands of compute cores, on-demand. As a specific example, last year Intuit deployed servers in the cloud for their Taxcaster application since it only needed to support peak traffic for the few weeks out of the year surrounding tax deadlines.
Testing and development has become a killer app for the cloud. Development and test beds are often deployed for short periods of time, have increased use based on business cycles, need to scale on-demand to respond to specific requirements such as duplicating production infrastructure or generating load, have limited privacy and security concerns, and are simple to deploy.
Leveraging the cloud for testing yields a number of benefits:
- It’s now possible to test at both typical and peak traffic levels, from hundreds of users to millions
- Generating geographically dispersed load provides the most accurate representation of real-world traffic
- The lower cost enabled by renting hardware, and using an on-demand service, allows testers to respond to accelerated development cycle times by making agile performance testing a realistic alternative
- Measuring both internal and external tests, and using both the lab and production environments, provides the most efficient and effective results
- Testing live web-based applications in production and from outside the firewall is the only way to gain complete confidence in the application
This last point usually causes folks to sit up and take notice. There’s risk involved in testing a live, production site. Historically, companies would test a fraction of expected load in the lab and then extrapolate what those results would mean when actual load was hitting the site. So where’s the greater risk: testing a live site or not knowing if your site will scale to meet demand?
According to JP Garbani, Vice President and Principal Analyst at Forrester Research, 74% of application performance problems are still reported by end-users to a service/support desk rather than found by infrastructure management. That may have been somewhat acceptable when most applications were internal facing and had hundreds of users. But web applications are exposed to a much larger potential audience, often made up of customers. And the failure or poor performance of an application has a direct impact on the perception of the brand and, potentially, revenue.
About the Author