Blue-Green Deployment Pipeline
Zero-downtime release strategy with instant, safe rollback between parallel environments.
Role
Designer & developer — M.Sc. project (2025/2026)
Stack
Docker, Go, CI/CD
Language
Go · Docker
Repository
Link pending
Problem
Conventional in-place deployments force a window where the service is down or half-updated. Blue-green eliminates the window by running two environments and switching traffic between them.
Solution
An M.Sc. project designing and implementing a blue-green deployment strategy: two identical production environments where traffic switches atomically, enabling zero-downtime releases and safe rollback.
My contribution
Designed the switching strategy and implemented the pipeline that builds, promotes, and routes between the blue and green environments.
Architecture
Two isolated environments (blue, green) behind a routing layer. Releases deploy to the idle environment, pass health checks, then traffic switches atomically. The previous environment stays warm for instant rollback.
Overview
The project implements blue-green deployment end to end: build once, promote the artifact to the idle environment, verify health, and switch traffic — with the old environment preserved for rollback.
Technical Decisions
Health checks gate the traffic switch; a failed check aborts the release before any user traffic moves. Rollback is a route change, not a redeployment.
Results
Zero-downtime releases with second-scale rollback — the pattern production platforms use, built from first principles for the M.Sc. coursework.
The hard part
Guaranteeing the switch is atomic from the client's perspective — no dropped requests mid-release — while keeping rollback under seconds.
A decision worth noting
Kept both environments fully identical and warm rather than scaling the idle one to zero. Capacity cost buys a rollback measured in milliseconds, not minutes.
Outcome
A deployment pipeline demonstrating release engineering: zero-downtime switching, health-checked promotion, and instant rollback.
Next project
Language Learning App