Note: Through Jan. 4, we are posting the top 10 posts of 2012. This post is #5 and was originally published April 24, 2012.
I would like to share my thoughts about the cloud ecosystem in general, and provide an internal view of a “cloud data center.” As an introduction, I’d like to write a few lines about the motivation of providing and consuming cloud services.
From a cloud service provider point of view, data center giants like IBM, Google, Microsoft, and Amazon that have massive infrastructure at their disposal, use technologies such as virtualization, service-oriented architecture to “rent out” infrastructure to small and medium businesses (SMB) that appear to constitute a fairly large chunk of the customers.
Similarly, from a cloud consumer point of view, smaller businesses can reduce up-front infrastructure capital and maintenance costs by using the infrastructure (compute, memory, and storage) offered by the cloud providers. This can also reduce or keep their in-house infrastructure footprint or inventory under control.
IaaS forms the primary service delivery model, the others being software (SaaS) and platform services (PaaS). The primary use of IaaS is to run development and test, and production workloads and applications. These workloads run on the machines residing in the cloud data centers. These public cloud data centers reside in remote locations. From a cloud service consumer perspective, the user gets direct access to a machine in the cloud as if it were in the user’s own backyard, however connected through the Internet using a remote connection (remote desktop connection or through SSH). The machine is characterized by set of resources (CPU, memory, and storage), operating system and software, which are requested as per requirements by the user. The users may similarly use the SaaS and PaaS models to use readily available software, and develop applications on platforms respectively.
Some examples are as follows:
- IaaS providers: IBM SmartCloud Enterprise, Amazon Elastic Compute Cloud (EC2), RackSpace Hosting, Microsoft
- SaaS providers: Google, Microsoft, SalesForce, Yahoo
- PaaS providers: Google, Microsoft, TIBCO, VMware, Zoho
Now we shift our attention to how a cloud service provider delivers these services. First, we need to understand how virtualization acts as a key driver for cloud computing.
Hardware virtualization is a technology that enables the creation of multiple abstract (virtual) machines on the underlying physical hardware (bare metal). Every virtual machine (VM) has a set of resources (CPU, memory, storage), which forms a subset of the parent physical machine resources. You can assign resources to your VM based on your requirements. This also means that multiple VMs when packed together on a single piece of hardware helps us achieve server consolidation (optimally packing multiple VMs) thereby reducing server sprawl. Server sprawl was observed when companies used the traditional model of deploying a single heavy stand-alone application per physical server (1:1 — one application to one server). This, over the years, has resulted in increased capital and operational costs. Virtualization helps in consolidating multiple applications and aims to achieve optimum utilization of a physical hardware’s underlying resources. From a cloud service provider’s angle, physical machines in the data center are virtualized so as to deliver infrastructure resources to customers via virtual machines. Read more about hardware virtualization.
A cloud is a virtualized data center to achieve the following objectives:
- Elasticity: Ability to scale virtual machines resources up or down
- On-demand usage: Ability to add or delete computing power (CPU, memory ) and storage according to demand
- Pay-per-use: Pay only for what you use
- Multitenancy: Ability to have multiple customers access their servers in the data center in an isolated manner
Let’s look at the components that make up a “cloud.” To understand this section better, think from the perspective of a cloud service provider so as to understand the components required to deliver cloud services. This perspective throws light on the data center, giving you an insight into how a cloud data center is structured. Two important terms in this context are management (managed-from) environment and managed (managed-to) environment. These terms inexplicitly describe the roles of a service provider and the service consumer.
The management environment is the central nervous system equivalent of the cloud; it manages the cloud infrastructure. This environment manages the infrastructure that is dedicated to the customers. The environment consists of components required to effectively deliver services to consumers. The various services offered span from image management and provisioning of machines to billing, accounting, metering, and more. The environment is characterized by hardware and software components; realized by powerful compute servers, high speed network, and storage components. The cloud management system (CMS) forms the heart of the management environment along with the hardware components.
The managed environment is composed of physical servers and in turn the virtual servers that are “managed-by” the management environment. The servers in the managed environment belong to a customer pool; where customers or users can create virtual servers on-demand and scale up/down as needed. These virtual servers are deployed from the pool of available physical servers.
In short, the management environment controls and processes all incoming requests to create, destroy, manage, and monitor virtual machines and storage devices. In the context of a public cloud, the users get direct access to the VMs created in the “managed” environment, through the Internet. They can access the machines after they are provisioned by the management layer. The figure shows a typical use case of provisioning a virtual machine.
The figure describes the following actions:
- User makes a request to create a VM by logging onto the cloud portal.
- The request is intercepted by the request manager and is forwarded to the management environment.
- The management environment, on receiving the request, interprets it and applies to it provisioning logic to create a VM from the set of available physical servers.
- External storage is attached to the VM from a storage area network (SAN) store during provisioning in addition to the local storage.
- After the VM is provisioned and ready to use, the user is notified of this information and finally gains total control of the VM. The user can access this VM through the public Internet because the VM has a public IP address.
Similar to this workflow, users can decommission and manage their servers according to their needs. They can also create new images, store snapshots of their system, and so on.
The figure demonstrates a cloud data center on a broader level, showing the compute, storage, and network elements that compose this infrastructure. Such an infrastructure applies to both a public and a private cloud model. However, make a note that this architecture is not an actual or exact architecture. It is simply a representation of what a cloud data center looks like. For the purpose of simplicity, ISDM, IBM System Director and blade servers are shown to depict the components of a cloud system.
I hope this information has given you an insight of the cloud ecosystem and the components it entails.