Back to Home
Your Deployments Are Causing Downtime. Mine Do Not. Here Is Why

Your Deployments Are Causing Downtime. Mine Do Not. Here Is Why

B
Blizine Admin
·2 min read·0 views

Oluwagbade Odimayo Posted on May 30 Your Deployments Are Causing Downtime. Mine Do Not. Here Is Why # aws # devops # docker # kubernetes Every engineer has a war story about a deployment gone wrong. Mine came before I built this project. A Friday afternoon release, a ten-minute window where the app was completely unreachable, and an inbox full of user complaints by the time it recovered. The fix was already deployed. The damage was already done. I built this project to make sure that never happens again. What you are about to read is a complete, honest walkthrough of how I built a blue-green deployment pipeline on AWS EKS from scratch, on Ubuntu, with nothing but a terminal and determination. I will show you the actual commands, the real challenges I hit, and the exact solutions that fixed them. By the end you will have a working mental model and a repository you can fork today. The pipeline averages 29 seconds end to end. The traffic switch itself takes under one second. Rollback takes under five seconds. And I have the screenshots to prove every single claim. What Blue-Green Deployment Actually Means Before we touch a single terminal command, let us get the concept locked in because it is simpler than most articles make it sound. You run two identical production environments at all times. One is called blue. One is called green. At any given moment, one is live (serving all real user traffic) and the other is idle (running, healthy, but not serving anyone). When you want to release a new version: Deploy the new version to the idle environment Verify it is healthy Flip a switch that moves all traffic from live to idle That switch is instantaneous. Users experience nothing. If the new version has a critical bug, you flip the switch back. Rollback is not a redeploy. It is the same switch command in reverse. On Kubernetes, that switch is a single field change in a Service manifest. That is genuinely all it is. kubectl patch service bluegreen-service \ -p '{"spec":{"se

📰Dev.to — dev.to

Comments