AWS vs Azure vs Google Cloud: Containers and Serverless
Service-to-Service Comparison
Containers and Serverless
The development community has widely embraced containerized and serverless app architectures for their portability and maintainability. All three CSPs provide Docker container registries for centrally storing, managing, deploying, and securing Docker container images. They also provide managed services for running and orchestrating containers in general, and Kubernetes containers in particular. Similarly, all three CSPs provide robust serverless support, with Azure also offering a framework for developing serverless applications.
AWS | Azure | GCP | |
Docker container registry | Amazon Elastic Container Registry(Amazon ECR) | Azure Container Registry | Container Registry |
Docker deployment | Amazon Elastic Container Service(Amazon ECS):
Scalable, high-performance container orchestration
| Azure Container Instances (ACI):
Run workloads in a container on the Azure cloud (containers on demand)
| Container Engine: GCP’s Compute Engine optimized for running containers |
Kubernetes support | Amazon Elastic Container Service for Kubernetes (Amazon EKS):
Deploy, manage, & scale containerized applications using Kubernetes on AWS
| Azure Kubernetes Service (AKS):
Fully managed Kubernetes orchestration service
| Kubernetes Engine:
Managed, production-ready Kubernetes environment
|
Serverless support | AWS Lambda: Automatically provisions resources & runs code when triggered | ● Service Fabric:
Develop, scale, & orchestrate microservices & containers
● Event Grid:
Fully managed event routing
| Cloud Functions: Event-driven serverless compute platform |
Big Data, Analytics, and Machine Learning
Data drives our world, and the CSPs, together with their partners, are providing us with service suites for data warehousing at scale, data querying and exploration, data preparation (ETL), and analysis (real time or offline). They are also vying with each other to offer us the ultimate frameworks for building and deploying machine learning models.
It is difficult to differentiate among the CSPs in this business-critical, high-growth service category. However, Azure and GCP are both working very hard to challenge AWS in this area, each trying to position itself as the CSP of choice when it comes to managing big data and extracting value from it.
AWS | Azure | GCP | |
Data ware-
housing
| Amazon Redshift:
Run queries across data warehouse (petabytes) & data lake (exabytes)
| SQL Data Warehouse: A managed service extended through partners | BigQuery:
A serverless, highly scalable enterprise data warehouse
|
ETL | ● AWS Data Pipeline:
Easily create complex data processing workloads from diverse sources
● AWS Glue:
Fully managed ETL service (serverless)
| ● Data Factory:
Create, schedule, & manage data pipelines & ETL workflows across hybrid environments
● Data Catalog: Enterprise-wide metadata catalog for data asset discovery
| ● Cloud Dataprep:
A partner service for data exploration & preparation across diverse data sets
Real-time and offline data transforma-
tion & enrichment
|
Analytics | ● Amazon Athena: Interactive queries using standard SQL
● Amazon EMR:
Managed Hadoop framework
● Amazon Kinesis: Real-time streaming data analytics
| ● Azure Data Lake Analytics: On-demand analytics job service
● Azure Databricks: Apache Spark-based analytics
● HDInsight: Open-source analytics framework
| ● Overview of big data analytics on GCP
● Cloud Dataproc: Cloud-native Hadoop and Spark
|
Machine Learning | ● Amazon Machine Learning:
Graphic tools & wizards for creating ML models, integrated with prediction APIs
● Amazon SageMaker: Advanced platform for building, training, & deploying ML models at scale
| ● Azure Machine Learning: End-to-end data science & advanced analytics solution
For managing & deploying ML workflows and models
| ● Cloud Datalab: Interactive tool for data exploration, analysis, visualization, & ML
● Cloud AutoML: Suite of tools for training custom ML models, with special support for images, natural language, & translation
● Cloud ML Engine: Suite of training & prediction services
|
More Considerations
Going beyond service-to-service comparisons, in this section we describe some other considerations that can impact your decision about which workloads to deploy on which CSPs.
Security and Compliance
All three CSPs work on a shared responsibility model, with their security responsibilities increasing as the level of service increases from IaaS to PaaS and SaaS. All three CSPs have invested heavily in ensuring that their infrastructures, platforms, and applications are well secured against internal and external threats. All three provide identity and access management, directory, key management, and DDos protection services. However, AWS and Azure also provide cloud security assessments, SSL certificates, consolidated management of multiple accounts, and web application firewalls (WAF). If your organization is in a highly regulated sector—government, healthcare, finances, and so on—make sure that the CSP can meet your compliance requirements.
Number and Geographic Distribution of Availability Zones
The location of a CSP’s data center can impact latency and performance of production workloads. Although all three have robust availability zone networks, Azure currently has the most data centers. Before deciding which CSP you want to use to deploy production workloads, verify that it has availability zone(s) that can meet your performance requirements. Also, the pricing of services varies across availability zones, so when comparing costs, make sure that you take the target availability zone(s) into account.
Support and User-Friendliness
AWS and Azure offer a more comprehensive set of tools than GCP for supporting developers in building, diagnosing, debugging, deploying, and managing apps and services at scale.
In order to ease the migration of users to their services, all three CSPs offer free tiers as limited-time offers (with some capacity restrictions) and/or always-free services with low usage ceilings. The free tiers, together with the CSPs’ support services and documentation resources, are useful if you want to build and deploy smaller apps or prototypes. If you work with a larger organization, they can help you “kick the tires” of a CSP before committing to a long-term relationship. Google’s Always Free tier is considered the most generous, while Azure’s free tier option is the only one that offers machine learning services.
Partnership Ecosystems
Rather than trying to meet all of their users’ needs directly, AWS, Azure, and GCPhave all wisely chosen to offer third-party apps, development stacks, and services on their respective marketplaces. These third-party products are tightly integrated with the relevant CSP’s platform, and in many cases, are charged as part of the CSP’s monthly billing.
In addition, each CSP offers a pool of approved partners who can provide its enterprise users with integrated systems, consulting services, and fully managed cloud services. AWS’ partnership ecosystem is the deepest and most extensive, followed by Azure, which leverages Microsoft’s considerable partner pool. Although GCP’s partnership ecosystem is growing all the time, they still have to catch up with the other two options.
A Final Note
As we noted in the first post of this series, there is no “best option” when it comes to choosing a CSP. In order to avoid vendor lock-in and benefit from optimal price/performance ratios, try to keep an open mind as you evaluate which CSP(s) fit best into your multi-cloud strategy. While AWS and/or Azure might better meet your production requirements, GCP may be the best choice for new product experimentation and initial development workloads. Perhaps one of the CSPs has more experience and depth in your particular sector, offering services and templates that are especially adapted to your sector-specific requirements.