Wednesday, January 20, 2016

Amazon vs Google vs Microsoft in Cloud

The competition is heating up in the public cloud space as vendors regularly drop prices and offer new features. In this article, we will shine a light on the competition between the three giants of the cloud: Amazon Web Services(AWS), Google Cloud Platform (GCP), and Microsoft’s Azure.  While AWS has a significant head start on the others, Google and Microsoft are far from out of the race. They’ve both got the power, money, technology, and marketing to attract individual and enterprise customers. Let’s compare these three big players by service category: compute, storage, networking, and pricing structure.

Computing

AWS’s EC2 (Elastic Compute Cloud) provides Amazon’s core compute service, allowing users to configure virtual machines using either pre-configured or custom AMIs (machine images). You select the size, power, memory capacity, and number of VMs and choose from among different regions and availability zones within which to launch. EC2 also allows load balancing (ELB) and auto scaling. ELB distributes loads across instances for better performance, and auto scaling allow users to automatically scale available EC2 capacity up or down.
In 2012, Google introduced their computing cloud service: Google Compute Engine (GCE). Google Compute Engine lets users launch virtual machines, much like AWS, into regions and availability groups. However GCE didn’t become available for everyone until 2013.  Since then Google has added its own enhancements, like load balancing, extended support for Operating Systems, live migration of VMs, faster persistent disks, and instances with more cores.
Also in 2012, Microsoft introduced their compute service as a preview, but didn’t make it generally available until May 2013.  Azure users choose a VHD (Virtual Hard Disk), which is equivalent to Amazon’s AMI, to create a VM. A VHD can be either predefined by Microsoft, by third parties, or be user-defined. With each VM, you need to specify the number of cores and amount of memory.

Storage and databases

AWS provides ephemeral (temporary) storage that is allocated once an instance is started and is destroyed when the instance is terminated. It provides Block Storage that is equivalent to hard disks, in that it can either be attached to any instance or kept separate. AWS also offers object storage with their S3 Service, and archiving services with Glacier. AWS fully supports relational and NoSQL databases and Big Data.
Google’s Cloud Platform similarly provides both temporary storage and persistent disks. For Object storage, GCP has Google Cloud Storage. GCP supports relational DBs through Google Cloud SQL. Technologies pioneered by Google, like Big Query, Big Table, and Hadoop, are naturally fully supported. Google’s Nearline offers archiving as cheap as Glacier, but with virtually no latency on recovery.
Azure uses temporary storage (D drive) and Page Blobs (Microsoft’s Block Storage option) for VM-based volumes. Block Blobs and Files serve for Object Storage. Azure supports both relational and NoSQL databases, and Big Data, through Windows Azure Table and HDInsight.
Pricing
AWS charges customers by rounding up the number of hours used, so the minimum use is one hour. AWS instances can be purchased using any one of three models:
  • on demand – customers pay for what they use without any upfront cost
  • reserved – customers reserve instances for 1 or 3 years with an upfront cost that is based on the utilization
  • spot – customers bid for the extra capacity available
GCP charges for instances by rounding up the number of minutes used, with a minimum of 10 minutes. Google recently announced new sustained-use pricing for compute services that will offer a simpler and more flexible approach to AWS’s reserved instances. Sustained-use pricing will discount the on-demand baseline hourly rate automatically as a particular instance is used for a larger percentage of the month.
Azure charges customers by rounding up the number of minutes used for on demand. Azure also offers short-term commitments with discounts.


THE VERDICT

If you have a lot of cloud knowledge in-house, no public cloud can compare to the offerings of AWS. If you’re mostly in need of PaaS, you want seamless hybrid cloud, and you’re already using a lot of Microsoft services, go with Azure. If you’re a major data analyzer, Google’s data storage and analytics tools are simply fantastic.
  • Amazon and Azure provide the lowest latency, while Google provides the highest throughput, for both uploads and downloads. This means that AWS and Azure excel for smaller files, while GCE excels for larger files, and this highlights the importance of benchmarking with data that are comparable in size to what your application uses.
  • The substantial limitations on AWS EC2 network throughput must be taken into consideration when designing high-speed data processing systems.
  • Google's unique multi-region buckets keep costs down when working with data from multiple datacenters in the same region (e.g. continent).
  • Object storage scales automatically to provide high aggregate throughput.
  • Finally, note that I’m only showing data from API access (which is the exact same boto code for AWS and Google), and I have unsurprisingly observed substantial differences in performance from different clients (the vendor-specific CLIs, node.js API package, cURL’ing URLs, etc.).

No comments:

Post a Comment