Over the last few years I've gotten a lot of pressure to call our Elastic Computing Platform, a Cloud Computing Platform. Some may wonder why I've resisted to make this some-what semantic change in the branding of our platform. Yes, our customers are deploying cloud infrastructures, but how they're doing it is what this post is about.
For me, 'the cloud' represents the Internet, or more specifically it's a way of looking at application development and deployment from a network centric point of view. It's pretty much about thinking about applications that treat or use the Internet as the operating system. To enable such an environment takes a new way of thinking about your underlying infrastructure. A unified (API driven) infrastructure that is distributed, an infrastructure that is global, an infrastructure that is fault tolerant and most importantly scalable & elastic.
Some may think that being scalable is the same as being elastic, but I'm not convinced. Being scalable means being able to grow to the demands of an application and it's user base. This says nothing about what happens after this scale as been achieved. Being 'elastic' means being able to adapt (up, out and down again) The ablity to adjust readily to different realtime conditions. The metric that matters in an elastic computing environment isn't just how many users can I support, but how fast can I adapt to support those users. Speed and performance are key. How fast can I provision a new VM, how well does that VM perform once deployed, and how much will it cost me are what matters most. The problem with scalability is the question of what happens afterward. Elasticity is all about what is happening now.