In this article, well explore cloud computing from the computing and storage angle, and review some of the most important offerings in the various cloud models.
Let's begin with a definition of cloud computing, and then explore how it's being applied today.
Cloud computing is really nothing more than an abstraction of resources, separating them from the user in a way that allows them to be shared in a dynamic and scalable way.
Users pay for what they use, when they use it, making it a very cost effective service offering. Cloud computings actual efficiency is dependent upon the use model, but for many usages, it's difficult to compete with the dynamic and scalable capabilities of the cloud. So at its core, the cloud is about delivery of IT as a service. This concept is fundamentally changing the economics of data centers.
Let's now explore cloud computing in depth -- what it means, how it's deployed, and what issues exist for this new trend.
Two technologies in particular that make the cloud possible include virtualization (for IaaS and PaaS), and commodity hardware (for all of the technologies). Additionally, inexpensive hardware that includes efficient support for virtualization makes this even more attractive.
But the real key for clouds today is the hypervisor as a commodity and its ability to support commodity hardware. While IBM pioneered virtualization on big iron hardware, VMware and open-source hypervisors such as Xen and KVM have commoditized the hypervisor such that it can support low-end servers.
These innovations have created additional capabilities that make the cloud ecosystem even more compelling for cloud (virtualized infrastructure). At the high level is the hypervisor itself, which is fundamentally an operating system. The hypervisor carves a server up and transparently shares the server with a number of operating systems that see each their own instance of the server (with fewer and abstracted resources).
The next capability is the Virtual Machine, or VM, which bundles an operating system and application set together (as a file, from the perspective of the hypervisor) which makes it easy to manage and provision new OS/Application instances.
Other capabilities of these include virtual networking, which provides the means to efficiently tie VMs together without physical networking, and live VM migration, which makes it possible to move an operating system and applications between servers for RAS and load balancing. Figure 1 provides a high-level illustration for these concepts.
Figure 1: Innovations that Make the Cloud Possible
So a cloud is nothing more than a highly virtualized infrastructure (commonly with commodity hardware and storage) along with a collection of tools which enable simple administration and metering of the infrastructure use to efficiently share among a variety of diverse users with varying SLAs.
In this section, we'll explore both of these to understand the how and what of cloud computing.
The cloud deployment model focuses on where the "cloud" exists, but from the user's perspective, it's still a remote resource for all intents and purposes. There are two primary deployment models, with two additional variations on those two themes. We'll explore some of the players for these models in a later section.
The first is the public model (see Figure 2), which was the most prevalent in the cloud's resurgence. In this model, a third party provides the cloud for remote users over the Internet. A user specifies the scope of the resources needed, and the cloud provider meters and bills the user based upon their actual usage.
The public model has numerous advantages, primarily in terms of cost. The cloud provider purchases the resources from vendors and then leases them to users over time, which translates to capital expense by the cloud provider and operational expense to the user.
The user is also not required to manage the resources, but instead rely on the cloud provider for this function. This can be an advantage, or disadvantage, but is a key element of the public model decision.
Figure 2: The Public and Private Cloud Models.
While the public model has numerous advantages, particularly in initial expense, it has disadvantages in terms of privacy. In the public model (see Figure 1), your application and data resides on third party hardware, likely side-by-side with applications and data from users.
To alleviate this concern (and others), the private model arose. In the private model, the user purchases the resources to manage internally (privately). These resources are carved up in an identical fashion as the public model, to support resource sharing among a number of private (internal) users.
So in addition to the capital expense of the hardware, the private model must also be privately managed. This has a downside, but also an upside as private resources can be managed to SLAs required of the resource (instead of those advertised by a public cloud provider).