The cloud tries to meet applications’ scalability needs by using the UP and OUT approach – more powerful VM’s and redundancy. This on demand elasticity masks root causes which limit scalability while at the same time increasing your OPEX and adding more points of failure to your deployment.
Let’s think through the elasticity approach a little deeper…
The cloud is configured to automatically react to surges in load and allocate more resources such as CPU, RAM, etc. The key concept here is react AFTER the detection of a increased workload. Does this guarantee the users’s experience who were logged at the beginning of this perceived higher workload?
Why the Cloud can’t Overcome Configuration Issues which limit Scalability
All software servers (OS’s, web servers, application servers, messaging servers, database servers) come with tunable configurations which can either throttle or flood the throughput of your application. These configurations have a profound effect on usage of hardware resources. Limit the threads and the CPU will never be busy processing requests. Allocate only a certain amount of heap and the rest of the RAM is rendered untouchable by an application. Inversely, open the gates, and easily overwhelm the resources. What to do?
Performance test your application in the cloud in order to efficiently scale UP and OUT!
Engage performance engineers to design a performance test harness and execute a realistic load. Use performance testing to Expose configuration limitations. Test with the upper limit of anticipated peak load and add headroom. Let hardware resources be the real limiting scalability factor so that you can take advantage of the elasticity of the cloud.