|By Brad Vaughan||
|March 17, 2011 11:30 AM EDT||
There is a common question that almost universally arises when people discuss cloud computing. The question came up in a webinar I did with Rackspace last week. It was featured in regular conversation at Cloud Connect and then again on Twitter from Adrian Cockcroft. The question was framed like;
- "There is no technical reason for private cloud, it's all $, FUD, and internal politics. Discuss." - Adrian Cockcroft,
- Do you think there is a need for private clouds (vs. public)?
Important to note we are not talking whether they should run on a cloud. This argument only applies to applications and workloads that have already been determined to be a good fit for cloud.
The second question is more easily answered as it alludes to diverse organizational requirements that are unable to be serviced by a commodity service, or the natural inertia of organizations to adopt new methods. The arguments for adoption of private cloud over public cover a range of topics, including:
- Service level agreements
- Security needs
- Migration costs
- And many more
The more meaty argument is Adrian's. Is there any "technical reason" for not running on public cloud? This challenges us to try and determine if there are architectural patterns that public clouds cannot provide.
Adrian is royalty in the realm of cloud (I prefer "royalty" because it reflects respect for his achievement and position, instead of the term "clouderati," which reflects some sort of enlightenment), but his question is a little sensational. First of all it is so broad, it's difficult to support or refute. Second, it encompasses the future, for which anything is possible. He blogs in more detail here.
But, for what it's worth, here are my thoughts. Public clouds are designed on one basic premise that differentiates them from a private cloud - "Economies of Scale." Having enough workload running in a multi-tenancy environment will balance out noise in the elasticity of workload and also drive down costs for the operation of the infrastructure. So for a private cloud to exist technically, it needs;
- Enough volume to have economies of scale internally
- Workload elasticity to warrant a cloud
- A specific technical requirement that does not warrant economies of scale publicly
I am an architectural pragmatist. Sometimes the cloud debate gets a bit more religious and I feel more like an atheist or a nihilist. I do believe that infrastructure (compute, storage, network & operating systems) and the workloads it is able to support are sufficiently complex to represent a distribution curve of requirements. The amount that can be served by public clouds represents the meat in the middle of the curve. This curve might have an extremely narrow peak, but the tails still exist.
The argument will be that there are many different public clouds, and they can service a wide range of technical requirements, but I still believe that the underlying architecture patterns are complex enough to reveal patterns that cannot be provided in volume.
The other issue I have with economies of scale solutions is they inherently develop lowest common denominator architecture. The non-technical aspects of public clouds limit their ability to solve for all workloads.
In closing, I will try and give examples of workloads that need private clouds:
- Slot machine gaming software - very elastic workload with very specific technical requirements for security, auditability and physical machine interface. I cannot see this being supported by a public cloud.
- Online gaming - take a large Facebook-based games company. Lots of elastic workloads, but all with a very close correlation architecturally to each other. They have the economies of scale on their own to get the benefits of efficient operations. I can see them developing a private cloud that is optimized for their unique technical requirements while providing a high degree of automation to get better efficiencies than a public cloud.
In the end, I don't see public vs private cloud as a war. Maybe more of an argument for tolerance and an endorsement of the adage "to each his own".