It’s fair to say that when people talk about ‘the cloud’, most of the time they are referring to the Infrastructure-as-a-Service (IaaS) offerings from the major Cloud Service Providers (CSPs). These IaaS offerings have been the primary drivers behind the explosive growth and resulting innovation we’ve seen in cloud computing over the past decade. As many of our readers are probably already aware, the pioneer in this space was Amazon Web Services (AWS). They were the first to offer public IaaS services and continue to be the cloud market-leader, with an infrastructure capacity that dwarfs all their competitors.
These days, major IaaS vendors have had years to play catch-up to AWS and while no one has yet come close to matching the absolute size and capacity of AWS’ infrastructure, IaaS from both Microsoft and Google have made a big splash in the public cloud market in the past couple years and are now viable competitors to AWS in many cases. Though all of the major cloud providers like AWS, Azure, and Google continue to grow, they also continue to drop the prices of their cloud instances and over the last couple of years we have seen many new added options, instances, and overall costs come down as complexity still increases.
One of the most common questions we’re asked here at DoubleHorn when doing cloud consultations is “Which provider is best?” The answer, of course, is “it depends”, and to further explain, the rest of this blog will compare the main IaaS offerings of AWS, Microsoft (Azure), and Google (Google Cloud) on the basis of their key strengths and differentiators, compute services, storage services, and finally pricing models. These three vendors are by no means the only choices for IaaS (many of our clients are happy with offerings from vendors like Rackspace, SoftLayer, and more), but in the interest of brevity, this blog will focus on the three market leaders.
Amazon Web Services (AWS)
Strengths: We’ll start with the big dog on campus, Amazon Web Services (AWS). As we touched on previously, AWS was the first to offer public IaaS, as far back as 2006. Since they’ve been doing this the longest, it shouldn’t be surprising that one of Amazon’s key strengths is the maturity of its IaaS offerings and the entire AWS ecosystem for that matter. AWS has an almost-overwhelming amount of different services available, from DNS routing to caching to load balancers: virtually anything you could ever need out of the cloud, AWS can deliver. Additionally, AWS has the most data centers of any IaaS provider, which means they have the most comprehensive global coverage and the most robust, reliable network. These two key strengths are often the main draw to AWS for many customers: its almost guaranteed that you can do what you need to do on AWS, no matter how obscure, and it will offer suitable reliability for even the most sensitive applications.
Weaknesses: The maturity of the AWS ecosystem has, ironically, proven to be a con to some, as the huge number of options users are presented after starting their first instance can be a little overwhelming. The AWS environment is so vast, in fact, many businesses find that employees may require focused training on the AWS ecosystem before they’re able to properly manage AWS services. This wealth of options can also mean that getting a project up and running on AWS may require a bit more set up work than it would on other providers, which tend to offer more streamlined ‘out of the box’ options. Additionally, some people have called AWS’ focus specifically on the public cloud, a weakness. AWS doesn’t have a specific “hybrid cloud” solution (other than their GovCloud solutions, which are mainly focused on the needs of public sector clients). Since hybrid cloud architectures are the dominant model for most large enterprises, many larger companies have been forced to look to other vendors like Microsoft which better address that need. In some cases, the need for a true hybrid cloud setup can be subverted by using a solution like AWS Storage Gateway, which enables companies to seamlessly extend their on-premises data storage into the cloud.
Compute: AWS’ most well-known and used service is their EC2 compute service. It’s so well known, in fact, that it is considered the de-facto baseline against which all other cloud compute services are compared. EC2 supports preconfigured images (AMIs) from Amazon or you can specify custom user-created images as needed. After specifying the amount of memory, the number of cores, etc., users launch their VMs into one or more regional / availability zones. EC2 supports load balancing and auto-scaling, meaning it will automatically scale capacity up or down automatically as needed (within the parameters specified by the user).
Storage: As with most providers, temporary (‘ephemeral’) storage is automatically available for every running instance, but goes away when that instance is stopped. For more permanent storage, Amazon Simple Storage Service (S3) provides highly scalable, standard object storage, while ‘Amazon Glacier’ offers archival storage that is far more affordable than S3 but with longer retrieval times. Amazon Glacier is popular for corporate backups, despite many reporting frustrations with the fact that backups can only be retrieved through command line interfaces or APIs, and are only available 24 hours after they are created.
EDIT (November 22, 2016): Amazon just announced yesterday that they are adding additional data retrieval options to their Glacier backup service. Users can now pay slightly more to be able to retrieve their data within minutes or pay even less if data retrieval times are not a concern.
Pricing: One of the biggest differences between AWS and the other leading IaaS providers is most AWS services charge users by rounding up the number of hours used, meaning the minimum amount of time you can be billed for those services is one hour. There are three different pricing models users can choose when purchasing compute instances: on demand, where users pay only for what they use with no upfront cost (this is typically the most expensive rate but also the most flexible option), reserved, where customers reserve instances for 1 or 3 years with an upfront cost based on utilization, and finally spot pricing, which is where customers can bid for any extra capacity that may be available.
Strengths: Over the past few years, Microsoft Azure has been adopted by an ever-increasing number of enterprise customers. Much of this is due to the significant discounts and credits Microsoft offers on Azure to its existing customers, but even if it is those discounts that initially draw many customers in, the majority of Azure users report being happy with the service and usually stick with it. Unlike AWS, Azure has a unique focus on hybrid cloud setups (a mixture of private on-premises and public off-premises cloud services). This is the most common cloud architecture for large enterprises, and as a result, Azure has become the go-to choice for large companies that require true hybrid cloud setups (setups that often can’t be easily achieved with AWS). It should come as no surprise that Azure is an also a great choice for companies that utilize lots of other Microsoft Services (like SQL, Active Directory, and .NET) as those technologies are baked into nearly all Azure services and will integrate quickly and easily with existing on-premises MSFT infrastructure. Azure also has been making waves recently because of its new ‘Basic’ service level, which is a bargain-priced compute service that doesn’t include auto-scaling and load balancing, making it a perfect choice for things like dev environments and other non-public-facing sites. Azure’s unique strengths, adoption rate, and customer satisfaction have actually led some analysts to predict that it will be the largest IaaS provider by 2019.
Weaknesses: Over the past couple years, Azure has experienced a number of major downtime events which, while not critical for most of their customers, were significant enough to make Gartner analyst, Lydia Leong, recommend that people look to other providers for hosting mission-critical and time-sensitive corporate backups. And although Azure is a great choice for enterprises that are already deep in the Microsoft ecosystem, Azure’s support for other operating systems is rather limited, only supporting a few different flavors of Linux. For true customization potential, Azure pales in comparison to AWS.
Compute: When starting Azure instances, users choose a VHD (Virtual Hard Disk) and then specify the number of cores and amount of memory for each image. Users can use predefined images from Microsoft, or upload their own custom images. Like AWS, instances are launched into availability zones and will auto-scale as needed. As mentioned previously, a ‘Basic’ service level is available which doesn’t implement auto-scaling and load balancing but is much cheaper. Azure instances can be controlled through the Azure web management interface, or the Microsoft Power Shell included in most new versions of Windows.
Storage: All Azure instances have access to temporary storage (D drive), but for more permanent object storage for virtual machines, users will need to use what Microsoft calls ‘Page Blobs’. If more general storage is needed that’s not tied to a specific VM, Azure offers what they call ‘Block Blobs and Files’ which act more like classic network shares most users are familiar with. Like other vendors, Azure fully supports relational and NoSQL databases, as well as big data analytics through its Windows Azure Table and HDInsight services.
Pricing: As we already touched on, MSFT is offering significant credits and discounts to many of its existing enterprise customers, making Azure the clear price-winner for many (at least for a few years). As opposed to AWS, Azure bills customers by the minute, with no minimum number of minutes required. Additionally, Microsoft offers certain discounts to customers willing to make short-term commitments, sort of analogous to AWS’ “reserved” pricing model. As is typical with Microsoft, Azure often includes Enterprise-grade SLAs (service level agreements) which larger companies may require.
Strengths: Google is relatively new to the cloud game compared to AWS and Microsoft Azure, but they wasted no time proving themselves as a viable IaaS competitor and have secured a surprising number of large customers in just a few years. Google’s Cloud business is growing rapidly, too, with 12 new data centers planned in the next 18 months. Google is known for the intuitive simplicity of many of its products, and its Google Cloud management interface is no exception, with most users saying it is the easiest to use interface out of the three major IaaS vendors. That simplicity carries over to its pricing models too, where discounts are automatically applied based on utilization throughout the month. Unsurprisingly, Google Cloud is uniquely well-suited to big data analytics and machine-learning applications, as Google has had years of expertise in those sectors and they enable their users to easily leverage that expertise from within Google Cloud. Lastly, Google’s auto load-balancing and auto-scaling features outperform the competition significantly, able to process upwards of 1 million requests per second without the pre-warming required on other platforms.
Weaknesses: One of Google Cloud’s biggest weaknesses is in the way that it handles its business relationships with large enterprises. Since Google is primarily a B2C business, they are still refining their B2B side, and many enterprises find their standard enterprise contract lacking. According to Gartner: “Google’s standard contracts can require tedious negotiation to avoid unpalatable risk and cost exposure. A Google contract can reference terms or policies that are not included in the contract and that can change at Google’s discretion.” Google is starting to use channel partners more, which should help in this regard, but its still known as a potentially challenging company for large enterprises to work with (small and mid-size businesses generally have a great experience with Google, however). Lastly, because Google Cloud is the newest cloud out of the three providers we’re discussing, that means its the least mature in terms of variety of offerings. While the offerings it does have are refined and perform well, Google Cloud may lack the robustness and customization ability that some users require.
Compute: Just like AWS and Azure, Google Compute Engine (GCE) lets users launch VMs into regions and availability groups. Though GCE is relatively new (released in 2013), its already performing very impressively and in many cases outperforms similarly priced compute services from AWS and Azure. Much of GCE’s great reputation comes from its excellent load balancing and scaling, which requires no pre-warming like on other providers making GCE a fantastic choice for anything which might need to quickly accommodate short-lived but large bursts in traffic. Other features that are drawing many to GCE are its extended support for a large variety of operating systems and support for live migration of Virtual Machines.
Storage: All GCE instances automatically have access to temporary storage, as expected, and Google also offers persistent object storage through its Google Cloud Storage, which has a good reputation for using faster persistent disks than most of the competition. Important technologies pioneered by Google like Big Query, Big Table, Hadoop, and more are, naturally, fully supported and well integrated. Big Query and Big Table are especially powerful, and for users specifically looking to do big data analytics or machine learning, Google Cloud is a natural choice. Google’s ‘Nearline’ service provides corporate backup and archival analogous to AWS Glacier, but with virtually no latency on recovery, addressing the most common complaint users have with Glacier.
Pricing: Google charges users by the minute, like Azure, but has a 10-minute minimum. Many love Google’s pricing model, which uses simple per minute consumption rates, but also automatically apply discounts to your rate based on usage throughout the month. This is something that really sets it apart from the competition. Most vendors will not automatically apply discounts, instead of leaving it up to users to monitor their services and tune them down or up as needed to be able to reach the same level of cost savings. Google has automated this to a large degree, and customers love it.
As you can see, its less than straightforward comparing cloud providers unless you know exactly what you want to do in the cloud. It’s our hope that this blog will arm you with some useful knowledge for your future cloud choices, but if you’re still confused on who to choose (or unsure if you should even choose the cloud at all) DoubleHorn is always here to help. Schedule a free cloud consultation today by following this link.