DIDO = Deploy In, Deploy Out
It is a practical workflow pattern used during application deployments to ensure zero downtime, smooth upgrades, and safe rollback.
Think of DIDO as:
Deploy In: Bring the new version into the environment.
Deploy Out: Move the old version out once the new one is verified.
You introduce (deploy) the new version of your application alongside the existing version.
New container / new pod / new server instance is created
Health checks run
Traffic is NOT yet fully shifted
This is a safe testing zone.
Before removing the old version, you ensure:
Health checks pass
APIs respond correctly
No errors in logs
Smoke testing works
Performance is stable
If anything fails → simply REMOVE the new version (Deploy Out) and keep the old one.
Once everything looks good:
Traffic is shifted to the new version
Old version is scaled down or terminated
System continues running smoothly with zero downtime
This makes rollback much easier and ensures safer deployments.
Blue = existing version
Green = new version
DIDO ensures smooth switching.
New version receives 1–10% traffic → Deploy In
If stable → ramp up → Deploy Out old version
Pods/instances replaced one by one → gradual DIDO.
New ReplicaSet created → Deploy In
Old one scaled down → Deploy Out
| Benefit | Explanation |
|---|---|
| Zero Downtime | Users never see errors during deployment |
| Easy Rollback | If new fails, remove it and continue with old |
| Risk Mitigation | Deployment becomes safer and controlled |
| Parallel Versioning | Run both versions temporarily |
| Stability | Ensures only fully verified versions get live traffic |
DIDO = Introduce the new version safely → Validate → Remove the old version.