Blue-green deployment is een manier om een nieuwe versie van software uit te rollen zonder downtime. Je draait twee identieke opzetten: de ene staat live (noem hem blauw) en de andere staat stil (groen). Je zet de update op de stille omgeving, test die goed, en stuurt daarna al het verkeer in één schakeling die kant op. De oude omgeving blijft draaien, onaangeroerd, voor het geval dat.
Zie het als twee podia die naast elkaar staan op een evenement. Het publiek kijkt naar podium één terwijl de crew podium twee klaarmaakt achter het gordijn. Zodra podium twee klaar is, zet je gewoon het licht erop en gaat de show zonder pauze door. Gaat er iets mis, dan zet je in seconden het licht weer op podium één, en juist daarom is een rollback hier zo snel.
De omschakeling zelf gebeurt meestal bij de load balancer, die bepaalt waar verzoeken naartoe gaan. Omdat de wijziging één routeerschakeling is en geen trage uitrol, gaat teruggaan net zo snel: je wijst het verkeer weer naar de oude omgeving en klaar. De prijs van deze aanpak is dat je twee volledige omgevingen tegelijk draait, wat je hostingrekening voor de overlap ongeveer verdubbelt, dus het past bij releases waar downtime echt duur is. Het andere aandachtspunt is de database. Twee app-omgevingen zijn makkelijk te dupliceren, maar ze delen meestal één database, dus een schemawijziging moet tijdens de omschakeling werken voor zowel de oude als de nieuwe versie. Teams lossen dat op door databasewijzigingen in kleine, terugwaarts compatibele stappen uit te rollen in plaats van in één keer.
Bij TopDevs gebruiken we blue-green deployments voor systemen waar zelfs een minuut offline de klant geld kost, zodat updates rustig live gaan en in één tel terug te draaien zijn.