Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Compare the market-leading public cloud providers

With criteria ranging from cost to connectivity, choosing a cloud provider can be tough. Here's how AWS, Google, Microsoft and Rackspace stack up.

You've done your homework and determined you need to extend your data center to the public cloud. You've researched the technology and determined the criteria you will use to make your purchasing decision. Now, it's time to choose the public cloud provider to host your virtual machines.

But which provider offers the services and support that best matches your environment and needs?

This is the final article in a series about cloud computing buying decisions. The first article described the benefits of hosting virtual servers in the cloud, while the second detailed public cloud costs and risks.

The third article detailed the purchasing criteria to include in your vendor request for proposals (RFPs) to make sure you get the right services for your environment.

This article compares four leading public cloud providers -- Amazon Web Services (AWS), Google, Microsoft and Rackspace -- and how well they meet the following seven criteria:

  • VM migration support
  • Custom image support
  • Image library
  • Autoscaling
  • Network connectivity
  • Storage choices
  • Regional support

1. VM migration support

As public and hybrid clouds increase in popularity, it's important for organizations to be able to move virtual machines (VMs) from an on-premises hypervisor into the public cloud, and to bring those workloads back in house if necessary.

AWS offers the most seamless VM migration path of all the major cloud providers, although Microsoft is not far behind. AWS provides a graphical interface called the AWS Management Portal for vCenter which allows virtualization admins to manage their Amazon-based resources through VMware vCenter. The portal also makes it possible to migrate VMware VMs to the public cloud.

One pixelGetting to know public cloud

Microsoft built its Azure public cloud on top of Windows Server and Hyper-V. Because Azure runs the same software as many on-premises networks, it is relatively easy to migrate VMs between local data centers and Azure. The process isn't seamless, but is relatively easy once connectivity is established between Azure and a local network.

Google does not support VM migrations into the Google Compute Engine cloud. However, there are third-party providers, such as Cohesive Networks, which allows VMs to be imported into Google Compute Engine.

Rackspace does not offer a way to migrate VMs to and from the cloud. It does, however, provide a service called RackConnect that's geared toward hybrid clouds.

2. Custom image support

Cloud providers generally allow VMs to be built from predefined images, but these generic OS images don't always meet an organization's needs. As such, a cloud provider should allow custom virtual machine images to be created and used.

AWS provides Amazon EC2 API tools which can be used to import VM images into the Amazon cloud. AWS allows for the importing of:

  • VMware ESX and VMware Workstation VMDK images;
  • Citrix XenServer virtual hard disk (VHD) images;
  • Microsoft Hyper-V VHD images for Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 and Windows Server 2012 R2; and
  • Red Hat Enterprise Linux (RHEL) 5.1-5.11, 6.1-6.6 (using Cloud Access), Centos 5.1-5.11, 6.1-6.6, Ubuntu 12.04, 12.10, 13.04, 13.10, 14.04, 14.10, and Debian 6.0.0-6.0.8, 7.0.0-7.2.0.

Microsoft makes it fairly easy to create a custom image. The easiest way is to create a virtual hard disk file and import it into Azure. Although you can build VHD-based images from scratch, System Center Virtual Machine Manager can help with the image creation process.

Rackspace supports the creation of custom images, which can be imported and exported from its cloud environment. Rackspace also provides a custom API that can be used to share custom images.

Google supports the importing of raw device mapping images, Amazon Machine Images and VirtualBox Images.

3. Image library

Although many organizations try to minimize the number of server operating systems they use, heterogeneous environments are becoming much more common, especially in the cloud. A good cloud provider should offer a variety of server OS choices.

Rackspace offers a broad selection of server operating systems. It provides nearly a dozen different Linux variants, including Ubuntu, Red Hat Enterprise Linux and CentOS. In addition, Rackspace offers Windows Server 2008 and Windows Server 2012. Windows Server images can be preloaded with SQL Server or with SharePoint. The versions that are offered vary depending on the operating system you select. The available Windows Server 2008 images include Base OS, SQL Server 2008, SQL Server 2012, and SharePoint 2010. The available Windows Server 2012 images include R1 base image, R2 base image, R1 with SQL Server 2012, R1 with SharePoint 2013 and R2 with SQL Server 2014.

Microsoft provides a variety of operating system images including Windows Server, Ubuntu, CoreOS, CentOS, SUSE, Oracle and Puppet Labs. Windows images can be deployed using only the base operating system, or they can include Microsoft server products such as SharePoint, SQL Server, BizTalk Server, Visual Studio or Microsoft Dynamics.

AWS provides Windows-based images, as well as a variety of Linux images. The available Linux flavors include Red Hat Enterprise Linux, SUSE Linux, Ubuntu, Fedora, Debian, CentOS, Gentoo Linux, Oracle Linux and FreeBSD.

Google offers a collection of premium operating systems, including Red Hat Enterprise Linux, SUSE and Windows Server.

4. Autoscaling

