π Containers & DevOps - Overview¶
Learn container management and deployment automation on Google Cloud Platform.
π Table of Contents¶
- Introduction
- Container Services
- CI/CD Services
- Service Comparison
- DevOps Workflow
- Architecture Patterns
- Quick Reference
Introduction¶
GCP provides comprehensive services for containerization, continuous integration, and continuous deployment.
Container & DevOps Spectrum¶
Container Registry β Build β Deploy β Monitor
| | | |
v v v v
ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ
β Artifact β β Cloud β β Cloud β β Cloud β
β Registry β β Build β β Deploy β βMonitoringβ
ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ
Container Services¶
1. Artifact Registry¶
Modern artifact management
βββββββββββββββββββββββββββββββββββββββββββ
β Artifact Registry β
βββββββββββββββββββββββββββββββββββββββββββ€
β Repositories: β
β ββββββββββββββββββββββββββββββββββββ β
β β Docker Images β β
β β - Multi-arch support β β
β β - Vulnerability scanning β β
β β - Access control β β
β ββββββββββββββββββββββββββββββββββββ β
β ββββββββββββββββββββββββββββββββββββ β
β β Language Packages β β
β β - Maven (Java) β β
β β - npm (Node.js) β β
β β - Python packages β β
β ββββββββββββββββββββββββββββββββββββ β
β β
β Features: β
β - Regional/multi-region β
β - IAM integration β
β - Encryption at rest β
β - Vulnerability scanning β
βββββββββββββββββββββββββββββββββββββββββββ
Characteristics: - Unified artifact management - Docker, Maven, npm, Python support - Regional and multi-region repositories - Vulnerability scanning - IAM-based access control - Encryption at rest and in transit
Use Cases: - Container image storage - Package management - Multi-region distribution - Secure artifact storage
2. Container Registry (Legacy)¶
Docker image storage (being replaced by Artifact Registry)
βββββββββββββββββββββββββββββββββββββββββββ
β Container Registry β
βββββββββββββββββββββββββββββββββββββββββββ€
β gcr.io/PROJECT_ID/IMAGE:TAG β
β β
β Features: β
β - Docker image storage β
β - Vulnerability scanning β
β - IAM integration β
β - Cloud Storage backend β
β β
β Status: Legacy (use Artifact Registry) β
βββββββββββββββββββββββββββββββββββββββββββ
Note: Google recommends migrating to Artifact Registry.
CI/CD Services¶
1. Cloud Build¶
Serverless CI/CD platform
βββββββββββββββββββββββββββββββββββββββββββ
β Cloud Build β
βββββββββββββββββββββββββββββββββββββββββββ€
β Build Pipeline: β
β ββββββββββββββββββββββββββββββββββββ β
β β 1. Source (Git) β β
β β β β β
β β 2. Build (Docker/Maven/npm) β β
β β β β β
β β 3. Test (Unit/Integration) β β
β β β β β
β β 4. Push (Artifact Registry) β β
β β β β β
β β 5. Deploy (GKE/Cloud Run) β β
β ββββββββββββββββββββββββββββββββββββ β
β β
β Features: β
β - Serverless builds β
β - Docker support β
β - Custom build steps β
β - Parallel execution β
β - Build triggers β
βββββββββββββββββββββββββββββββββββββββββββ
Characteristics: - Serverless build execution - Docker-in-Docker support - Custom build steps - Parallel builds - GitHub/Bitbucket integration - Build triggers (push, PR, tag) - Build caching
Use Cases: - Container image builds - Application builds - Automated testing - Multi-stage builds
2. Cloud Deploy¶
Managed continuous delivery
βββββββββββββββββββββββββββββββββββββββββββ
β Cloud Deploy β
βββββββββββββββββββββββββββββββββββββββββββ€
β Delivery Pipeline: β
β ββββββββββββββββββββββββββββββββββββ β
β β Dev β Test β Staging β Prod β β
β β β β β β β β
β β Auto Auto Manual Manual β β
β ββββββββββββββββββββββββββββββββββββ β
β β
β Features: β
β - Progressive delivery β
β - Canary deployments β
β - Blue-green deployments β
β - Rollback support β
β - Approval gates β
βββββββββββββββββββββββββββββββββββββββββββ
Characteristics: - Managed CD service - GKE and Cloud Run support - Progressive delivery - Canary and blue-green deployments - Approval workflows - Rollback capabilities - Deployment verification
Use Cases: - Multi-environment deployments - Progressive rollouts - Canary releases - Production deployments
Service Comparison¶
Feature Matrix¶
| Feature | Artifact Registry | Cloud Build | Cloud Deploy |
|---|---|---|---|
| Purpose | Artifact storage | CI/CD builds | Continuous delivery |
| Pricing | Storage + egress | Build minutes | Deployments |
| Integration | All GCP services | Git, Docker | GKE, Cloud Run |
| Automation | N/A | Triggers | Pipelines |
| Deployment | N/A | Manual/Auto | Progressive |
Use Case Matrix¶
| Requirement | Recommended | Alternative | Reason |
|---|---|---|---|
| Store images | Artifact Registry | Container Registry | Modern, unified |
| Build containers | Cloud Build | Jenkins | Serverless, native |
| Deploy to GKE | Cloud Deploy | kubectl | Managed, progressive |
| CI/CD pipeline | Cloud Build | GitHub Actions | Native integration |
| Multi-region | Artifact Registry | Cloud Storage | Purpose-built |
DevOps Workflow¶
Complete CI/CD Pipeline¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Complete DevOps Workflow β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. Developer pushes code β
β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Source Repository (GitHub/Cloud Source) β β
β ββββββββββββββββββββ¬ββββββββββββββββββββββββββββ β
β β Trigger β
β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Cloud Build β β
β β - Checkout code β β
β β - Run tests β β
β β - Build Docker image β β
β β - Scan for vulnerabilities β β
β β - Push to Artifact Registry β β
β ββββββββββββββββββββ¬ββββββββββββββββββββββββββββ β
β β β
β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Artifact Registry β β
β β - Store image β β
β β - Vulnerability scan β β
β ββββββββββββββββββββ¬ββββββββββββββββββββββββββββ β
β β β
β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Cloud Deploy β β
β β - Deploy to Dev (auto) β β
β β - Deploy to Test (auto) β β
β β - Deploy to Staging (approval) β β
β β - Deploy to Prod (approval + canary) β β
β ββββββββββββββββββββ¬ββββββββββββββββββββββββββββ β
β β β
β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Target Environment β β
β β - GKE Cluster β β
β β - Cloud Run Service β β
β ββββββββββββββββββββ¬ββββββββββββββββββββββββββββ β
β β β
β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Monitoring β β
β β - Cloud Monitoring β β
β β - Cloud Logging β β
β β - Error Reporting β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Architecture Patterns¶
Pattern 1: Simple CI/CD¶
Use Case: Simple web applications
Pattern 2: Multi-Environment Pipeline¶
GitHub
β
Cloud Build
β
Artifact Registry
β
Cloud Deploy
βββ Dev (GKE)
βββ Test (GKE)
βββ Staging (GKE)
βββ Production (GKE)
Use Case: Enterprise applications
Pattern 3: Microservices¶
GitHub (Multiple repos)
β
Cloud Build (Per service)
β
Artifact Registry
β
Cloud Deploy
βββ GKE (Multiple services)
Use Case: Microservices architecture
Pattern 4: Multi-Region¶
Cloud Build
β
Artifact Registry (Multi-region)
βββ us-central1
βββ europe-west1
βββ asia-east1
β
Cloud Deploy
βββ Regional GKE clusters
Use Case: Global applications
Quick Reference¶
Artifact Registry¶
# Create repository
gcloud artifacts repositories create my-repo \
--repository-format=docker \
--location=us-central1
# Configure Docker
gcloud auth configure-docker us-central1-docker.pkg.dev
# Push image
docker tag myapp us-central1-docker.pkg.dev/PROJECT/my-repo/myapp:v1
docker push us-central1-docker.pkg.dev/PROJECT/my-repo/myapp:v1
Cloud Build¶
# Submit build
gcloud builds submit --tag gcr.io/PROJECT/myapp
# Create trigger
gcloud builds triggers create github \
--repo-name=my-repo \
--repo-owner=my-org \
--branch-pattern="^main$" \
--build-config=cloudbuild.yaml
Cloud Deploy¶
# Create delivery pipeline
gcloud deploy apply --file=clouddeploy.yaml
# Create release
gcloud deploy releases create release-001 \
--delivery-pipeline=my-pipeline \
--region=us-central1 \
--images=myapp=us-central1-docker.pkg.dev/PROJECT/my-repo/myapp:v1
Cost Comparison¶
Pricing Overview¶
| Service | Pricing Model | Free Tier | Typical Cost |
|---|---|---|---|
| Artifact Registry | Storage + egress | 0.5 GB | $0.10/GB/month |
| Cloud Build | Build minutes | 120 min/day | $0.003/min |
| Cloud Deploy | Per deployment | 5 deployments/month | $0.02/deployment |
Cost Example¶
Scenario: Small team, 100 builds/month
Artifact Registry:
- Storage: 10 GB Γ $0.10 = $1.00
- Egress: 50 GB Γ $0.12 = $6.00
- Total: $7.00/month
Cloud Build:
- Build time: 100 builds Γ 5 min = 500 min
- Free tier: 120 min/day Γ 30 = 3,600 min
- Billable: 0 min
- Total: $0/month
Cloud Deploy:
- Deployments: 50/month
- Free tier: 5/month
- Billable: 45 Γ $0.02 = $0.90
- Total: $0.90/month
Total: $7.90/month
Best Practices¶
Container Management¶
β
Use Artifact Registry over Container Registry
β
Enable vulnerability scanning
β
Use multi-stage Docker builds
β
Tag images with version and commit SHA
β
Implement image retention policies
β
Use regional repositories for better performance
β
Enable encryption at rest
β
Use IAM for access control
CI/CD Pipeline¶
β
Automate testing in build pipeline
β
Use build triggers for automation
β
Implement approval gates for production
β
Use canary deployments
β
Enable rollback capabilities
β
Monitor deployment metrics
β
Use secrets management
β
Implement security scanning
Security¶
β
Scan images for vulnerabilities
β
Use least privilege IAM
β
Enable binary authorization
β
Use private repositories
β
Implement secret management
β
Enable audit logging
β
Use VPC Service Controls
β
Regular security audits
Performance¶
β
Use build caching
β
Optimize Docker layers
β
Use parallel builds
β
Implement progressive delivery
β
Monitor build times
β
Use regional resources
β
Optimize image sizes
β
Use multi-stage builds
Next Steps¶
- Artifact Registry - Container and artifact storage
- Cloud Build - CI/CD build service
- Cloud Deploy - Continuous delivery
- CI/CD Patterns - Implementation patterns
- Best Practices - Production guidelines
Additional Resources¶
- Artifact Registry Documentation
- Cloud Build Documentation
- Cloud Deploy Documentation
- DevOps Best Practices
Last Updated: March 2026
Status: β
Complete