James Thew - Fotolia
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.
Rackspace's Cloud Block Storage offers infinite scalability
Dig Deeper on Cloud application monitoring and performance
Related Q&A from Chris Moyer
Can an application have Python as a container, run SQL queries on an external Microsoft SQL database and publish the results on an Apache web server ... Continue Reading
The wait is over, as you can now trigger Lambda functions with SQS messages. Follow these steps to get up and running with this new capability. Continue Reading
Event-driven computing means no IaaS provisioning and no data center to run. Can I migrate all enterprise apps to be event-driven? Continue Reading