Hidden deep within an article on scalability was a fascinating insight. Once you read it, it makes sense, but because cloud computing forces our attention to the logical (compute resources) rather than the physical (hardware) it’s easy to overlook.

blockquote “Cloud computing is actually making this problem a little bit worse,” states Leach [CTO of domain registrar Name.com], “because it is so easy just to throw hardware at the problem. But at the end of the day, you’ve still got to figure, ‘I shouldn’t have to have all this hardware when my site doesn’t get that much traffic.’”

The “problem” is scalability and/or performance. The solution is (but shouldn’t necessarily be) “more hardware.”

Now certainly you aren’t actually throwing more “hardware” at the problem, but when you consider what “more hardware” is intended to provide you’ll probably quickly come to the conclusion that whether you’re provisioning hardware or virtual images, you’re doing the same thing. The way in which we’ve traditionally approached scale and performance problems is to throw more hardware at the problem in order to increase the compute resources available. The more compute resources available the better the performance and the higher the capacity of the system. Both vertical and horizontal scalability strategies employ this technique; regardless of the scalability model you’re using (up or out) both increase the amount of compute resources available to the application.

As Leach points out, cloud computing exacerbates this problem by making it even easier to simply increase the amount of compute resources available by provisioning more or larger instances. Essentially the only thing that’s changed here is the time it takes to provision more resources: from weeks to minutes. The result is the same: more compute resources.