Update December 2017: Some of the drawbacks mentioned below are no longer a concern, such as compliance and fraudulent servers. Today, top concerns include data privacy, visibility and redundancy. For more information about these drawbacks and other benefits/challenges of cloud computing, download our free ebook, Guide to Building and Managing a Cost-Effective Hybrid Cloud.
Cloud Computing is moving into 3 separate distinct directions:
- Public Cloud Computing – like Amazon’s EC2 and Rackspace, designed to provide the lowest cost shared computing service with a utility delivery model where you can pay for services by the hour.
- Private Cloud Computing – the opposite end of the spectrum where the entire cloud infrastructure (servers, storage and network) is dedicated to a single company.
- Managed Cloud Computing – where a secure private cloud is sold by the server.
I’ve written about the benefits of private cloud computing in a previous blog. In this blog post, we’ll discuss the benefits of public cloud computing along with some of its drawbacks.
For the most part, the public cloud is designed around the “computing as a utility” model. Amazon’s EC2 is the ultimate example of this model, followed by others like Rackspace and SoftLayer.
Like Amazon, most public clouds are designed to compete on price. Despite Amazon’s confusing pricing model, it looks like they try to break up their public cloud offering into the tiniest compute components so users can optimize their cloud computing coding around cost. Amazon’s public cloud is designed around an open source hypervisor, non-redundant hosts and local storage. This provides the lowest cost platform available, but has some drawbacks as I discuss below.
Let start with the Public Cloud Benefits:
1. Utility Price Model – One of the most attractive benefits of public cloud computing is that you can pay for your computing by the hour. If you only need a test server to run a 1 hour regression test, you can spin up the server, run your test, and turn down the server for less than $0.10. Amazon even sells compute cycles at spot demand prices through an auction process.
2. API access – Many public cloud hosts provide APIs (albeit proprietary) which allow users to programmatically spin up and kill servers through API access. These can be very beneficial for systems that need to spin up a massive number of servers such as research and test environments.
3. Configure and Pay Online – As opposed to a private cloud where the entire infrastructure is designed around a client’s specific requirements, the public cloud can be purchased online, configured and deployed, in most cases, automatically through the provider’s web site.
At the same time there are some drawbacks to also be aware of with the public cloud:
1. Security and Compliance – Mid-size and large enterprises overwhelmingly prefer private clouds because of network and data security issues associated with the public cloud. You simply cannot achieve HIPAA Compliance or PCI Compliance in a public cloud.
2. Data Loss – No High Availability Fail Over – If a host crashes at Amazon, all of the virtual servers and data on that hardware host is lost. Public cloud servers are not built for high availability or automatic fail over. There are numerous Twitter posts & blogs on the pain felt when Amazon’s cloud crashed and there was no one to call at Amazon. Here’s an article on Amazon’s cloud crash wiping out their customers’ data and their impersonal response to their customers.
3. Fraud and Spammers – One public cloud hosting provider has fraud rates as high as 80%. Because sign up and deployment is fast and easy, a fraudulent user can spin up a cloud server on a stolen credit card, launch attacks and be gone before the credit card fraud is found. The only concern for legitimate users is if the shared server hardware is seized under warrant because of another user’s fraud.
Not all applications are a good fit for the public cloud. Many mid-size and large enterprises that want to assure the security and safety of their corporate and client data will move to the private cloud and won’t deploy their critical systems in the public cloud. However, there are a number of applications that are ideal for public cloud hosting including:
- Development and Test Environments – Regression testing is a great example of an application for the public cloud. In a past software development life, I’d spin up a dozen servers to run thousands of test scenarios every 24 hours. With the ability to spin up 1000’s of servers programmatically, the test time can be reduced to minutes, speeding up software development cycles.
- Compute Intensive Research Applications – At the University of Michigan, researchers are spinning up 1000’s of cores to run their DNA, genome and weather analysis programs. Most of these programs are written to withstand the crash of a server or two so the public cloud with spot demand pricing can provide tremendous resources very cost effectively for research computing.
- Noncritical Web Servers and other applications where a crash of the server or loss of data isn’t critical to the organization.
It’s important to select the right cloud architecture for the application. Public clouds, private cloud hosting and managed cloud hosting all have benefits and drawbacks. Understanding the advantages and disadvantages of each model makes it easier to select the best cloud computing for the application.