Fresh on the heels of AWS re:Invent and major announcements by AWS, Rackspace, and others, many companies may think of revisiting their cloud platforms for 2014.
Here are some tips to help web companies evaluate their options. In this post, we look at key services and features available from Amazon Web Services, Rackspace, and Google Cloud. We selected these three vendors because they are the most frequently-considered among Stackdriver customers based on a recent survey. In a second post, we’ll look at price-to-performance and intangibles such as support, traction, and community.
We are looking at the services from the perspective of a SaaS company because we tend to look for different things than large enterprises or…say…your local dentist. We build distributed systems, follow devops principles, and value cloud providers that care about our use case.
First, let’s consider where each of the major vendors stand in terms of the key building blocks for modern web applications. We define these services as “key” based on their broad use within distributed SaaS applications. We will only consider the services that are fully managed by the vendor and integrated into the cloud platform (vs. part of separate services, delivered by partners, or configured and managed by customers on cloud compute instances).
The gap is clear. It is even larger when you consider that AWS has invested in many of the core building blocks for years at this point whereas several Google and Rackspace services are still “V1”. For example, when EBS was released it had basic snapshot capabilities — over the past three years we’ve seen reliability improvements, provisioned IOPS, and cross-region snapshots added. We should see Google close the gap on core services in 2014, which will put it on the shortlist for many companies. On the other hand, AWS will continue to promote additional services that are critical for certain use cases, such as MapReduce, data warehousing, search, transcoding, streaming, and more.
Elasticity & Dynamic Environments
The promise of elasticity brought many of us to the cloud in the first place, and we architect our applications to scale out in order to satisfy demand. All of the major vendors have one key building block in this area — load balancing services. These services make it easy for us to manually add more nodes to clusters without taking scheduled downtime, but autoscaling takes this to another level. Rackspace recently announced autoscaling; Google claims to support autoscaling but it is not integrated with Compute Engine and the setup is fairly complex. AWS has supported autoscaling for years and has extended it to support spot instances and offers several advanced orchestration services that make it easier to deploy and run dynamic applications in the cloud, including CloudFormation, OpsWorks, and Elastic Beanstalk.
Reliability & High Availability
Of course reliability for a SaaS application starts with the reliability of its underlying infrastructure, and much attention has been paid to outages on AWS–particularly in 2011 and 2012. Part of the challenges here is that Amazon simply gets more press due to its popularity–Google Cloud was still in beta during this time and Rackspace has a fraction of the AWS installed base. The reality is that outages happen everywhere, and so we tend to favor vendors who have been battle-tested and are transparent about lessons learned.
Perhaps more importantly, with SaaS applications, we want cloud providers to make it easy for us to architect for failure. We use stateless systems, distribute applications across zones within a region, and use multiple regions–either actively or in a failover configuration. Here’s how the vendors stack up in terms of supporting reliability and HA:
With nine regions and twenty-five availability zones to choose from, AWS makes it easy to distribute work across physical locations. The new cross-region replication support for RDS and Dynamo is also a major step forward. On the other hand, Google’s work here should not be overlooked; starting with automatic replication is a real advantage and it matters that they have demonstrated a commitment to working across regions from the start.
AWS tops the list, but don’t count Google out
If you’re out shopping for a new cloud provider for your web application based on platform features and capabilities alone, AWS should be at the top of your shopping list today. This will not surprise anyone who has been watching the space and observing the unprecedented speed at which AWS has been introducing new capabilities. We do, however, see promising signs in Google’s decision to embrace cross-region support, so they will be a platform to watch in 2014. In any event, before you break out that credit card, you should check back for the next post where we consider price-to-performance, community and support.