The multiple meanings of cloud
The past six months have been eye opening. I have had the opportunity to discuss ‘the cloud’ with multiple customers, a group of analysts, the DCS hardware team, the DCS CloudEdge software team, Joyent, and Dell’s Cloud CTO. Did I mention that I love my job?
One thing is clear: If you ask 10 people for the definition of cloud, you will get 13 answers in return. Is it virtualization? Platform? SaaS? Cluster computing? Distributed computing? Dense hardware? Hosting models? OPEX vs. CAPEX?
For the time being, I have settled on two definitions that clear up the confusion by separating the biggest trends in ‘cloud’.
In this post, I’ll talk about the first definition.
Cloud definition #1: Hyperscale computing platforms
As detailed in the Google whitepapers on MapReduce and the Google File System, the primary goal of hyperscale platforms is to build scalability and reliability exclusively into the platform layer. If that sounds strange, think of it like this: what if you could run a single instance of an operating system across multiple small hardware systems, and when any of those hardware systems failed your operating system just handled it. No lost data. No restarting of databases. No manual failover.
In the diagrams to the left, I show how the different components of the system relate to reliability and scalability depending on the system architecture.
Two comments about both the middleware and hyperscale architectures:
1. It’s a stretch to say you can completely isolate the application layer from effecting scalability or reliability, but the responsibilities of the application in these areas are greatly diminished.
2. A component in the application layer does not have the ability to affect the reliability and scalability of other components within the application layer – components are isolated from one another.
The key development with hyperscale platforms is that hardware is expected to be dynamic rather than stable – to fail or to be added at any time, and the platform should absorb the change transparently on behalf of the application.
This has huge implications for hardware vendors because even in high availability applications, any hardware will do. The cost of redundancy and reliability is baked into the platform, so no need to duplicate it in the hardware. It has huge implications for software vendors because now there is a big choice to make about the platform and how much they trust the platform to meet their needs.
In hyperscale, the main hardware strategy is one that guarantees minimum capacity, but that’s not hard to accomplish because less-expensive hardware makes overprovisioning easy, as long as you have space in your racks. Handling density is now the name of the game. This is exactly what our PowerEdge C products are made for, and it is why customers are starting to buy preconfigured containers of servers at a time. It is also why we now offer Joyent pre-installed on select Dell PowerEdge servers – customers want to treat these systems as platform Lego blocks rather than independent servers.
Up next, the ‘other’ meaning of cloud . . .
This is already a long post, so I’m going to take a breather before moving to a 2nd definition of cloud that moves the conversation from IT to capabilities.
You can follow Josh on twitter (@joshneland).