I had the good fortune to attend a Black Marble event on cloud computing last week.   One of the things that Simon Davies (a friend and colleague at Microsoft) talked about was the future of Azure and the Microsoft cloud offerings.  At the start of his presentation Simon used two quotes to summarise Cloud computing:

“A style of computing where SCALABLE and ELASTIC IT-enabled capabilities are provided as a service to external customers using Internet technologies.”

Gartner, Inc. “Hype Cycle for Cloud Computing,” 2009, by Daryl Plummer et al, July 16, 2009

“A standardized IT capability, such as SOFTWARE, APP PLATFORM, OR INFRASTRUCTURE, delivered via Internet technologies in a pay-per-use and self-service way. “

“How To Message "Cloud" Offerings And Not Get Lost In The Fog,” Forrester Research, Inc., July 2009

What struck me most about these two was the term Elastic.  Most customer ‘cloud’ conversations I have focus on scale – ‘I want my application to be highly available and highly scaleable’   And of course companies offering cloud based solutions such as Azure rightly focus in on this area.

But Elastic is more important.  

Cloud computing services are based around shared/pooled resources – and whilst that means infinite scalability it also means that freeing up resources when you have finished with them is equally important.

Using services such as Azure there is a financial imperative i.e. you are charged for what you use and this therefore focuses the mind in terms of freeing up resources when they are no longer required.

But this also needs to apply to private cloud services.

Private cloud services, such as Governments G-Cloud initiative, need to incentivise departments to free up resources as easily as they scale to consume them.  Otherwise the economies of scale and the benefits of a cloud based infrastructure will not be realised.

New programming and management disciplines will also be required to ensure that resources can be easily relinquished (and in some cases the applications successfully uninstalled) to ensure that resources are given back to the pool.  I wonder how many organisations are introducing new testing regimes to ensure that their applications are elastic?