James Thew - Fotolia

Manage Learn to apply best practices and optimize your operations.

How do we ensure consistent performance for our cloud apps?

How can my organization choose a cloud provider that will give our applications consistent (or close to it) performance? In other words, how do we avoid the "noisy neighbor" problem of multi-tenant clouds?

We've all seen the new IBM ads that appear to be calling out "the big cloud providers" and their ability to provide consistent performance. The ads bring up concerns about sharing underlying hardware with another customer that could have peak usage requirements and that could suddenly take down or take over your website because you're using the same provider.

The concern about consistent performance isn't new to cloud computing. It has been a concern since the existence of colocations, shared data centers, and even Internet service providers (ISPs). If you're using a cloud provider that has a single client that uses 20% or more of its underlying hardware, this could be a major problem. What happens when that provider needs all the compute or network resources for the client's busy shopping holiday? Did your cloud vendor account for that? Instead of asking, "How do I make sure nobody big is using my cloud vendor?" you should be asking, "How do I make sure my cloud vendor has more than one big customer?" If your cloud vendor is sustained mostly by a single client, that is as big a problem, as if you are mostly sustained by a single client. If that single client needs all of your attention, or none of it, you're in trouble.

But unless you're operating in very high volumes of traffic, this situation most likely will never affect you. This is mostly a fear tactic used by smaller cloud providers to draw people away from the big guys (like Amazon). Of course, you do need to make sure your cloud provider is scaling appropriately, and choosing a larger provider means they'll have more scalability and bandwidth than someone who's smaller and who could be sensitive to a single customer flooding its systems.

The best thing you can do is make sure you're in multiple regions -- if your provider supports it -- and are using multiple cloud providers, if you can. Cloud computing is unique in that you are in control of your fault tolerance and availability. If you're worried about performance and fault tolerance, you are free to use multiple platforms and load balance across them all. As always, make sure your system is partition-tolerant and can easily disable a cluster if it goes offline.

Some providers also offer services that have guaranteed performance. For example, Amazon's Dynamo Database lets you partition how much throughput your service needs, and its Elastic Block Store-provisioned IOPS let you provision exactly how much performance you need from your disks.

So to prevent your "noisy neighbor" from hurting your service, make sure you have more than one house.

Next Steps

Rackspace's Cloud Block Storage offers infinite scalability

Dig Deeper on Cloud application monitoring and performance

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

Do you have other concerns or solutions for the "noisy neighbor" issue? Share them with your peers here.
In our environment, we have a variety of servers in different regions of the country, and in other countries. Should we have a noisy neighbor issue, we just shift to different servers. It's worked pretty well for us thus far.