This article was originally published on bmf-tech.com.
Overview
Summarizing deployment strategies.
Definitions of Deploy, Release, and Rollback
As a prerequisite for deployment strategies, let's clarify the definitions of these terms.
Deploy: "Placing an executable program in the execution environment."
Release: "Making it accessible to users."
Rollback: "Releasing an older version."
Types of Deployment Strategies
Let's look at some representative strategies.
In-Place Deployment
A method of deploying a new version directly to the existing environment.
As a side note, bmf-tech.com uses docker-compose, and the deployment is in-place deployment...
cf. Technology Supporting bmf-tech
Symbolic Link Deployment
A method of switching between old and new versions using symbolic links.
Blue-Green Deployment
A method where two environments, blue and green, are prepared, and the new version is deployed to one, temporarily deploying both old and new versions. If there are no issues with the new version, traffic is switched from the old version to the new version. Both blue and green environments are maintained.
Immutable Deployment
Similar to blue-green, but differs in that the old environment is deleted after traffic is switched.
Rolling Deployment
A method of deploying and releasing the new version in increments. Until completion, traffic to both old and new environments remains active.
Canary Deployment
A method where only a portion of users or traffic is exposed to the new version, allowing for partial deployment and release of the new version.
Deployment Strategy Evaluation Table
For each deployment strategy, important criteria for selection are picked and summarized in a table.
| Deployment Method | Zero Downtime | Production Testing | Rollback Time | Operational Cost |
|---|---|---|---|---|
| In-Place Deployment | × | × | High | Low |
| Symbolic Link Deployment | ○ | × | Low | Medium |
| Blue-Green Deployment | ○ | ○ | Low (even before/after traffic switch) | High |
| Immutable Deployment | ○ | ○ | Low (limited to before old environment deletion) | High |
| Rolling Deployment | ○ | × | Low | Medium |
| Canary Deployment | ○ | ○ | Medium | High |
- Zero Downtime
- Whether service downtime occurs during deployment
- ○ if zero downtime is possible, ✗ if not
- Production Testing
- Whether traffic can be routed to the new version
- ○ if possible, ✗ if not
- Rollback Time
- The time cost required for rollback
- Judged as Low, Medium, or High
- Operational Cost
- The operational cost to organize the deployment method
- Judged as Low, Medium, or High
Top comments (0)