Workloads do not typically experience linear demand; instead, demand increases and decreases over time. Ideally, a cloud provider should allow workloads to automatically scale up or down in response to current demand.

Rackspace provides an autoscale feature that expands or shrinks your cloud according to a set of user-defined rules. These rules can include a schedule allowing workloads to scale up just prior to an expected demand spike, and scale down when the event passes.

Microsoft includes a Scale page in the Azure interface. You can use this page to manually scale an application, or you can set parameters that will be used to automatically scale the workload.

Google has an autoscaler that scales a workload up or down based on changing demand, and can be used with a managed instance group.

AWS provides autoscaling capabilities that can be enabled on a group basis.

5. Network connectivity

Network connectivity is another important consideration when choosing a public cloud provider. There should be a way to connect your on-premises network to your cloud network, and the provider should offer various connectivity features.

AWS offers something it calls Enhanced Networking. This service is available for Windows and Linux VMs, and offers higher-performance networking than what is delivered out of the box. Enhanced Networking is specifically designed to provide low latency and low jitter, and is enabled by default for Amazon Machine Images based on Windows Server 2012 R2 and Linux HVM.

Rackspace offers several networking options. Extreme Networking, for example, is Rackspace's high-bandwidth solution that uses twin bonded 10 Gbps connections. A more generic Rackspace option is Cloud Networks, which allows for multi-tier software-defined networks. Rackspace also offers cloud load balancers and IPv6 support.

Google Compute Engine provides all the basic cloud networking capabilities, but also cloud load balancing and cloud DNS. In addition, Google offers an interconnect feature that allows customers to establish connectivity to the Google cloud either directly or via VPN.

Microsoft designed Azure to easily support hybrid clouds. Although you can define virtual networks within Azure, it is also possible to connect Azure to your corporate network through point-to-point VPN. By doing so, the Azure network acts as an extension of an on-premises network. For instance, a cloud application might access a local SQL Server database.

6. Storage choices

Storage needs vary depending on workloads. Some workloads can use commodity storage without any issues, while others require high-performance storage. As such, a cloud provider should offer a variety of storage options.

Amazon EC2 includes basic storage for VMs, but the service is really designed to connect to Amazon's Elastic Block Store (EBS) service, which is designed to be scalable, flexible and fault tolerant. For instance, storage can be provisioned as general purpose, with solid-state disk (SSD) and hard disk drive (HDD) options available, or Provisioned IOPS. Furthermore, Amazon EBS supports the use of point-in-time consistent snapshots. AWS also offers a variety of fault tolerant storage configurations.

Microsoft provides basic storage for its Azure VMs. In addition, Microsoft offers premium storage for high-performance workloads. Premium storage is based on SSDs, while standard storage uses rotational HDDs. Premium storage allocation is flexible; you can define multiple disks per VM and allocate up to 32 TB of premium storage to a single VM. Premium storage can achieve up to 50,000 IOPS per VM with extremely low latency, especially for read operations.

Google offers three different storage options. Cloud Datastore is a managed, NoSQL schema-less database for storing non-relational data. For database storage, Google offers a fully managed MySQL database. For more generalized storage, Google offers Cloud Storage, which is essentially object storage that can be managed programmatically through an available API.

Rackspace provides two main storage options: No Spinning Disks and Cloud Block Storage. As the name implies, the No Spinning Disks option is a pure SSD storage solution, and is available for VMs and bare-metal cloud servers. Cloud Block Storage, on the other hand, is available only for virtual servers. Cloud Block Storage can consist of SSD or spinning disks, and can be connected to VMs via a 10 Gbps connection.

7. Regional support

Sometimes business or regulatory requirements mandate hosting resources in a specific geographic region. That being the case, a cloud provider should ideally give its customers a choice of where VMs will be hosted.

AWS allows VM instances to be hosted in specific regions. It also designates various Availability Zones within those regions that are far enough apart from one another to be insulated against disasters.

Google allows you to choose the regions where your VMs are hosted. However, there are some hardware differences between the various regions, and each has multiple zones. Google's available regions include locations in the U.S., Ireland, Germany, South America and Asia. Some resources, such as VM images, are not region-specific.

Microsoft has defined 17 different regions for Azure, including locations throughout the U.S., Europe, Asia, South America and Australia.

Rackspace has cloud data centers in the U.S., London, Hong Kong and Sydney, Australia. The company uses these data centers to provide redundancy and guaranteed uptime. Rackspace does not offer the ability to confine a VM to a specific region.

Going with the right public cloud provider can make all the difference in providing an effective extension to your on-premises data center. Examining prices and features may be difficult, so make sure you put together a solid RFP to compare apples to apples and select the right service for your environment and business needs.

Next Steps

Examining public cloud risks and costs

Reaping the benefits of public cloud

Choosing between public and private cloud

Fitting a public cloud provider into your hybrid cloud strategy

Dig Deeper on Google and other public cloud providers