Monday, December 8, 2008

Cloud Scaling: Dynamic Vs Auto Scaling

There has been a rather interesting exchange on the O'Reilly's blog on the topic of Auto-Scaling in the Cloud. George Reese, founder of Valtira and enStratus, (a couple of companies I've never heard of) argues that the concept of auto-scaling is stupid.

George describes auto-scaling as the the ability to add and remove capacity into a cloud infrastructure based on actual usage. No human intervention is necessary. He goes on to say that he doesn't like this concept and vigorously talks his customers away from the idea of auto-scaling. All the more interesting consider enStratus describes their service / product as a cloud infrastructure management tool that automates the operation of your web sites and transactional applications in a cloud infrastructure. (Sounds like they specialize in Auto-scaling)

Instead he seems to prefer the concept of Dynamic-scaling. Which he describes as scaling on the ability to add and remove capacity into your cloud infrastructure on a whim—ideally because you know your traffic patterns are about to change and you are adjusting accordingly. (If I knew my traffic was going to change, then why would I need an automated scaling system?)

If I am reading George's theory correctly, Automation = Bad, Dynamic = Good. But I think he misses the point to a certain degree. The two are not mutually exclusive.

For me the concept of dynamic scaling is simply the ability to change and adapt your infrastructure. This in itself is a major advancement, until recently the ability to "change" or adapt your infrastructure in a reasonable amount of time was a extremely difficult process. Infrastructure has been a somewhat "static" resource for most traditional data centers. With the advancements in dynamic system management such as Opsware, Bladelogic and even VMWare you now have the ability to create a fully dynamic IT environment. For a large portion of the world this is a very big step forward.

I think the real issue with George's post is in the word auto. Does he actually mean automatic? (Capable of operating without external control or intervention) Or does he mean Automation? (The act or process of converting the controlling of a machine or device to a more automatic system.) I would say the latter. No scaling operation should be fully or completed automated, it should be a series of controls / rules, policies, quotas and monitors that are tailored to reduce the need for human operators involvement or for the purposes of achieving a set of requirements such as the quality of my users experience.

I'm personally all for a Dynamic Automated Infrastructure.

#DigitalNibbles Podcast Sponsored by Intel

If you would like to be a guest on the show, please get in touch.