/blue-green-deployment
Implement blue-green deployment strategy with zero-downtime switching, health validation, and automatic rollback
$ npx -y skills add davila7/claude-code-templates --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/blue-green-deployment
Context preview
What this command does when you run it.
Implement blue-green deployment strategy with zero-downtime switching, health validation, and automatic rollback
Command definition
blue-green-deployment.mdallowed-tools: Read, Write, Edit, Bash
argument-hint: [strategy] | setup | deploy | switch | rollback | status
description: Implement blue-green deployment strategy with zero-downtime switching, health validation, and automatic rollback
Blue-Green Deployment Strategy
Implement blue-green deployment: $ARGUMENTS
Current Infrastructure State
- Load balancer config: @nginx.conf or @haproxy.cfg or cloud LB configuration
- Current deployment: !`curl -s https://api.example.com/version 2>/dev/null || echo "Version endpoint needed"`
- Container orchestration: !`kubectl get deployments 2>/dev/null || docker service ls 2>/dev/null || echo "Container platform detection needed"`
- Health endpoints: !`curl -s https://api.example.com/health 2>/dev/null | jq -r '.status // "Unknown"' || echo "Health check setup needed"`
- DNS configuration: Check for DNS management capabilities
Task
Implement production-grade blue-green deployment with comprehensive validation and monitoring.
Blue-Green Architecture Components
1. **Infrastructure Setup**
Load Balancer Configuration (NGINX)
upstream blue {
server blue-app-1:3000;
server blue-app-2:3000;
server blue-app-3:3000;
}
upstream green {
server green-app-1:3000;
server green-app-2:3000;
server green-app-3:3000;
}
# Current active environment
upstream active {
server blue-app-1:3000;
server blue-app-2:3000;
server blue-app-3:3000;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://active;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Environment $environment;
# Health check configuration
proxy_connect_timeout 5s;
proxy_send_timeout 5s;
proxy_read_timeout 5s;
# Retry configuration
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_next_upstream_tries 2;
}
# Health check endpoint
location /health {
access_log off;
proxy_pass http://active/health;
proxy_connect_timeout 1s;
proxy_send_timeout 1s;
proxy_read_timeout 1s;
}
# Environment indicator
location /environment {
access_log off;
return 200 $environment;
add_header Content-Type text/plain;
}
}HAProxy Configuration
global
daemon
log 127.0.0.1:514 local0
stats socket /var/run/haproxy.sock mode 600 level admin
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
option httplog
option dontlognull
# Blue environment
backend blue_backend
balance roundrobin
option httpchk GET /health
http-check expect status 200
server blue1 blue-app-1:3000 check
server blue2 blue-app-2:3000 check
server blue3 blue-app-3:3000 check
# Green environment
backend green_backend
balance roundrobin
option httpchk GET /health
http-check expect status 200
server green1 green-app-1:3000 check
server green2 green-app-2:3000 check
server green3 green-app-3:3000 check
# Frontend with switching logic
frontend main_frontend
bind *:80
# Environment switching via ACL
use_backend blue_backend if { var(txn.environment) -m str blue }
use_backend green_backend if { var(txn.environment) -m str green }
default_backend blue_backend # Default to blue
# Stats interface
frontend stats
bind *:8404
stats enable
stats uri /stats
stats refresh 5s2. **Kubernetes Blue-Green Implementation**
Blue-Green Service Management
# blue-service.yaml
apiVersion: v1
kind: Service
metadata:
name: app-service-blue
labels:
app: myapp
environment: blue
spec:
selector:
app: myapp
environment: blue
ports:
- port: 80
targetPort: 3000
type: ClusterIP
---
# green-service.yaml
apiVersion: v1
kind: Service
metadata:
name: app-service-green
labels:
app: myapp
environment: green
spec:
selector:
app: myapp
environment: green
ports:
- port: 80
targetPort: 3000
type: ClusterIP
---
# active-service.yaml (points to current active environment)
apiVersion: v1
kind: Service
metadata:
name: app-service-active
labels:
app: myapp
environment: active
spec:
selector:
app: myapp
environment: blue # Switch this to 'green' during deployment
ports:
- port: 80
targetPort: 3000
type: LoadBalancerBlue-Green Deployments
# blue-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-blue
labels:
app: myapp
environment: blue
spec:
replicas: 3
selector:
matchLabels:
app: myapp
environment: blue
template:
metadata:
labels:
app: myapp
environment: blue
spec:
containers:
- name: app
image: myapp:v1.0.0
ports:
- containerPort: 3000
env:
- name: ENVIRONMENT
value: "blue"
- name: VERSION
value: "v1.0.0"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
---
# green-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-green
labels:
app: myapp
environment: green
spec:
replicas: 3
selector:
matchLabels:
app: myapp
environment: green
template:
metadata:
labels:
app: myapp
environment: greenRead more
allowed-tools: Read, Write, Edit, Bash argument-hint: [strategy] | setup | deploy | switch | rollback | status description: Implement blue-green deployment strategy with zero-downtime switching, health validation, and automatic rollback
Blue-Green Deployment Strategy
Implement blue-green deployment: $ARGUMENTS
Current Infrastructure State
- Load balancer config: @nginx.conf or @haproxy.cfg or cloud LB configuration
- Current deployment: !`curl -s https://api.example.com/version 2>/dev/null || echo "Version endpoint needed"`
- Container orchestration: !`kubectl get deployments 2>/dev/null || docker service ls 2>/dev/null || echo "Container platform detection needed"`
- Health endpoints: !`curl -s https://api.example.com/health 2>/dev/null | jq -r '.status // "Unknown"' || echo "Health check setup needed"`
- DNS configuration: Check for DNS management capabilities
Task
Implement production-grade blue-green deployment with comprehensive validation and monitoring.
Blue-Green Architecture Components
1. **Infrastructure Setup**
Load Balancer Configuration (NGINX)
upstream blue {
server blue-app-1:3000;
server blue-app-2:3000;
server blue-app-3:3000;
}
upstream green {
server green-app-1:3000;
server green-app-2:3000;
server green-app-3:3000;
}
# Current active environment
upstream active {
server blue-app-1:3000;
server blue-app-2:3000;
server blue-app-3:3000;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://active;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Environment $environment;
# Health check configuration
proxy_connect_timeout 5s;
proxy_send_timeout 5s;
proxy_read_timeout 5s;
# Retry configuration
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
proxy_next_upstream_tries 2;
}
# Health check endpoint
location /health {
access_log off;
proxy_pass http://active/health;
proxy_connect_timeout 1s;
proxy_send_timeout 1s;
proxy_read_timeout 1s;
}
# Environment indicator
location /environment {
access_log off;
return 200 $environment;
add_header Content-Type text/plain;
}
}HAProxy Configuration
global
daemon
log 127.0.0.1:514 local0
stats socket /var/run/haproxy.sock mode 600 level admin
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
option httplog
option dontlognull
# Blue environment
backend blue_backend
balance roundrobin
option httpchk GET /health
http-check expect status 200
server blue1 blue-app-1:3000 check
server blue2 blue-app-2:3000 check
server blue3 blue-app-3:3000 check
# Green environment
backend green_backend
balance roundrobin
option httpchk GET /health
http-check expect status 200
server green1 green-app-1:3000 check
server green2 green-app-2:3000 check
server green3 green-app-3:3000 check
# Frontend with switching logic
frontend main_frontend
bind *:80
# Environment switching via ACL
use_backend blue_backend if { var(txn.environment) -m str blue }
use_backend green_backend if { var(txn.environment) -m str green }
default_backend blue_backend # Default to blue
# Stats interface
frontend stats
bind *:8404
stats enable
stats uri /stats
stats refresh 5s2. **Kubernetes Blue-Green Implementation**
Blue-Green Service Management
# blue-service.yaml
apiVersion: v1
kind: Service
metadata:
name: app-service-blue
labels:
app: myapp
environment: blue
spec:
selector:
app: myapp
environment: blue
ports:
- port: 80
targetPort: 3000
type: ClusterIP
---
# green-service.yaml
apiVersion: v1
kind: Service
metadata:
name: app-service-green
labels:
app: myapp
environment: green
spec:
selector:
app: myapp
environment: green
ports:
- port: 80
targetPort: 3000
type: ClusterIP
---
# active-service.yaml (points to current active environment)
apiVersion: v1
kind: Service
metadata:
name: app-service-active
labels:
app: myapp
environment: active
spec:
selector:
app: myapp
environment: blue # Switch this to 'green' during deployment
ports:
- port: 80
targetPort: 3000
type: LoadBalancerBlue-Green Deployments
# blue-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-blue
labels:
app: myapp
environment: blue
spec:
replicas: 3
selector:
matchLabels:
app: myapp
environment: blue
template:
metadata:
labels:
app: myapp
environment: blue
spec:
containers:
- name: app
image: myapp:v1.0.0
ports:
- containerPort: 3000
env:
- name: ENVIRONMENT
value: "blue"
- name: VERSION
value: "v1.0.0"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
---
# green-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-green
labels:
app: myapp
environment: green
spec:
replicas: 3
selector:
matchLabels:
app: myapp
environment: green
template:
metadata:
labels:
app: myapp
environment: greenReady-to-use configurations for Anthropic's Claude Code. A comprehensive collection of AI agents, custom commands, settings, hooks, external integrations (MCPs), and project templates to enhance your development workflow.
Repo: davila7/claude-code-templates
Other commands on claude-code-templates.
- /cleanup-cache
Clean system caches (npm, Homebrew, Yarn, browsers, Python/ML) to free disk space
Open command - /create-blog-article
Create an SEO-optimized blog article for a Claude Code component with AI-generated cover image
Open command - /lint
Run Python code linting and formatting tools.
Open command - /test
Run Python tests with pytest, unittest, or other testing frameworks.
Open command - /worktree-check
Check current worktree status, branch, and assigned task
Open command - /worktree-cleanup
Clean up merged worktrees and their branches
Open command

