You hear this quite a bit certainly from Infrastructure people – What is Cloud? How do you define Cloud?
It’s a really easy answer and I believe these series of headings are a good basis for it.
Probably the first rule of cloud is elasticity in the sense of dealing with scalability to meet demand and also when demand falls away. Instead of procuring resources to meet the peaks but then operate at a lower mean ‘cloud’ enables people to grow and contract. This is obviously found in Amazon’s EC2, Azure and Google App Engine but also in Amazon’s Hadoop service.
If you aren’t elastic then you aren’t Cloud.
A little weird as a second point but the thing I love about Cloud is it is month-to-month. There is no commitment beyond me paying for what I use. If you look at the Cloud as a deregulated resource market where commodity services are traded in short time frames and commitments are on a usage basis then you get my idea.
Cloud means less commitment and I believe this drives efficient use of resources. Squirrels store nuts for winter – people don’t.
Standard Interfaces using an API
Further to the point about deregulation how this was actually enacted (and done perfectly by Amazon) was via an API and a tool-set. They abstracted their resources, presented them via an API and then provided some tools to use the service. The ‘portal’ came later – initially it was a tool-set used via the command line.
There is beauty in this. The abstraction of the interface simplified the access to the resources. You can fire things up and shut things off. You could experiment, simulate, practice and then turn off an entire environment. Then you’re done.
‘Eventually Consistent’ is one of my favourite themes and I was put onto it when CouchDB first released. Whether it is Big Data (datasets) or large amounts of file storage the Cloud is replicated and eventually consistent. I suppose what I like about this is that replication is performed as part of the Cloud and as a user I don’t really need to know about it. I also like the scale that eventually consistent architectures give you. You have a big application? How about you spread your data out across the globe and service the user out of their closest geo? Why stop there how about you replicate entire data sets (over time) and put the data and the files close to the user. CouchDB takes this a step further and allows topologies where you can maintain equipment within you’re organisation and still replicate to the Cloud.
The Cloud exhibits truly massive behaviour and this is required to handle the exponential increase in data – files, databases, personalisation data etc. Hadoop and HBase are awesome examples of people resorting to Online (HBase) and Offline (Hadoop) methods of dealing with Truly Massive data. S3 is and Azure Blob Storage are examples a file level.
The Politics of The Sneaker Cloud Pimps
I think there is a real danger in people thinking that ‘Enterprise 2.0’ is the Cloud. You also see the muddying of the Cloud water with the term ‘Private Clouds’. So you re-badged your CIFS storage as a Private Cloud – well done you’re a winner. And virtualization isn’t ‘Cloud’ either (supports it Yes). Eucalyptus on the other hand is a truly awesome initiative that everyone should get behind. It took what Amazon had done and extended the nomenclature so that everyone could implement a Cloud.
I suppose what I am getting at is Cloud exhibits a series of characteristics that when they come together solve problems. You can’t take the file storage without the API or the replication (it’s Cloud!). You could do elastic virtualisation but how do I process this dataset in minutes rather than hours? Or how do I store a couple of terabytes of data using this elastically virtualised platform? That’s why I like Eucalyptus, it has the virtualization (XEN/KVM), the S3 compatible storage and also Elastic Block Storage.
Anyway that was my opening gambit so that I can get @cloudpimps off my back and say that I started blogging. My focus on this blog will be alot more on the kinds of characteristics in this post. Investigating the different areas of Cloud, adding to them, finding cool new ways to solve problems – and stay well and truly out of the Enterprise (it’s a dinosaur you know?) 😉