Full-stack application deployment is the process of making software applications available to end-users by moving code from development environments to production infrastructure. It encompasses everything from build automation and container orchestration to monitoring, security, and rollback strategies. In modern cloud-native architectures, deployment is no longer a one-time event but a continuous, automated process that must balance speed, reliability, and cost-efficiency. A critical mindset shift: every deployment decision affects availability, performance, and operational overhead — making deployment strategy as important as the code itself.
What This Cheat Sheet Covers
This topic spans 25 focused tables and 201 indexed concepts, 116 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: Deployment Strategies
How you push new code to production determines your blast radius when something breaks. These strategies trade off speed, cost, and safety in different ways—blue-green buys instant rollback at double the infrastructure, canary limits damage by exposing a small slice of users first, and feature flags decouple deploying code from actually releasing it.
| Strategy | Example | Description | |
|---|---|---|---|
Two identical environments (blue and green); switch traffic instantly between them | • Maintains two complete production environments, enabling instant rollback by switching load balancer routing • zero downtime but doubles infrastructure costs. | ||
Route 10% of traffic to new version, monitor metrics, then gradually increase | • Releases updates to a small subset of users first, catching issues early with limited blast radius • allows data-driven rollout decisions based on real user feedback. | ||
Update pods/instances one at a time: kubectl set image deployment/app app=v2Gradually replaces old with new | • Incrementally updates instances without downtime • minimal resource overhead but slower rollout and potential version inconsistency during transition. | ||
Deploy code with features disabled, enable via runtime flags | • Decouples deployment from release, allowing instant feature activation or deactivation without redeployment • enables targeted rollouts and A/B testing. | ||
Shut down old version entirely, then start new version | • Simplest strategy with complete downtime window • only suitable for non-critical applications or during maintenance windows with scheduled outages. | ||
Route users to different versions based on criteria (e.g., user ID, region) | • Deploys multiple versions simultaneously to compare performance or features • requires feature flags and sophisticated routing logic. | ||
Mirror production traffic to new version without affecting real users | • Tests new version with real production load while keeping current version serving users • validates performance without user impact. |