--- name: devops description: Deploy to Cloudflare (Workers, R2, D1, KV, Pages), Docker containers, GCP (Cloud Run, GKE). Use for serverless, edge computing, CI/CD pipelines, container orchestration. license: MIT version: 1.0.0 --- # DevOps Skill Comprehensive guide for deploying and managing cloud infrastructure across Cloudflare edge platform, Docker containerization, and Google Cloud Platform. ## When to Use This Skill Use this skill when: - Deploying serverless applications to Cloudflare Workers - Containerizing applications with Docker - Managing Google Cloud infrastructure with gcloud CLI - Setting up CI/CD pipelines across platforms - Optimizing cloud infrastructure costs - Implementing multi-region deployments - Building edge-first architectures - Managing container orchestration with Kubernetes - Configuring cloud storage solutions (R2, Cloud Storage) - Automating infrastructure with scripts and IaC ## Platform Selection Guide ### When to Use Cloudflare **Best For:** - Edge-first applications with global distribution - Ultra-low latency requirements (<50ms) - Static sites with serverless functions - Zero egress cost scenarios (R2 storage) - WebSocket/real-time applications (Durable Objects) - AI/ML at the edge (Workers AI) **Key Products:** - Workers (serverless functions) - R2 (object storage, S3-compatible) - D1 (SQLite database with global replication) - KV (key-value store) - Pages (static hosting + functions) - Durable Objects (stateful compute) - Browser Rendering (headless browser automation) **Cost Profile:** Pay-per-request, generous free tier, zero egress fees ### When to Use Docker **Best For:** - Local development consistency - Microservices architectures - Multi-language stack applications - Traditional VPS/VM deployments - Kubernetes orchestration - CI/CD build environments - Database containerization (dev/test) **Key Capabilities:** - Application isolation and portability - Multi-stage builds for optimization - Docker Compose for multi-container apps - Volume management for data persistence - Network configuration and service discovery - Cross-platform compatibility (amd64, arm64) **Cost Profile:** Infrastructure cost only (compute + storage) ### When to Use Google Cloud **Best For:** - Enterprise-scale applications - Data analytics and ML pipelines (BigQuery, Vertex AI) - Hybrid/multi-cloud deployments - Kubernetes at scale (GKE) - Managed databases (Cloud SQL, Firestore, Spanner) - Complex IAM and compliance requirements **Key Services:** - Compute Engine (VMs) - GKE (managed Kubernetes) - Cloud Run (containerized serverless) - App Engine (PaaS) - Cloud Storage (object storage) - Cloud SQL (managed databases) **Cost Profile:** Varied pricing, sustained use discounts, committed use contracts ## Quick Start ### Cloudflare Workers ```bash # Install Wrangler CLI npm install -g wrangler # Create and deploy Worker wrangler init my-worker cd my-worker wrangler deploy ``` See: `references/cloudflare-workers-basics.md` ### Docker Container ```bash # Create Dockerfile cat > Dockerfile < Docker containers on Cloud Run (Backend Services) # -> R2 (Object Storage) # Benefits: # - Edge caching and routing # - Containerized business logic # - Global distribution ``` ### Multi-Stage Docker Build ```dockerfile # Build stage FROM node:20-alpine AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # Production stage FROM node:20-alpine WORKDIR /app COPY --from=build /app/dist ./dist COPY --from=build /app/node_modules ./node_modules USER node CMD ["node", "dist/server.js"] ``` ### CI/CD Pipeline Pattern ```yaml # 1. Build: Docker multi-stage build # 2. Test: Run tests in container # 3. Push: Push to registry (GCR, Docker Hub) # 4. Deploy: Deploy to Cloudflare Workers / Cloud Run # 5. Verify: Health checks and smoke tests ``` ## Best Practices ### Security - Run containers as non-root user - Use service account impersonation (GCP) - Store secrets in environment variables, not code - Scan images for vulnerabilities (Docker Scout) - Use API tokens with minimal permissions ### Performance - Multi-stage Docker builds to reduce image size - Edge caching with Cloudflare KV - Use R2 for zero egress cost storage - Implement health checks for containers - Set appropriate timeouts and resource limits ### Cost Optimization - Use Cloudflare R2 instead of S3 for large egress - Implement caching strategies (edge + KV) - Right-size container resources - Use sustained use discounts (GCP) - Monitor usage with cloud provider dashboards ### Development - Use Docker Compose for local development - Wrangler dev for local Worker testing - Named gcloud configurations for multi-environment - Version control infrastructure code - Implement automated testing in CI/CD ## Decision Matrix | Need | Choose | |------|--------| | Sub-50ms latency globally | Cloudflare Workers | | Large file storage (zero egress) | Cloudflare R2 | | SQL database (global reads) | Cloudflare D1 | | Containerized workloads | Docker + Cloud Run/GKE | | Enterprise Kubernetes | GKE | | Managed relational DB | Cloud SQL | | Static site + API | Cloudflare Pages | | WebSocket/real-time | Cloudflare Durable Objects | | ML/AI pipelines | GCP Vertex AI | | Browser automation | Cloudflare Browser Rendering | ## Resources - **Cloudflare Docs:** https://developers.cloudflare.com - **Docker Docs:** https://docs.docker.com - **GCP Docs:** https://cloud.google.com/docs - **Wrangler CLI:** https://developers.cloudflare.com/workers/wrangler/ - **gcloud CLI:** https://cloud.google.com/sdk/gcloud ## Implementation Checklist ### Cloudflare Workers - [ ] Install Wrangler CLI - [ ] Create Worker project - [ ] Configure wrangler.toml (bindings, routes) - [ ] Test locally with `wrangler dev` - [ ] Deploy with `wrangler deploy` ### Docker - [ ] Write Dockerfile with multi-stage builds - [ ] Create .dockerignore file - [ ] Test build locally - [ ] Push to registry - [ ] Deploy to target platform ### Google Cloud - [ ] Install gcloud CLI - [ ] Authenticate with service account - [ ] Create project and enable APIs - [ ] Configure IAM permissions - [ ] Deploy and monitor resources