Cloud Provider Deployment Guide¶
Deploy USL applications to AWS, GCP, and Azure with cloud-native features.
AWS Deployment¶
Amazon ECS (Fargate)¶
Use for: Serverless container deployment on AWS
Generated files: - task-definition.json - ECS task configuration - service.json - ECS service definition - alb.json - Application Load Balancer config
Setup¶
-
Create ECS Cluster:
-
Create Task Execution Role:
-
Register Task Definition:
-
Create Service:
Features¶
- Auto Scaling: Target tracking based on CPU/memory
- Load Balancing: ALB with health checks
- Secrets: AWS Secrets Manager integration
- Logging: CloudWatch Logs
- Networking: VPC with private subnets
Amazon EKS¶
Use for: Managed Kubernetes on AWS
Setup¶
-
Create EKS Cluster:
-
Install AWS Load Balancer Controller:
-
Install External Secrets Operator:
-
Configure SecretStore:
-
Deploy Application:
GCP Deployment¶
Google Cloud Run¶
Use for: Serverless container deployment on GCP
deployment {
runtime: cloudrun
replicas: 2
secrets: secretmanager
tls: required
scaling {
min: 2
max: 100
target_cpu: 80
}
}
Generated: service.yaml - Cloud Run service config
Setup¶
-
Enable APIs:
-
Create Secrets:
-
Build and Push Image:
-
Deploy Service:
Features¶
- Auto Scaling: Request-based scaling (0-1000 instances)
- Traffic Splitting: Gradual rollouts
- Secret Integration: Secret Manager mount
- Cloud SQL: Private VPC connector
- Custom Domains: HTTPS with managed certificates
Google Kubernetes Engine (GKE)¶
Use for: Managed Kubernetes on GCP
Setup¶
-
Create GKE Cluster:
-
Enable Workload Identity:
-
Grant Secret Access:
-
Deploy Application:
Azure Deployment¶
Azure Container Apps¶
Use for: Serverless container deployment on Azure
Generated: containerapp.yaml - Container App definition
Setup¶
-
Create Resource Group:
-
Create Container Apps Environment:
-
Create Key Vault:
-
Store Secrets:
-
Create Container App:
Features¶
- KEDA Scaling: Event-driven autoscaling
- Dapr Integration: Microservices building blocks
- Traffic Splitting: Blue-green deployments
- Key Vault: Managed identity integration
- Private Networking: VNet integration
Azure Kubernetes Service (AKS)¶
Use for: Managed Kubernetes on Azure
Setup¶
-
Create AKS Cluster:
-
Get Credentials:
-
Install CSI Driver:
-
Deploy Application:
Multi-Cloud Comparison¶
| Feature | AWS ECS | GCP Cloud Run | Azure Container Apps |
|---|---|---|---|
| Pricing | Pay per task | Pay per request | Pay per execution |
| Scaling | 0-1000+ | 0-1000+ | 0-1000+ |
| Cold Start | ~10s | ~1s | ~5s |
| Secrets | Secrets Manager | Secret Manager | Key Vault |
| Database | RDS | Cloud SQL | Azure SQL |
| Load Balancer | ALB | Built-in | Built-in |
| Custom Domain | Route 53 | Cloud DNS | Azure DNS |
Cost Optimization¶
AWS¶
# Use Fargate Spot for non-critical workloads
capacityProviderStrategy:
- capacityProvider: FARGATE_SPOT
weight: 1
GCP¶
Azure¶
# Use consumption plan
az containerapp create \
--resource-group app-rg \
--environment app-env \
--name my-app \
--min-replicas 0 \
--max-replicas 10
Monitoring¶
AWS CloudWatch¶
GCP Cloud Logging¶
Azure Monitor¶
CI/CD Integration¶
AWS CodePipeline¶
# buildspec.yml
version: 0.2
phases:
build:
commands:
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker push $IMAGE_REPO_NAME:$IMAGE_TAG
post_build:
commands:
- aws ecs update-service --cluster app-cluster --service app-service --force-new-deployment
GCP Cloud Build¶
# cloudbuild.yaml
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/app:$SHORT_SHA', '.']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/app:$SHORT_SHA']
- name: 'gcr.io/cloud-builders/gcloud'
args: ['run', 'deploy', 'app', '--image', 'gcr.io/$PROJECT_ID/app:$SHORT_SHA']
Azure DevOps¶
# azure-pipelines.yml
trigger:
branches:
include:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Docker@2
inputs:
command: 'buildAndPush'
repository: 'app'
tags: '$(Build.BuildId)'
- task: AzureCLI@2
inputs:
azureSubscription: 'Azure-Connection'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az containerapp update \
--name app \
--resource-group app-rg \
--image registry.azurecr.io/app:$(Build.BuildId)
Next Steps¶
- Kubernetes Guide - Detailed K8s deployment
- Helm Guide - Helm charts
- Secrets Management - Secret handling
- Monitoring - Observability