One of my readers asked for a post about cloud computing. I went straight to my in-Austin expert, Ynema Mangum, and she exceeded my expectations by writing the post! This is a guest post by Ynema Mangum, architect at Hewlett-Packard. She contributed information about web metrics to my book, Conversation and Community: The Social Web for Documentation. She’s working on a chapter for the upcoming book Cloud Computing: Principles and Paradigms. I’ll post a second guest post from Ynema next week.
Cloud computing represents a paradigm shift from traditional IT rooted in heavy process and technology-centric management to agile processes and service-centric management. This shift converges with Web 2.0 and distributed application design, resulting in democratized computing and an economic revolution — where the developer can deploy enterprise grade applications and user services without having to pay the capital expense for the underlying IT infrastructure. It represents a radical change and requires a culture shift for IT when building a private cloud.
Today, confusion exists about exactly what cloud is as well as how it compares to current IT methods and technologies. Clearing the air is the first order of business.
Public Cloud vs. Private Cloud
The public cloud model has is vastly different from the private cloud, creating a chasm in their connection. The current expectation for public cloud infrastructure and platform services is the ability to provision compute, storage, database and networking resources in a few minutes, completely online without establishing an agreement or talking to a person.
Private cloud computing has different challenges for the service provider, but often is faced with the same expectations. Regulatory compliance, security, and privacy are just the icing on the cake. The concern that seems most often forgotten in comparing public and private cloud models is quality and compliance of data.
Public cloud providers, in general, do not care what type of application or data you throw on the cloud. Compare that with an enterprise private cloud, where IT not only owns the performance and availability of the organizational assets, but also has responsibility for ensuring that business assets are used in the proper manner. Applications that are developed and deployed on a private cloud need to go through a series of quick checks before they can be cleared in order to prevent misuse of company assets or the risk of retrofit and ground-up redesign of applications developed outside of IT.
There is an ongoing challenge in enterprises today to segment cloud service offerings, architectures and buyer types into useful, focused categories for strategic planning, according to Frank Gillett of Forrester. For public cloud service providers, two IaaS market categories have emerged, the software Platform as a Service (PaaS) and virtual Infrastructure as a Service (IaaS) offerings that differ by level of infrastructure service and abstraction offered.
For private clouds, there are two types of compute clouds, server clouds and scale-out clouds.
- Server clouds are built for the traditional needs of the business applications, catalyzed by x86 server virtualization and adding self service provisioning.
- Scale-out clouds are designed for massive, highly distributed applications.
Virtualization vs. Cloud
Virtualization and cloud computing have much in common, including phrase overuse and hype, resulting in a lack of understanding of both. Cloud computing does not equal virtualization, but does use abstraction as a common element in each layer of the cloud. In fact, the most distinct differences between the two terms seem to be in the areas of abstraction and IT maturity.
Virtualization is datacenter-centric and technology-centric, while cloud computing is service and user-centric. Memory, desktops, applications, storage, applications, platforms, and servers can be virtualized, or abstracted from the underlying technology. Cloud computing can use or not use virtualization in its architecture.
Typically, the virtualization referred to for use in cloud computing is operating-system virtualization, where multiple virtualized machines can run on a physical server, secure and isolated from one another. These VMs provide benefits in that they can be provisioned without requesting physical hardware, changed, moved, controlled, terminated, and configured more easily than a physical machine. This results in greater efficiencies and productivity in IT, and also increases agility for the services developed and deployed on these VMs.
Beyond this layer of virtualization, cloud computing adds platforms, agile processes, and services for developers, providing value far beyond virtualization.
Utility Computing vs. Cloud
Utility computing is a business or economic model, whereas cloud computing is about technology and process architecture. Utility computing allows users to receive computing resources and “pay by consumption”. Cloud computing is a much broader concept, taking into consideration the underlying architecture and actual services delivered.
Consumer users have been reaping the benefits of the utility model in cloud computing for years — at the application as a service level. It is developers and IT who are using cloud computing in a transformative way now. IaaS and PaaS allows them to develop, test, deploy and run apps that can scale on enterprise grade technology, all without having to pay the capital expense for the underlying infrastructure. This is creating a new cloud economy and truly represents the democratization of computing.