Everybody seems to be talking loud about cloud computing nowadays. But the recently reported outages at Salesforce, Amazon and Google has made us think otherwise and wonder if the cloud is really ready to meet all the hype and attention its getting.
No doubt, there are cost savings related to licensing, maintenance and application / server management. But does this ensure that your end users are getting the online experience you want them to have?
Is Cloud computing reliable?
When a 40-minute outage at Salesforce.com affected thousands of customers around the world in early January, it generated quite a bit of cry throughout the industry. Dan Goodin exposed the dark side of cloud computing in this article “Salesforce.com outage exposes cloud’s dark linings” when Salesforce.com suffered an outage that locked more than 900,000 subscribers out of crucial applications and data needed to transact business with customers.
What about performance monitors provided by vendors?
Many cloud computing providers provide custom built management consoles or control panels for managing server resources. These consoles provide customers with availability statistics and status messages in the event of significant outages that impact end users.
Rich Miller of Data Center Knowledge and Lenny Rachitsky from WebMetrics are among those who voiced concerns about the effectiveness of a cloud or SaaS provider hosting its own network uptime panels / dashboards. Keynote Systems Vice President Vik Chaudhary suggests that, “… the prospect of a cloud application provider doing their own performance monitoring is akin to a fox guarding the hen-house.”
So what can be done?
The first and foremost thing to keep in mind is that even you are hosting on a cloud or have a SAAS app running somewhere, your end user expectations are no different then the regular client server application. So in a generic sense User Acceptance Testing is not much different then testing on a Client Server Architecture.
Remember web based application environment in the cloud is a jigsaw puzzle of pieces. At the core you have your virtual hardware followed by your operating system. Each of your servers is then configured differently depending on its specific duty. You may have application servers, web servers, search servers, database servers etc. Each of these servers needs to be monitored from several points of view – both internally and externally.
Though you dont have direct access to performance monitoring like in a Client Server Architecture. But still you can follow following steps to make sure your users are getting the experience you want them to:
- Use the same browser for testing and monitoring that the majority of your end users are using.
- Use a Testing service like Gomez or monitis. These external watchdog systems help to keep everyone informed if the cloud is having issues. These also provides with important statistics on response time and application performance that can be used to determine how to adjust the infrastructure.
- Re-record testing scripts on a regular basis, because cloud API might change over time affecting the performance.
- Monitor the availability of the application as well as response time.
- Set alarms that let you know when performance is trending toward unacceptable levels, or when there is an abrupt decline in performance.
- Make sure monitoring agents are consistent over time so that historical data and current data can be compared easily to identify trends.
Your monitoring system can be the difference between keeping your systems alive OR having unhappy customers and missed SLAs. It can help you pinpoint exactly what went wrong and reduce the time to identify and solve the issue.