Cloud computing is getting a lot of attention today, much more than hosting ever did during the dot-com boom of the 1990s. But for small businesses using these services, what does it mean? How is cloud any different or better than shared hosting? And what can you use cloud computing for?
The first type of hosting that data centers provided was dedicated. This is simply hardware that the provider leases to you that runs outside your business environment in a data center that has better economies of scale for power, backup power, cooling, and physical hardware security.
Since the dedicated provider standardizes on the hardware and racks, it can achieve the cost and performance capabilities in operating the hardware. This makes it more affordable to small customers who would otherwise attempt to purchase, install, and maintain the hardware in a data center.
Unlike shared and cloud computing, no one but you is running software on the dedicated server. Dedicated hosting is still expensive, typically starting at a few hundred dollars per month for a low end configuration.
The dot-com boom saw a Cambrian explosion of web sites, and an increasing need for hosting. Dedicated hosting was too expensive for most small and medium companies to host just a simple web site. It was also overkill, since dedicated servers would be idle for web sites that did not have a lot of traffic.
Shared hosting is a way for hosting providers to create segments on a dedicated server. A single instance of an operating system, web server, application server, and file storage is partitioned so that a dedicated server can support 2 or even 20 customers. The figure below shows customer partitions created on a single physical dedicated server.
Each instance of shared hosting has some limited configuration capabilities for the web server, application server and database schema in the database. Access to the operating system is usually extremely limited. Each customer has a file directory with a predefined amount of storage that is part of an array of disks used by all other users.
Shared hosting provides some operational effeciencies compared to dedicated hosting. Instances are easy to manage by the provider, and it is easy to provision new customers with a pre-defined package of capabilities, such as 2 GB of storage, 20 GB of network transfer, an Apache web server, PHP application server, and MySQL database schema.
The cost savings for customers versus dedicated makes shared hosting ideal and common for sites like web hosting where there was not a lot of contention for resources among the customers.
Security - Shared
Security for shared hosting is based on applications, the file system and the database, and managed by the operating system. Hackers have an easier time infiltrating customers on shared hosting versus dedicated because they only need to access one shared hosting instance in order to get logical proximity to the other customers.
Performance - Shared
The cost of shared hosting can be as low as $5 per month up to around $50 per month. Prices generally increase with performance and options The main problem with shared hosting is that applications and databases are only good at partitioning disk space. Shared hosting is completely ineffective at allocating and partitioning CPU, memory, and network bandwidth.
Shared hosting customers usually see performance issues caused by heavier users on a shared hosting server. This cannot be easily resolved without sophisticated monitoring tools that throttle applications and databases for one customer in the case of heavy load, in order to maintain performance for all of the other customers. Shared hosting also does not provide a lot of options or custom configurations. Providers needed to create pre-defined segments that can quickly be provisioned.
Failures are also a problem with shared hosting. If there is a failure of a physical device, such as a motherboard, CPU, or disk, all of the customers on the shared hosting server are impacted. Most providers create application clusters and database clusters to reduce the impact of outages.
Another strategy is to maintain system backups and migrate customers to standby servers. But this still takes time and performance is still severely impacted. Recovery from outages can be as quick as 20 minutes or as long as a few hours. Providers might invest in higher quality hardware, backup software, and standby servers. But this cost is passed on to the customers.
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.