3 Ways to Ensure Good Performance for Cloud-Based Systems
By David S. Linthicum
Those moving to the cloud are often taken aback by system performance surprises after deployment. Some are good surprises, such as the ability for cloud-based resources to auto-provision the resources required to manage huge data and computing loads. Some are bad surprises, such as the unexpected latency when transmitting data back and forth over the open Internet.
How can we avoid these surprises as we move to cloud computing? Here are three things to consider:
First, understand the model for most public cloud-based resources. Processing that occurs within the cloud (we'll call this intra-cloud) is typically fast, considering that all communications occur internally and resources may be allocated and de-allocated for use by your process. Thus, you want to leverage the intra-cloud model as much as possible.
However, many design and build systems residing on public clouds that are "chatty." This means that they are constantly communicating back to systems within the enterprise over the Internet. For instance, constantly updating a user interface or a database. Thus, they are subject to the latency of leveraging the open Internet as a communication mechanism. The more you avoid communicating back to the enterprise, the better your cloud computing system will perform.
Second, look at the legal angle, such as the SLAs (service-level agreements). Your only leverage to hold your cloud provider's feet to the fire is contained within these SLAs that were put in place when you signed up for the service. These SLAs typically state performance expectations, including response times and financial penalties for slow performance. Indeed, I've had users that are owed money at the end of the month due to logged performance issues and outages. You'll find that public cloud computing providers typically live up to these SLAs as long as they are structured and written correctly.
Finally, consider a private cloud. Cloud computing has three core models:
- Public, where cloud computing services used are remotely hosted by a provider that sells these services to all who will pay
- Private, meaning you purchased the hardware and software and set up a private cloud provider within your data center
- Hybrid, which leverages both the private and public models
Private clouds provide similar benefits of public cloud computing, but you have to purchase, host, and operate the hardware and software. One of the core benefits is performance. The cloud is down the hall, not hosted several thousand miles away. However, you still have the benefits of core cloud computing services, including self- and auto-provisioning. Moreover, enterprises typically view private clouds as more secure, but it really depends upon how you design security into them.
Performance is going to become a more important issue as cloud computing moves forward and providers begin to saturate their resources from time to time. Moreover, your focus should be on planning and design to ensure good utilization of resources, and not just tossing money and clouds at the problem. I suspect we'll learn much more about cloud computing performance in 2013.
David S. Linthicum is the founder and the CTO of Blue Mountain Labs and an internationally recognized industry expert and thought leader. He is the author or co-author of 13 books on computing, including Enterprise Application Integration (Addison Wesley). You can contact the author at email@example.com.