A Practical Approach to Understanding Cloud Computing Performance

We seem to focus more and more on cloud computing performance, such as I reviewed in the story I posted earlier this week.  Recent benchmarks put Azure ahead of AWS in terms of certain aspects of performance, but AWS is ahead of everyone, in terms of the ability to scale.  So, what does that mean, specifically, to you and your enterprise?

Performance is a complex topic when considering cloud computing.  The way that IaaS and PaaS clouds operate is a lot different than traditional single-tenant on-premise platforms.  Thus, the way you evaluate and test them has to be different as well.

Those who leverage public cloud platforms believe that elasticity and performance come along for the ride. However, as systems get larger and require more resources, we also find that public clouds do, indeed, have specific performance bottlenecks that must be understood and dealt with.

As more benchmarks are published, we’ll see more instances where public cloud providers have systemic performance issues that are not that easy to fix.  While many will toss faster hardware at the problem, the culprit is typically the way the cloud is designed.

For instance, approaches to dealing with tenant management vary greatly from cloud-to-cloud, and have different performance and scaling characteristics.  Also, some cloud providers have widely distributed data centers to reduce the number of hops it takes to get to them, and thus latency, where other are more centralized and may have latency issues for those far away from the data center.

Performance issues, such as these problems, can only truly be solved with a complete public cloud restoration project, which is not likely to happen.  Therefore, we are likely to see a few of the public cloud providers face plant due to a systemic performance problem that they just can’t solve in time to capture the market.  We have seen this same pattern within other emerging technologies over the years, and cloud technology will be no different.

So, what are those in enterprise IT to do when considering cloud computing performance?  There are some basic performance concepts that you should consider as you select public cloud providers, and as you migrate data and processes to the cloud.  Below are my top 3 concepts.

Distance Equals Latency

The distance between you and your cloud center will determine the amount of latency you’ll experience, generally speaking.  You should select a provider with a regional data center that’s fairly close to the people or systems that will consume the cloud service.  You should test the connection as well, understanding that shorter distances don’t always guarantee better network response.

Most public cloud computing providers allow you to place lock systems into regional data centers. Thus, they typically won’t move outside of that data center unless they’re dealing with a business continuity situation.  This should reduce the latency you’ll experience over time, but will also increase costs since there is typically an up-charge for this service.

Poor Design Equals Poor Performance

Many of those tasked with migrating systems from the local data center to public clouds consider this an A-to-A port with few modifications required. While the system may run fine, if it’s not localized to leverage the performance features of the host cloud, you’re not getting the best performance bang for your cloud buck.

Performance should be considered in the design of your system, including how to deal with resource provisioning and de-provisioning, platform optimization, etc.. Most public cloud providers get paid regardless of whether your system is optimized or not.  However, you’ll suffer larger bills and poor performance.  With a bit of good system design that leverages the native features of the public cloud, those issues will diminish.

Understand the Approach to Tenant Management

You should understand the tenant management features of the public cloud provider, and work around any quirks. All clouds do not approach tenant management in the same way.  It’s helpful to understand how the cloud provider deals with multitenancy at an architecture level so you can optimize your use of the public cloud resource.

The idea is to alter your approach to when, how, and the size of the chunks of resources you provision to support your system processing. For example, you may find that provisioning smaller amounts of resources at a time does not task the tenant management system as much as allocating one large chunk. The idea is to understand the quirks of the cloud, and work around them to optimize performance.

As we become more experienced with public clouds, the ability to manage performance should improve.  Also, over time, cloud providers should learn and evolve their cloud computing offerings to provide better performance and scalability.  However, for the next few years, cloud computing performance management will be a necessary skill that most enterprises will need.