The principles of cloud computing are similar to shared hosting, but with one major innovation: hardware virtualization. The introduction of virtualization several years ago has lead to the rapid growth of cloud hosting today.
With cloud computing, the hardware from a cluster of several servers—CPU, memory, storage, and network—is partitioned, shared. This is all managed by a hypervisor, which is software that acts like a stripped-down operating system across multiple servers.
The hypervisor is able to manage many servers, create partitions of CPU, memory, and storage that is then offered to customers and appears to them as a dedicated server. A customer partition may be made up of one or more physical servers, but the customer is never aware of this. The hypervisor abstracts the hardware layer from the software layer completely.
The figure below illustrates this concept.
Since each customer gets his or her own virtual server "instance", there is almost no contention for resources since the hypervisor manages these partitions. Cloud computing provides great flexibility to customers to create custom configurations in the operating system, applications, database, and network.
As demand changes, customers can quickly change the size of their virtual server, adding or removing CPU and memory. The hypervisor and management tools allow the provider to quickly provision, upgrade, downgrade, and deprovision highly customized partitions, achieving better economies of scale over shared hosting. While the hypervisor does add a small degree of performance degradation, this is negligible given the power of today’s computing hardware.
Customers have almost limitless options in selecting cloud computing instances. It has truly become as flexible as ordering your own server. You can select CPU, memory, storage size, number of virtual disks, firewall, private network and routing settings, and user access controls.
The cost of cloud computing can be as low as $50 per month, or as high as several thousand dollars per month depending on the configuration. One unique feature of cloud computing versus shared hosting is that you can pay by the month or pay per CPU cycle, typically as low as $0.50 per CPU cycle.
The latter option allows customers to pay for only the computing power they use, making cloud computing an excellent choice for heavy workloads that need to compute over just a few days or weeks, or require a standby server. The New York Times was able to use Amazon EC2 cloud computing to convert their historical news records to a more web friendly format in just 36 hours.
Cloud computing providers create virtual machine templates that represent the operating system and possibly a few pre-installed applications and databases. Everything else is provisioned on demand through the hypervisor, more quickly and with many more options than with shared hosting.
Cloud computing has a higher degree of security over shared hosting. Customers control full access to their shared partition, and only the cloud provider has access to the hypervisor. The customer is solely responsible for implementing security policies on their cloud computing instance, just as they would an on-premise server.
Many cloud computing providers also support access to virtual servers through VPN or other secure network topologies. Customers can quickly and easily connect cloud computing resources to their corporate network, something that took much longer to accomplish with dedicated hosting.
If there is one thing that cloud computing providers have learned, it is that hardware failures are to be the norm, not the exception. With virtualization on hypervisors, this is much easier to manage. Physical servers can be added to the hypervisor cluster much easier than they could to a shared hosting web server cluster. The hypervisor can mange virtual machine performance through service level agreements that throttle back performance of partitions in the event of an impairment or outage. This was nearly impossible to achieve through web server clustering.
Cloud computing providers now invest more in the virtualization software and management tools and much less in the hardware. In fact, many companies are building their own hardware that is designed to be operated and replaced as inexpensively as possible.
The picture below shows a typical server in Facebook’s data center. Facebook invests heavily in virtualization to manage the hardware and is able to quickly, and inexpensively, replace failed components in their commoditized servers.
Cloud computing is important to both cloud providers and cloud consumers. Providers are able to achieve significant operational efficiencies and economies of scale in providing virtual computing resources to customers. Customers benefit by having more options at a lower cost that can be scaled up and down much more quickly than with shared hosting.
Since internet access is faster and more ubiquitous, cloud computing is a viable option to companies that cannot afford data center buildouts, or even the high cost of dedicated servers.
Disclosure - Russell Wurth is Vice President of Product Management at Verecloud, a reseller of cloud services.