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.

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.

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.

Getting 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:

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.

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.

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.

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.

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.

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.

Join the conversation

4 comments

Register

I agree to TechTarget’s Terms of Use, Privacy Policy, and the transfer of my information to the United States for processing to provide me with relevant information as described in our Privacy Policy.

Please check the box if you want to proceed.

I agree to my information being processed by TechTarget and its Partners to contact me via phone, email, or other means regarding information relevant to my professional interests. I may unsubscribe at any time.

Your password has been sent to:

Please create a username to comment.

Our test infrastructure is in the cloud, so with that in mine I look for solid uptime, ease of management, and the ability to configure machines quickly and make sure they are responsive with a minimum of latency.

Conspicuously absent from this analysis is the recognition that different applications will perform differently in each of the major cloud provider environments. No two workloads are alike and all clouds are not created equal. Indeed, we have seen empirical evidence that the very same workload in identically provisioned machines will yield very different performance. The ability to somehow quickly and efficiently compare the performance of your specific workload in each of the potential target environments is sorely needed. A tool such as Krystallize CloudQoS which captures and embodies an application workload profile in a synthetic workload generator can be used to exercise many environments and index their relative performance before embarking on a full scale migration. Moreover, this can be used post migration to monitor and ensure the performance levels remain constant throughout the life cycle of the application.

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.

As if they were exclusive features from Google, but AWS has also direct and VPN connectivity, load balancers (ELB), DNS (Route 53), etc.