What is the Cloud? A conversation.
Posted on Saturday, January 10, 2009 | 2 Comments
There have been some posts about “What is a cloud?”. Scott started the conversation in his shortakes by saying how ”amorphous and undefined cloud computing is”. Simon then gave the answer a shot by writing up some detailed notes on “What is a cloud?”
Having been writing about VMware and Cloud since Sept last year, how could I stand back without entering the conversation. I think it’s a great dialog for the VMware community and enterprises to be having. Vendors respond to the market so the market needs to be talking.
Let’s define some things out here. How does the industry define cloud?
“Cloud computing is Internet-based ("cloud") development and use of computer technology ("computing"). The cloud is a metaphor for the Internet, based on how it is depicted in computer network diagrams, and is an abstraction for the complex infrastructure it conceals. It is a style of computing in which IT-related capabilities are provided “as a service”, allowing users to access technology-enabled services from the Internet ("in the cloud") without knowledge of, expertise with, or control over the technology infrastructure that supports them.”
“Cloud computing is “a style of computing where massively scalable IT-related capabilities are provided ‘as a service’ across the Internet to multiple external customers.”“Cloud Computing = an emerging IT development, deployment and delivery model, enabling real-time delivery of products, services and solutions over the Internet (i.e., enabling cloud services)”“Cloud Computing is a lightweight entry/exit service acquisition model, consumption based pricing, accessible using standard internet protocols, elastic and improved economics due to shared infrastructure.”
Now what are the common elements amongst these definitions? I think a lot of these and other broader characteristic based definitions can be solidified into three core elements.
Usually described as over the Internet but its just as valid for delivery to be via a private network. After all the term cloud comes from the traditional method of drawing the Internet, or a Wide Area Network (WAN), on a network diagram.
Whether you call in resources on demand or scalable the intent here is the elastic nature. This core element shows how the core elements can be broken down into further frequently derived characteristics. Due to elasticity more flexible pricing models may be used, such as pay as you go.
All of the definitions described what is delivered as a service. This service is what abstracts the underlying technology from the delivery of that technology. What this requires is standards on how that service is delivered which we will expand on more shortly.
As a great preacher I know always says “What is this text not telling us?” What is not cloud computing. I think Wikipedia has a good statement on this.
“Cloud computing is often confused with grid computing, ("a form of distributed computing whereby a 'super and virtual computer' is composed of a cluster of networked, loosely-coupled computers, acting in concert to perform very large tasks"), utility computing (the "packaging of computing resources, such as computation and storage, as a metered service similar to a traditional public utility such as electricity") and autonomic computing ("computer systems capable of self-management"). Indeed many cloud computing deployments are today powered by grids, have autonomic characteristics and are billed like utilities, but cloud computing can be seen as a natural next step from the grid-utility model.”
VMware support this view of what Cloud is not. In the VMware whitepaper “IT in the Cloud: Using VMware vCloud for Reliable, Flexible, Shared IT Resources” it is stated that “cloud is a continuation of utility based computing”. I think this is where some confusion exists in the VMware space as the term “internal Cloud” is often used. Internal Clouds are the morphing of you’re internal utility based computing, which is based on VDC-OS.
Maybe we need a better definition for internal Clouds. If you have a single internal data center with a virtualized environment based on VDC-OS what you have is utility computing, not cloud. Once you have two data centers and start choosing to pull services from either one, over your network, you just turned each of them into an internal Cloud, because now they are providing elastic capacity to each other and we have an element of remote delivery of a service, hence matching our definition of Cloud. Once you start to describing, moving and orchestrating these services (workloads) with vCloud, we are truly Cloudy, all be it internally.
I wonder if we need this distinction for internal Clouds and if this segmentation is right? Maybe we can get Bill Shelton to comment and give some insights on this proposed distinction.
Now let’s get back to this service delivery part of the definition as I think this is very important. Any of these clouds, no matter if they are yours or someone else’s all deliver some form of service. There are many different services and interaction which will be to a standard or an API that may be either propriety or open. By now I think we can take it as a accepted that there are three types of services categories delivered via Cloud. These are Software or Application (SaaS), Platform (PaaS) and Infrastructure (IaaS). Let’s delved into these.
Software as a Service (SaaS).
Software is essentially applications services where all of the applications and data are stored within the cloud. Here we are being provided a high level service which will include nearly all of the elements apart from the client interface. Popular examples are Salesforce.com, Webex, Gmail. Google Apps. Each of these delivers a service to a standard that is propriety or open (such as HTTP). There are other software services provided within SaaS, what about Google News which is a Cloud service provided by an open standard of either (HTTP or RSS). The use case here is if as an organization you need a new application, you can go to the cloud for delivery and you only need to manage the client end.
Platform as a Service (PaaS).
Platform is the building blocks for delivering an application service. Examples of platforms are resources such as computing execution cycles, storage, authentication. You need to provide some magic sauce to make effective us of a PaaS, whether that be in the form of code to be executed, data to be stored and you will need to integrate that into whatever application it is that you have. Popular examples are Google App Engine, Amazon S3, Microsoft Azure, 3tera. Again, each of these delivers the service to a standard that is propriety or open (such as Python, Ruby, Hadoop, .Net, AppLogic). The use case here is if you need a particular resource, instead of managing in you can go to the cloud for delivery but you are going to need to somehow manage the integration of this service into your overall solution. That integration may be trivial or complex.
Infrastructure as a Service (IaaS).
Infrastructure relates to computer infrastructure which typically equates to a virtualisation platform executing a machine. Examples include Amazon EC2, GoGrid. Again, each of these delivers the service to a standard that is propriety or open (such as AMI, OVF). The use case here is if you need some capacity to execute a generic machine work load, instead of building the infrastructure yourself you can go to the cloud. However you will be responsbile generally for the maintenance of the workload and all its software.
VMware fits into this cloud computing space at many levels, as I have previously described.
VMware is attempting to be the platform of choice for IaaS, this is through VDC-OS and vApp. By introducing the concept of federation between clouds via the vCloud API a new model comes into play that is very attractive to the corporate market, something that does not exist in the current Cloud space. VMware lead in the virtualized datacenter and they need to quickly capture some market share in the Cloud virtualisation space too.
There is a space for VMware in SaaS. As Bill Shelton has previously publically mentioned VMware are investing into the Virtual Appliance space. A virtual appliance can be seen as a form of SaaS and you have the advantage that you can run it locally or out in the Cloud. This also allows SaaS providers much great flexibility in how they deploy their offerings for customers.
The PaaS space is where VMware has the challenge. What VMware want here is everyone to build their systems on open standards. This allows them to be packaged into IaaS workloads that can be run anywhere (internally or externally) without lockin to propriety providers, such as Microsoft Azure. An example here is writing in Ruby and deploying in Ruby On Rails.
Lastly, as its slightly off topic. How do organizations prepare for the Cloud. Without diving into details here is what will hold you back. If you have not virtualised, centralised, automated and packaged; if you have not streamlined networking, accelerated you WAN and gained an understanding of you chargeback or costing models; you are going to be starting from the change room whilst your competitors are poised on the start line and it may be a long slow walk to get there.
Let the conversation continue.