26
2010
The Cloud Computing Scalability Myth
I recently contributed to a short article over at CIO titled 5 Things You Need to Know about Platform as a Service. The article quotes yours truly as stating that scalability is not guaranteed when you move to the cloud. The article quotes me as saying “That’s one of the great myths—that as soon as you go to the cloud, you scale.” Because all of my thoughts were not included in this article, I’ll expand on them here.
Cloud != Scalability (Necessarily)
It seems to me many white papers, articles, and blog posts intimate that once you deploy an app in a cloud, it suddenly scales up and down with demand, as necessary. That’s just not true, depending on what (type of) cloud you use.
IaaS Clouds Require Scalable Application Design
In a nutshell, Infrastructure as a Service (IaaS) clouds like Amazon Web Services (AWS) and RightScale provide you with virtual machine execution. You can take an application stack such as a LAMP stack that you run in your data center and move it to AWS with very little effort. But if that LAMP stack doesn’t scale in your data center, putting it on AWS won’t make it suddenly scale!
You can horizontally scale out some layers in a distributed application architecture quite easily–for example, use a load balancer to distribute requests among several web servers. But other layers such as a relational database require serious design considerations. And that takes work, sometimes lots of work depending on the type of application you have and what layer contains the performance bottlenecks.
Some PaaS Clouds Offer Turnkey Scalability
Moving up a layer in the cloud computing stack, Platform as a Service (PaaS) is a platform approach to cloud computing that generally hides infrastructure from the view of a developer. Turnkey scalability might or might not be included in apps built on the platform.
- Apps on Force.com automatically scale. Because the platform places certain restrictions on what developers can do (for example, you can’t bulk load 1M rows, individually committing each row in a loop), developers don’t necessarily need to explicitly consider scalability during the design phase. For more information, see the paper that I wrote for Salesforce.com called The Force.com MultiTenant Architecture.
- Apps on Heroku, Engine Yard, Google App Engine, and others can deliver scalability more easily than IaaS clouds, but still require scalability considerations during the design phase of app development. For example, Heroku promotes “easy scalability” provided that your app configuration addresses questions as “How many dynos will I use?” But assuming you use MySQL or some other relational database, significant scalability considerations still exist.
Read Up on Scalability
- What is Scalability? (web page)
- The Art of Scalability (book)
An article by




