I'd like an external private hybrid cloud, dry, with whole milk, please!
Enterprises rise to the cloud, terminology takes off - as if we didn't have enough cloud confusion already. But it's not all bad news - some of the terms do make sense. While many of the benefits associated with the cloud are independent of cloud type – internal, external, private, public – the type of cloud does determine regulatory compliance, security, and financial benefits. The cloud end-user mostly shouldn't care, but to IT these are important considerations.
Note that I'm exclusively talking about infrastructure clouds (IaaS) here, like Amazon EC2, so all this is orthogonal to the SaaS vs. PaaS vs. IaaS terminology axis.
Many of the benefits of the cloud to central IT are independent of the exact nature of the cloud:
- Automation increases reliability and system administrators' efficiency
- Self provisioning by end users reduces IT menial labor
- Cost reduction by homogenizing and simplifying the infrastructure
But when we get to regulatory, security, and financial benefits internal/external and public/private cloud types come into play. Let me try to define:
- An internal cloud is located in the enterprise data center and it owns the assets
- An external cloud is located at a service provider and charges are expensed
- A private cloud is dedicated to an organization - it's "single tenant" in that sense (but that's a tricky nomenclature, because a private cloud may be used by many internal tenants within the organization)
- A public cloud is shared across many organizations that don't know about each other
Several combinations of the above make sense:
- An internal private cloud could be a Eucalyptus or (future) vCloud implementation in the data center of a large enterprise
- An external private cloud could be a service provider, such as perhaps IBM dedicating a number of racks in its facilities for a cloud it operates on an enterprise's behalf
- An external public cloud is what the cloud started as with Amazon EC2 and what is now emulated by others, such as Rackspace
- An internal public cloud doesn't make much sense to me, but I'm sure we'll see some. Perhaps it can make sense for renting out unused capacity?
This nomenclature turns out to be useful in teasing out the benefits of these various types of clouds. For public vs. private clouds the two main distinguishing factors are isolation and elasticity. In a private cloud it is easier to draw a hard boundary around the servers, the storage, and the network used by an organization's cloud resources. This may have advantages from a security compliance and audit point of view. On the flip side, public clouds will tend to have more elasticity than private clouds because of the increased scale and ability to balance across more disparate types of uses. The elasticity is an important cloud characteristic because it underlies a number of the end-user benefits.
Amazon's Virtual Private Cloud (VPC) is an interesting midpoint between the strict public and private definitions. The VPC provides increased isolation between a VPC's resources and those of other users, but Amazon isn't very clear on the exact nature of this increased isolation. At the same time the VPC does not compromise elasticity and cost-effectiveness, which is important. Werner Vogels argues that without the elasticity it's not a cloud.
The three main distinguishing benefits of internal vs. external clouds are about control, the nature of the costs and cloud locations. By outsourcing the cloud infrastructure to a service provider the typical cap-ex costs of computing infrastructure can be turned into variable costs that scale relative to the actual use of resources. As more and more service providers offer clouds across the globe it is also increasingly easy to place compute resources where they are needed, whether for latency reasons or for regulatory purposes. Internal clouds are bound to where the enterprise has or can summon physical resources.
That leaves the word "hybrid." At RightScale we've been using it to denote where an organization makes use of different types of clouds, which is something we believe will be common. Given the large application portfolios in many enterprises some will undoubtedly be good candidates for credit-card-based self-provisioning in external public clouds, while others will remain under close scrutiny of IT in internal private clouds for a long time. This type of hybrid use is where the RightScale service is very effective at providing a seamless experience across the many clouds.
While all the concerns around the internal / external / private / public nature of a cloud is interesting, it is important not to lose track of the fact that a cloud is a means, not an end. The most important thing is to deliver the benefits of the cloud to its end users, those who will launch servers in the cloud and use the cloud on a daily basis. In the enterprise space this includes many constituencies across the organization outside of central IT thanks to the fact that the cloud moves the provisioning closer to the end user. Developers can launch dev servers in the cloud when they need them and shut them down again when they're done. Test engineers can launch whole clusters for test runs and they go away automatically at the end of the run. Operations engineers can set up staging systems for short periods to engineer the roll out of the next release. Marketing support engineers can launch demo systems for events or important prospects, and in general the various business units are in more direct control of their compute resources. All these users are outside of central IT.
The cloud end user benefits I see in the enterprise settings:
- Self-provisioning by end users so they can decide when, what, and how much
- Increased flexibility and reduced planning thanks to the on-demand nature of the cloud
- Reduced costs thanks to fewer idle servers and economies of scale and commoditization
- Increased operational efficiency thanks to more automation from management platforms like RightScale
It's important to note that none of the end-user benefits are directly related to whether it's a private, public, internal, or external cloud. End users should care about the elasticity and on-demand nature of the cloud as well as the automation offered by cloud management services like RightScale.
The different terms do make sense in the right context, but I worry that everything cloud is becoming yet more complex when one of the fundamental benefits of the cloud is simplicity and standardization. The need to simplify IT was one of the top messages delivered by VMware CEO Paul Maritz at VMworld this year. We have to continue simplifying and standardizing clouds and cloud application architectures at the same time as the forces of enterprise IT try to pull it all in a thousand different directions.