Deployment strategies are systematic approaches for releasing software updates to production environments while managing risk, minimizing downtime, and ensuring system reliability. In modern DevOps and cloud-native architectures, choosing the right deployment strategy determines how quickly teams can deliver features, how safely they can roll back failures, and how effectively they can validate changes under real production conditions. The rise of progressive delivery controllers like Argo Rollouts and Flagger, combined with supply chain security frameworks like SLSA and standardized feature flagging via OpenFeature, has dramatically expanded the deployment toolbox beyond basic rolling and blue-green patterns. Understanding this full spectrum — from foundational approaches to automated canary analysis and serverless traffic shifting — enables teams to balance velocity with stability and implement progressive delivery practices that protect user experience while accelerating innovation.
What This Cheat Sheet Covers
This topic spans 20 focused tables and 119 indexed concepts, 111 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Core Deployment Patterns
These are the fundamental strategies for releasing software to production. Each makes a different trade-off between downtime risk, resource cost, rollback speed, and complexity — knowing when to apply each is the first skill of a mature deployment practice.
| Strategy | Example | Description | |
|---|---|---|---|
Two identical environments: route 100% traffic from blue to green | • Runs two production environments simultaneously • switches all traffic instantly between versions for zero-downtime releases with immediate rollback capability. | ||
Route 5% traffic to new version, monitor, then gradually increase to 100% | • Releases new version to small subset of users first, progressively increasing traffic while monitoring metrics • limits blast radius of failures. | ||
Update pods one-by-one: maxUnavailable: 1maxSurge: 1 | • Default Kubernetes strategy that incrementally replaces old instances with new ones • maintains availability but runs mixed versions temporarily. | ||
Mirror 100% production traffic to new version without affecting responses | • Duplicates live traffic to new version for testing under real load • users receive responses only from production version while shadow version is monitored. | ||
Route 50% users to version A, 50% to version B based on user traits | • Splits traffic between versions to measure user behavior and feature effectiveness • focuses on business metrics rather than technical validation. | ||
Deploy to Ring 0 (dev team) → Ring 1 (internal) → Ring 2 (early adopters) → Ring 3 (all users) | • Progressive rollout to increasingly larger user groups • each ring acts as validation gate for next ring with defined blast radius limits. | ||
aws lambda update-alias --routing-config '{"AdditionalVersionWeights":{"2":0.05}}' | • Routes percentage of Lambda invocations to new function version via alias weights • supports canary and linear strategies through AWS CodeDeploy without managing servers. | ||
Replace entire server instance rather than patching in-place | • Never modifies existing infrastructure after deployment • always creates new instances from base images for consistency and predictable rollback. | ||
kubectl delete deployment appkubectl apply -f v2.yaml | • Terminates all old pods before creating new ones • causes downtime but ensures only one version runs at any time • suitable for breaking changes or stateful apps. |