Use when selecting or designing a deployment strategy for releasing software to production safely
Scanned 9/8/2026
Install to Claude Code
npx -y skills add jeffreytse/grimoire-core --skill design-deployment-strategy --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Design Deployment Strategy?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/jeffreytse-design-deployment-strategy)More formats (shields.io, HTML) on the badges page.
---
name: design-deployment-strategy
description: Use when selecting or designing a deployment strategy for releasing software to production safely
source: AWS Well-Architected Framework (Reliability Pillar); Netflix Tech Blog (canary deployments); Martin Fowler "BlueGreenDeployment" (martinfowler.com)
tags: [deployment, blue-green, canary, rolling, devops, reliability, aws]
verified: true
---
# Design Deployment Strategy
Select and implement the deployment strategy that best matches the system's risk tolerance, rollback requirements, and infrastructure capabilities.
## Why This Is Best Practice
**Adopted by:** Netflix (canary), AWS (blue-green with CodeDeploy), Google (gradual rollouts in GKE), Facebook (progressive push)
**Impact:** Netflix's canary deployments catch ~95% of production issues before they affect all users; blue-green deployments reduce mean time to recover (MTTR) from hours to minutes via instant rollback.
**Why best:** The choice of deployment strategy directly determines blast radius when something goes wrong. A rolling deploy with no traffic control can expose 100% of users to a bad release in minutes; canary deploys can limit exposure to 1% while metrics are evaluated.
## Steps
1. **Assess risk and rollback requirements** — High-risk changes (DB migrations, major refactors): blue-green or canary. Low-risk patches: rolling. Zero-downtime requirement: any strategy except in-place restart.
2. **Evaluate infrastructure capability** — Blue-green requires double capacity temporarily. Canary requires traffic splitting (service mesh, load balancer weights, or feature flags). Rolling requires health check support.
3. **Design blue-green for instant rollback** — Maintain two identical production environments; route traffic via DNS/load balancer switch; keep blue alive for 24h after green proves healthy.
4. **Design canary for gradual exposure** — Route 1-5% of traffic to new version; monitor error rate, latency, and business metrics for a defined window; auto-rollback if thresholds breach.
5. **Design rolling for stateless services** — Replace instances in batches (e.g., 25% at a time); configure health checks to gate each batch; set `maxUnavailable=0` for zero-downtime.
6. **Automate rollback triggers** — Define rollback criteria (error rate >1%, P99 latency >2×, specific log patterns) and automate rollback execution; do not rely on manual intervention.
7. **Test the rollback path** — Practice rollback in staging; a rollback procedure that has never been tested will fail when needed.
## Rules
- Never deploy and walk away — monitor for at least 15 minutes post-deploy before declaring success.
- Database migrations must be backward-compatible with the current production code before deployment begins.
- Feature flags decouple deployment from release — deploy dark, release with a flag flip.
- Document the rollback procedure in a runbook; link it from the deployment pipeline.
## Examples
Canary with Kubernetes and Argo Rollouts:
- Deploy v2 to 5% of pods; Argo monitors Prometheus error rate.
- If error rate <0.5% for 10 minutes → promote to 50% → then 100%.
- If error rate >1% at any step → automatic rollback to v1.
## Common Mistakes
- **No rollback plan** — "we'll just redeploy" is not a plan; migration side effects may not be reversible.
- **Canary without meaningful metrics** — routing 5% of traffic but not measuring business-specific error rates makes the canary blind.
- **Blue-green without database schema alignment** — running two app versions against a single DB with incompatible schemas causes immediate data corruption.
## When NOT to Use
- The service is a stateful database engine or distributed storage cluster — deployment strategies designed for stateless application tiers do not apply; database version upgrades follow vendor-specific rolling upgrade procedures that must not be overridden with generic canary or blue-green patterns.
- The deployment is a hotfix for a critical security vulnerability actively being exploited in production — gradual canary exposure intentionally delays full rollout, which prolongs user exposure to the vulnerability; deploy to 100% immediately with monitoring and accept the higher blast radius.
- The infrastructure has no health check mechanism and no traffic splitting capability — canary and rolling strategies both depend on automated health signal to gate promotion; without these primitives, the strategy cannot be executed safely and infrastructure prerequisites must be built first.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!