11.0.6 Cloud Providers
Market Landscape Overview
Major Cloud Providers Q4 2024:
Market Share by Revenue (Latest):
1 Amazon Web Services (AWS) - 31%
2 Microsoft Azure - 25%
3 Google Cloud Platform (GCP) - 12%
──────────────────────────────────────
4 Alibaba Cloud - 4%
5 IBM Cloud - 2%
6 Oracle Cloud - 2%
7 Salesforce - 2%
8 Others - 22%
Note
Key Trend (2024): Azure is closing the gap with AWS, while GCP is growing fastest in AI/ML workloads. All three now offer similar core services but with different strengths.
Note
This course provides comprehensive hands-on tutorials for the top three cloud providers:
AWS (Chapter 11_cloud_aws) - Market leader with broadest service catalog
Azure (Chapter 11_cloud_azure) - Enterprise-focused with strong hybrid capabilities
GCP (Chapter 11_cloud_gcp) - Innovation leader in data analytics, ML, and Kubernetes
Each chapter includes practical examples of deploying your containerized applications.
The Big Three: Deep Dive
1. Amazon Web Services (AWS)
The Pioneer (Launched 2006)
AWS Strengths:
+ Largest service catalog (200+ services)
+ Most mature platform
+ Biggest global presence (84+ regions)
+ Largest partner ecosystem
+ Best documentation and community
+ Most third-party integrations
Container Services:
AWS Container Stack:
┌─────────────────────────────────────┐
│ Amazon EKS (Managed Kubernetes) │
│ ├─ Fully managed control plane │
│ ├─ Integrates with AWS services │
│ └─ Supports Fargate (serverless) │
├─────────────────────────────────────┤
│ Amazon ECS (Container Service) │
│ ├─ AWS-native orchestration │
│ ├─ Simpler than Kubernetes │
│ └─ Good for AWS-only deployments │
├─────────────────────────────────────┤
│ Amazon ECR (Container Registry) │
│ ├─ Private Docker registry │
│ ├─ Vulnerability scanning │
│ └─ Integrates with CI/CD │
├─────────────────────────────────────┤
│ AWS Fargate (Serverless Containers) │
│ ├─ No server management │
│ ├─ Pay per container execution │
│ └─ Works with EKS and ECS │
└─────────────────────────────────────┘
Your GitHub Actions Integration:
# .github/workflows/aws-deploy.yml
name: Deploy to AWS EKS
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-west-2
- name: Login to Amazon ECR
run: |
aws ecr get-login-password --region us-west-2 |
docker login --username AWS --password-stdin $ECR_REGISTRY
- name: Build and push Docker image
run: |
docker build -t $ECR_REGISTRY/myapp:$GITHUB_SHA .
docker push $ECR_REGISTRY/myapp:$GITHUB_SHA
- name: Deploy to EKS
run: |
aws eks update-kubeconfig --name my-cluster --region us-west-2
kubectl set image deployment/myapp myapp=$ECR_REGISTRY/myapp:$GITHUB_SHA
kubectl rollout status deployment/myapp
Best For:
Enterprises needing comprehensive services
Applications requiring AWS-specific features
Teams with AWS expertise
Projects needing maximum flexibility
Popular Services:
EC2 (Virtual machines)
S3 (Object storage)
RDS (Managed databases)
Lambda (Serverless functions)
EKS (Managed Kubernetes)
2. Microsoft Azure
The Enterprise Champion
Azure Strengths:
+ Best Microsoft integration (Office 365, Active Directory)
+ Strong hybrid cloud capabilities
+ Enterprise security and compliance
+ Excellent Windows support
+ Strong .NET and Microsoft stack integration
+ Competitive pricing
Container Services:
Azure Container Services (2024 Updates):
┌─────────────────────────────────────────┐
│ Azure Kubernetes Service (AKS) │
│ ├─ Free control plane (cost advantage) │
│ ├─ Azure Active Directory integration │
│ ├─ Virtual nodes (Azure Container Inst.)│
│ ├─ KEDA integration (event-driven scale)│
│ └─ Confidential containers (2024) │
├─────────────────────────────────────────┤
│ Azure Container Apps (2024 Focus) │
│ ├─ Serverless containers platform │
│ ├─ Built-in Dapr integration │
│ ├─ Revision-based deployment │
│ └─ Scale-to-zero capabilities │
├─────────────────────────────────────────┤
│ Azure Container Registry (ACR) │
│ ├─ Geo-replication and caching │
│ ├─ Microsoft Defender integration │
│ ├─ Artifact streaming (faster pulls) │
│ └─ Teleport for air-gapped scenarios │
├─────────────────────────────────────────┤
│ Azure DevOps + GitHub Integration │
│ ├─ Native Azure integration │
│ ├─ Enterprise-grade security │
│ └─ Advanced compliance features │
└─────────────────────────────────────────┘
Your GitHub Actions Integration:
# .github/workflows/azure-deploy.yml
name: Deploy to Azure AKS
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Login to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Login to Azure Container Registry
run: |
az acr login --name ${{ env.ACR_NAME }}
- name: Build and push Docker image
run: |
docker build -t $ACR_NAME.azurecr.io/myapp:$GITHUB_SHA .
docker push $ACR_NAME.azurecr.io/myapp:$GITHUB_SHA
- name: Deploy to AKS
run: |
az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
kubectl set image deployment/myapp myapp=$ACR_NAME.azurecr.io/myapp:$GITHUB_SHA
kubectl rollout status deployment/myapp
Best For:
Microsoft-centric organizations
Hybrid cloud deployments
Enterprise applications with strict compliance
.NET applications
Organizations using Office 365
Popular Services:
Virtual Machines (Compute)
Blob Storage (Object storage)
Azure SQL Database (Managed database)
Azure Functions (Serverless)
AKS (Managed Kubernetes)
3. Google Cloud Platform (GCP)
The Innovation Leader
GCP Strengths:
+ Best-in-class data analytics and AI/ML
+ Kubernetes originated here (Google created it)
+ Competitive pricing and sustained-use discounts
+ Excellent network performance
+ Strong open-source commitment
+ Clean, intuitive interfaces
Key Container Services:
Google Kubernetes Engine (GKE): Most advanced managed Kubernetes
Cloud Run: Serverless containers with auto-scaling to zero
Artifact Registry: Universal package manager with vulnerability scanning
Cloud Build: Native CI/CD with Git integration
Best For:
Data-heavy applications
AI/ML projects
Kubernetes-native applications
Startups and cost-conscious organizations
Applications needing global performance
Popular Services:
Compute Engine (Virtual machines)
Cloud Storage (Object storage)
BigQuery (Data warehouse)
Cloud Functions (Serverless)
GKE (Managed Kubernetes)
Note
For Detailed GCP Coverage: See Chapter 11_cloud_gcp for comprehensive hands-on tutorials including GKE, Cloud Run, compute services, databases, networking, security, and cost optimization specific to Google Cloud Platform.
Side-by-Side Comparison
Container Platform Comparison:
┌─────────────────┬─────────────┬─────────────┬─────────────┐
│ Feature │ AWS │ Azure │ GCP │
├─────────────────┼─────────────┼─────────────┼─────────────┤
│ Kubernetes │ EKS │ AKS │ GKE │
│ Control Plane │ $0.10/hour │ Free │ Free* │
│ Registry │ ECR │ ACR │ Artifact │
│ Serverless │ Fargate │ ACI │ Cloud Run │
│ CI/CD │ CodePipeline│ DevOps │ Cloud Build │
│ Monitoring │ CloudWatch │ Monitor │ Operations │
│ Auto-scaling │ Good │ Good │ Best │
│ Multi-region │ Excellent │ Good │ Excellent │
│ Documentation │ Excellent │ Good │ Good │
└─────────────────┴─────────────┴─────────────┴─────────────┘
* GKE Autopilot is pay-per-pod
Pricing Comparison (Similar Workload):
Small Web App (2 CPU, 4GB RAM, 3 replicas):
AWS EKS:
├─ Control plane: $73/month
├─ Worker nodes: $150/month
├─ Load balancer: $18/month
└─ Total: ~$241/month
Azure AKS:
├─ Control plane: $0/month
├─ Worker nodes: $140/month
├─ Load balancer: $20/month
└─ Total: ~$160/month
GCP GKE Autopilot:
├─ Pay per pod: $120/month
├─ Load balancer: $18/month
├─ No node management
└─ Total: ~$138/month
Regional Strengths and Focus
Geographic Presence:
Global Reach:
AWS: 84 Availability Zones across 26 regions
├─ Strongest in: North America, Europe
├─ Growing in: Asia Pacific, Latin America
└─ First mover advantage globally
Azure: 60+ regions worldwide
├─ Strongest in: Europe, North America
├─ Growing in: Government/compliance markets
└─ Excellent hybrid connectivity
GCP: 35 regions and 106 zones
├─ Strongest in: Asia Pacific, data centers
├─ Growing in: Europe, enterprise
└─ Excellent network performance
Industry Focus:
AWS:
+ Startups and unicorns (Netflix, Airbnb)
+ E-commerce and retail
+ Media and entertainment
+ Financial services
Azure:
+ Enterprise and Fortune 500
+ Government and public sector
+ Healthcare and manufacturing
+ Traditional IT organizations
GCP:
+ Tech companies and startups
+ Data analytics companies
+ AI/ML research organizations
+ Gaming and media companies
Choosing Your Cloud Provider
Decision Framework:
Start with these questions:
1. "What's our primary use case?"
├─ General purpose → AWS
├─ Microsoft integration → Azure
├─ Data/AI focus → GCP
└─ Cost optimization → Compare all three
2. "What's our team's experience?"
├─ AWS certified → AWS
├─ Microsoft background → Azure
├─ Google/open source → GCP
└─ No preference → Start with free tiers
3. "What's our compliance needs?"
├─ Government → Azure or AWS GovCloud
├─ Healthcare → All three (check specific certs)
├─ Financial → AWS or Azure
└─ General → Any provider
4. "What's our budget?"
├─ Startup → GCP (best discounts)
├─ Enterprise → Azure (volume discounts)
├─ Variable workload → AWS (most options)
└─ Predictable → Compare reserved instances
Multi-Cloud Strategy:
Smart Multi-Cloud Approach:
Primary Cloud (70% of workloads):
├─ Choose based on team expertise
├─ Focus on this for deep knowledge
└─ Get volume discounts
Secondary Cloud (20% of workloads):
├─ For specific use cases
├─ Disaster recovery
└─ Avoid vendor lock-in
Third Cloud (10% of workloads):
├─ Experimental workloads
├─ Special requirements
└─ Future options
Getting Started: Free Tiers
All Three Offer Free Tiers:
AWS Free Tier:
├─ 12 months free for new accounts
├─ 750 hours/month of t2.micro EC2
├─ 5GB S3 storage
├─ Some services always free
└─ Credit card required
Azure Free Tier:
├─ 12 months free for new accounts
├─ $200 credit for first 30 days
├─ B1S virtual machine (750 hours)
├─ Some services always free
└─ Credit card required
GCP Free Tier:
├─ $300 credit for new accounts (90 days)
├─ Always free tier (limited usage)
├─ f1-micro instance (1 per region)
├─ 5GB Cloud Storage
└─ Credit card required for verification
Recommendation for Learning:
# Try all three with the same application!
# 1. Start with GCP (most generous credits)
gcloud container clusters create learning-cluster
kubectl apply -f your-app.yaml
# 2. Try Azure (free control plane)
az aks create --name learning-cluster
kubectl apply -f your-app.yaml
# 3. Test AWS (largest ecosystem)
eksctl create cluster --name learning-cluster
kubectl apply -f your-app.yaml
# Compare experiences and costs!
2024 Cloud Provider Comparison
Head-to-Head Comparison for DevOps Teams:
Container Services Maturity (2024):
┌─────────────────┬──────────┬───────────┬─────────────┐
│ Feature │ AWS │ Azure │ GCP │
├─────────────────┼──────────┼───────────┼─────────────┤
│ Kubernetes │ EKS (★★★)│ AKS (★★★★)│ GKE (★★★★★) │
│ Serverless │ Lambda │ Functions │ Cloud Run │
│ Container Reg. │ ECR │ ACR │ Artifact R. │
│ Cost-Effective │ ★★★ │ ★★★★ │ ★★★ │
│ Enterprise │ ★★★★★ │ ★★★★★ │ ★★★ │
│ Innovation │ ★★★★ │ ★★★ │ ★★★★★ │
└─────────────────┴──────────┴───────────┴─────────────┘
Choosing Your Cloud in 2024:
Choose AWS if:
├─ You need the largest service ecosystem
├─ You're building complex, multi-service architectures
├─ You have AWS expertise on the team
├─ You need maximum flexibility and control
└─ You're okay with higher complexity/cost
Choose Azure if:
├─ You use Microsoft technologies (.NET, Office 365)
├─ You need strong hybrid cloud capabilities
├─ You want enterprise-grade security by default
├─ You prefer integrated development tools (Azure DevOps)
└─ You want competitive pricing with good features
Choose GCP if:
├─ You're building AI/ML-heavy applications
├─ You need the best Kubernetes experience
├─ You prioritize developer experience and simplicity
├─ You're working with big data and analytics
└─ You want cutting-edge cloud-native services
Multi-Cloud Reality Check:
2024 Enterprise Trends:
84% of enterprises use multiple clouds
├─ Average: 2.6 different cloud providers
├─ Primary reasons: Avoid vendor lock-in, best-of-breed
├─ Challenges: Complexity, skills, networking costs
└─ Tools helping: Kubernetes, Terraform, service mesh
Note
Your Container Skills Work Everywhere!
The same Docker images and Kubernetes YAML files work on all three clouds:
Same kubectl commands
Same container concepts
Portable CI/CD pipelines
Cloud-agnostic monitoring tools
Pro Tip: Start with one cloud, master the fundamentals, then expand to multi-cloud as your needs grow. Don’t optimize for “what-if” scenarios early on. - Same monitoring approaches - Same CI/CD patterns
Focus on learning cloud-specific services (networking, storage, databases) rather than relearning containers!