Cloud Computing and Virtualization
Virtualization is the creation of a virtual (rather than actual) version of something, such as an operating system, a server, a storage device or network resources. Virtualization is a computing technology that enables a single user to access multiple physical devices. This paradigm manifests itself as a single computer controlling multiple machines, or one operating system utilizing multiple computers to analyze a database. Virtualization is about creating an information technology infrastructure that leverages networking and shared physical IT assets to reduce or eliminate the need for physical computing devices dedicated to specialized tasks or systems.
Cloud computing is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Through cloud computing, a world-class data center service and collocation provider offers managed IT services through a hosted or "Software as a Service (SaaS)" model. A server or database can be physically located in a highly-secure, remote location while the data is accessed from a client's computer, using the database's server to retrieve, sort, and analyze the data. This arrangement eliminates the need for a costly in-house IT department and hardware and the associated capital expense. Instead, a cloud computing provider owns the hardware while providing hosted, managed services to its clients on a usage basis. Cloud computing generally utilizes virtualized IT resources such as networks, servers, and computing devices.
There are two published definitions of cloud computing. The NIST is working on their version and Gartner is sort of working on theirs. Here are the highlights:
NIST – On-demand self-service, Ubiquitous network access (internet standards based), location independent resource pooling, rapid elasticity, and measure/metered service
NIST further describes the Characteristics of the Cloud as:
- On-demand self-service. Unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service’s provider.
- Broad network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
- Resource pooling. Computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand.
- Rapid elasticity. Capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale up and rapidly released to quickly scale down.
- Measured Service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts).
The path to the cloud is not simply a matter of virtualization and consolidation of platforms. Virtualization and consolidation are certainly important elements; they are drivers to achieving the benefits of private cloud but they alone are not enough. Most unsuccessful private cloud implementations are due purely to bad planning and poor execution. The business requirements for a cloud service must be examined thoroughly and defined based on its criticality, availability, security, scalability and operational requirements.