Last chance! 50% off DataCamp Premium
Sale ends in
Toen ik net als MLOps-engineer begon, moest ik een kleine applicatie uitrollen met een ML-model voor beeldclassificatie. De eerste uitrol ging prima. Maar zodra ik het model bijwerkte, begon de chaos. Ten eerste startte de Pod met mijn nieuwe model niet door verschillen tussen mijn testomgeving en productie. Daarnaast konden klanten niet werken, omdat de Pod met het oude model al was vervangen door mijn nieuwe, niet-startende Pod. Een nachtmerrie. Ik moest toen handmatig terugrollen en mijn excuses aanbieden aan de gebruikers van dat model.
Ik heb echter mijn lessen geleerd en ben overgestapt op de blue-green deploymentstrategie. Deze DevOps-aanpak maakt het mogelijk om naadloos nieuwe updates te leveren zonder downtime of nachtelijke rollbacks.
In deze gids laat ik je zien hoe blue-green deployment er in de praktijk uitziet. Hoe je het opzet, de afwegingen, de lessen die je niet uit documentatie haalt. Of je nu ML-services, API’s of full‑stack applicaties bouwt: deze aanpak geeft je team het vangnet om met vertrouwen nieuwe features uit te rollen.
Blue-green deployment klinkt ingewikkelder dan het is (voor mij leek het in het begin lastig toen ik er voor het eerst over hoorde).
Het is eigenlijk een slimme manier om nieuwe versies uit te brengen zonder gebruikers te storen. Dat doe je door twee identieke productieomgevingen te onderhouden en het verkeer daartussen te wisselen.
Als je ooit het probleem had dat je applicatie werkte op staging maar crashte in productie, dan is deze strategie iets voor jou!
Het basisidee: je onderhoudt twee identieke productieomgevingen. De ene heet blue en de andere green.
Blue is de omgeving waarmee gebruikers op dit moment interacteren. Als je een nieuwe versie wilt vrijgeven, deploy je die naar de green-omgeving, test je die, en zodra je zeker weet dat alles werkt, stuur je het productieverkeer om van blue naar green.
Deze strategie zorgt voor geen downtime, geen “sorry, we zijn aan het updaten”. Gewoon een onzichtbare overgang achter de schermen die gebruikers niet eens merken.
In de praktijk zit de magie in de load balancer. Je configureert die om verkeer naar een van beide omgevingen te sturen, afhankelijk van de deploystatus. Dit geeft je fijnmazige controle over verkeer en maakt terugrollen net zo eenvoudig als het verkeer terugschakelen naar blue.
Deze strategie pakt het “maar op staging werkte het”-moment aan, waar ik tegenaan liep met mijn nieuwe ML‑model. Omdat green ook een productieomgeving is, test je in de echte wereld voordat gebruikers het zien.
Hier is een kort overzicht van de typische flow:

Blue-green deployment Fase 1: Nieuwe applicatie in green voor tests, verkeer gaat nog naar blue (afbeelding door auteur).

Blue-green deployment Fase 2: Verkeer omgeleid naar de green-omgeving (afbeelding door auteur).
De blue‑green‑aanpak werd rond 2005 benoemd en gebruikt binnen ThoughtWorks door Daniel Terhorst‑North en Jez Humble. Later werd het gedocumenteerd en populair gemaakt in het boek Continuous Delivery (2010) van Jez Humble en Dave Farley.
Sindsdien wordt het overal gebruikt, van startups tot de huidige cloud-native giganten zoals Netflix en alle teams die meerdere keren per dag zonder drama deployen.
Cloudplatforms hebben deze verschuiving versneld. Met infrastructure‑as‑code, autoscaling-groepen en containerorchestratie zoals Kubernetes werd het opzetten en onderhouden van dubbele omgevingen eenvoudig.
Blue-green deployments hebben zelfs andere modellen geïnspireerd, zoals canary releases en feature flags. Begrijp je blue‑green, dan heb je ook een basis om de rest te snappen.
Nieuw in DevOps? Begin met de cursus DevOps Concepts. Een heldere, praktische basis die je helpt de kernstrategieën te begrijpen voordat je in geavanceerde workflows duikt.
Eerlijk is eerlijk: de eerste keer dat ik over blue-green deployments hoorde, vond ik het onlogisch om twee productieomgevingen te onderhouden. Maar ik zag hoe makkelijk het werd om nieuwe ML‑modellen uit te rollen en hoe ik minder klachten en escalaties kreeg. Dat maakte de moeite de moeite waard.
In de volgende hoofdstukken licht ik de voordelen van blue‑green deployment uit.
Dit is de meest voor de hand liggende: niemand wil downtime.
Met blue‑green kun je het verkeer direct omschakelen van de oude naar de nieuwe omgeving zonder te wachten op degradatie. Je gebruikers merken de switch niet—precies zoals het hoort.
Een gamechanger voor user‑facing API’s, dashboards of ML‑pipelines die zich geen minuut onderbreking kunnen veroorloven.
Stel dat je een release doet en kort daarna blijken er veel internal server errors te zijn. Met blue‑green zet je de load balancer gewoon terug naar de blue‑omgeving en los je het probleem op zonder paniek.
Dat veiligheidsniveau geeft teams het vertrouwen om vaker te shippen. Geen “never change a running system” meer.
Je kunt in productie testen zonder gebruikers aan risico’s bloot te stellen. Dat is de kracht van de green‑omgeving. Je kunt loadtests draaien, integratiechecks uitvoeren en zelfs gebruikersgedrag simuleren voordat echt verkeer de app raakt.
In tegenstelling tot traditionele stagingomgevingen test je op dezelfde infrastructuur, config, en alles eromheen.
Daardoor sluiten tests veel beter aan op de realiteit.
Zodra je twee identieke productieomgevingen hebt, kun je er nog meer mee. Je zou 90% van het verkeer naar de blue‑versie kunnen sturen en 10% naar green.
Je kunt ook feature flags integreren om te bepalen welke features wanneer live gaan, waarbij blue‑green als onderliggende deploybasis goed ondersteunt.
Wil je dieper in progressive delivery duiken? Bekijk CI/CD in Data Engineering. Deze gids laat zien hoe je pipelines opzet die A/B‑testing en geleidelijke uitrol ondersteunen.
Blue‑green deployment helpt om:
Als je kritieke machine‑learningservices of interne datatools uitrolt waar mensen dagelijks op vertrouwen, telt dit enorm.
Voordat je een blue‑green deployment implementeert, is het essentieel om het eerst op een dieper niveau te begrijpen.
Laten we uiteenzetten wat je nodig hebt qua architectuur, kosten en interne gereedheid.
Je hebt twee identieke productieomgevingen nodig. Dat betekent dubbel opzetten en dubbel onderhouden.
Maar voordat je in paniek raakt over de kosten: dat betekent niet altijd dubbel zoveel kosten. Met cloudplatforms of Kubernetes kun je resources voor de green‑omgeving alleen opstarten wanneer nodig en daarna weer uitschakelen.
Dit helpt bij het opzetten van de twee omgevingen:
Houd ook rekening met extra complexiteit on‑premises, omdat je dan moet zorgen dat:
Je kunt de vergelijking van AWS-, Azure- en GCP‑services raadplegen om te bepalen wat het makkelijkst is voor jouw platform.
Sceptici wijzen altijd op de hogere kosten van het onderhouden van twee productieomgevingen. En ja, twee omgevingen draaien is niet gratis. Maar er is een afweging tussen de extra kosten van de tweede omgeving en de kosten van downtime voor je bedrijf.
Vraag jezelf af:
Dat is de grote troef van blue‑green: minder uitval, sneller itereren en minder druk en burn‑out bij engineers.
Tips om kosten te optimaliseren:
Een goed geconfigureerde CI/CD‑pipeline kan dit schalen zelfs automatisch afhandelen.
Dit deel wordt vaak over het hoofd gezien, maar is behoorlijk essentieel.
Zelfs als je het budget hebt voor infrastructuur en tools, werkt blue‑green niet tenzij je teamcultuur en systemen er klaar voor zijn.
Je hebt nodig:
Weet je niet zeker waar je team staat? Overweeg CI/CD for Machine Learning. Deze cursus laat uitgebreid zien hoe een volwassen deployopzet eruitziet en hoe je die bereikt.
Tot nu toe hebben we besproken waarom je blue‑green deployments zou moeten gebruiken. In dit deel laat ik zien hoe je het implementeert.
Ik splits een typische blue‑green‑levenscyclus uit, met focus op het lastige onderdeel: databases.
Je leert wat je automatiseert, wat je monitort en wat je niet mag overslaan.
Een goed geïmplementeerde blue‑green deployment volgt een vaste volgorde. Zo ziet het er meestal uit:
Maak terugrollen net zo snel als uitrollen, zodat een teamlid een deployment in minder dan een minuut kan terugdraaien.
De gids CI/CD in Data Engineering is een uitstekende bron om deze geautomatiseerde fases op te zetten.
Dit is het lastige deel. Je app is stateless, maar je database niet.
Als je dit niet zorgvuldig aanpakt, kun je niet gemakkelijk terugrollen en valt het hele punt van blue‑green deployment weg.
Zo pak je het aan:
Ben je benieuwd hoe je MLOps op productieniveau inzet? Ik raad de cursus MLOps Deployment and Life Cycling aan.
Blue‑green wordt vaak gebruikt als basis voor andere deploymentstrategieën, met variaties om verschillende problemen in het deployproces aan te pakken.
Afhankelijk van je architectuur, releasefrequentie en gewenste complexiteit kun je alternatieven overwegen of zelfs aanpakken combineren tot iets nieuws.
Laten we het meest voorkomende scenario vergelijken: blue‑green vs. canary deployments.
Deze strategieën worden vaak gemixt, maar hebben verschillende doelen.
Blue‑green is een releasemodel met volledige omschakeling. Je deployt naar green, test, en zodra je klaar bent, stuur je 100% van het verkeer om.
Canary is juist geleidelijk. Je deployt de nieuwe versie naast de oude en verschuift stap voor stap een klein percentage van het verkeer (bijv. 1%, dan 10%, dan 50%) terwijl je monitort op issues.
Belangrijkste verschillen tussen de twee strategieën:
Kenmerk | Blue-green | Canary |
Verkeersswitch | Alles in één keer | Geleidelijk |
Rollback | Direct (terug naar blue) | Gedeeltelijk of progressief |
Risicoblootstelling | Hoge impact als green stuk is | Lager (issues vroeg gevonden) |
Infrastructuurbehoefte | Twee volledige omgevingen | Routinglaag om verkeer te splitsen |
Releasezichtbaarheid | Schone, gecontroleerde switch | Meer complexe observability nodig |
Beste voor | Kleinere teams, stabiele apps | Kritieke services, grote gebruikersbasis |
Ik heb zelf blue‑green gebruikt om nieuwe ML‑modellen naar productie te brengen, maar de gebruikersbasis was beperkt. Als mijn modellen een groter publiek hadden gehad, had ik waarschijnlijk voor canary releases gekozen.
Beide strategieën vereisen goede tooling, maar de complexiteit zit op andere plekken.
Blue‑green heeft identieke omgevingen nodig, wat de infrastructuurkosten verhoogt. De routing is daarentegen vrij simpel: verkeer switchen van de ene naar de andere omgeving.
Canary is lichter qua infrastructuurkosten, maar vraagt meer logica voor geleidelijke verkeersverschuiving. Het vereist ook meer gedetailleerde observability om issues zo vroeg mogelijk te vangen.
Andere factoren om te overwegen:
Dus, wat past bij jou?
Als je team de CI/CD‑volwassenheid nog aan het opbouwen is, kan blue‑green het beste zijn om vertrouwen te kweken. Blue‑green is ook een goed startpunt om ervaring op te doen.
Maar heb je een grote gebruikersbasis of deploy je wijzigingen met significant risico (zoals prijslogica), dan kan canary een goede keuze zijn.
Voor Azure‑gerichte teams laat de Azure DevOps Tutorial zien hoe je goede CI/CD op Azure implementeert.
Genoeg theorie. Laten we technischer worden. Zo wordt blue‑green deployment geïmplementeerd op platforms die datateams dagelijks gebruiken, zoals Kubernetes, beheerde clouddiensten en automatiseringstools.
Elk platform biedt andere features, maar het kernidee blijft hetzelfde: je hebt twee identieke omgevingen en één verkeersschakelaar nodig.
Blue‑green implementeren met Kubernetes is eenvoudig, want de benodigde tools zitten er al in.
Er zijn een paar manieren om het op te zetten:
my-app-blue en my-app-green als twee aparte deployments met gedeelde labels en services.Het sleutelonderdeel is de Kubernetes Service. Die fungeert als load balancer en stuurt verkeer naar blue- of green‑pods via labelselectors.
Stel, je hebt:
selector: version: blueNa het valideren van de green‑versie update je de service‑selector naar version: green en het verkeer wordt direct omgeleid.
Ik raad aan om readinessProbes te gebruiken om zeker te zijn dat de nieuwe versie volledig ready is voordat er verkeer naartoe gaat.
Dit proces kun je automatiseren met tools zoals Argo Rollouts en Flagger, die het volgende afhandelen:
Wil je dieper in ML‑centrische infra duiken? Bekijk Fully Automated MLOps.
Als je op AWS, Azure of GCP zit, is het goede nieuws dat blue‑green deployment er al in zit—je hoeft het alleen maar aan te zetten.
AWS CodeDeploy (met Elastic Beanstalk of EC2):
Azure Container Apps of Azure App Service:
Google Cloud (Cloud Run of GKE):
Elke cloudprovider heeft z’n eigen setup en features, maar ze maken je leven makkelijker omdat je zelf minder hoeft te bouwen.
Het gebruik van beheerde services heeft ook als voordeel dat je het niet zelf hoeft te onderhouden: de cloudproviders updaten hun services, jij hoeft ze alleen goed te configureren.
Nieuw in GCP? Bekijk Cloud Run: A Guide to Deploying Containerized Apps in GCP.
Cloud Foundry is een open‑source platform‑as‑a‑service (PaaS) die veel van de onderliggende infrastructuur abstraheert, waardoor developers zich kunnen richten op code pushen. Het is vooral populair bij grote enterprises vanwege automatisering, compliance‑features en snelle deployworkflows.
Zo werkt een typische blue‑green deployment in Cloud Foundry met de officiële CLI:
demo-time:cf create-route example.com --hostname my-appcf push my-appcf map-route my-app example.com --hostname my-appmy-app.example.com.cf create-route example.com --hostname my-app-tempcf push my-app-greencf map-route my-app-green example.com --hostname my-app-tempmy-app.example.com voor blue en my-app-temp.example.com voor green).bashcf map-route my-app-green example.com -n my-appcf unmap-route my-app example.com -n my-appcf delete my-appcf unmap-route my-app-green example.com --hostname my-app-tempDit proces minimaliseert downtime en geeft je volledige controle over wanneer en hoe je versies wisselt.
Wil je deze workflow verder verbeteren met visuele pipelines, handmatige goedkeuringen of geautomatiseerde rollbacks? Tools als Octopus Deploy, Codefresh of Spinnaker zijn sterke opties. Ze integreren naadloos met CI/CD‑pipelines en stellen teams in staat complexe deploylevenscycli te automatiseren.
Blue‑green deployment is geweldig en kan enorm helpen, maar het kan ook snel rommelig worden als je kosten, risico of automatisering niet goed beheert. Ik heb teams gezien die leden onder te complexe setups of onverwachte randgevallen.
Laten we kijken wat je moet doen om dat te voorkomen en je blue‑green strategie tot een succes te maken.
Omgevingen dupliceren kost uiteraard extra geld.
Maar je kunt ze minimaliseren met onderstaande strategieën:
Schakel nooit verkeer om zonder volledige zekerheid dat je green‑applicatie doet wat hij moet doen.
Gebruik deze testlagen om vertrouwen op te bouwen vóór de switch:
Integreer dit in je CI/CD‑pipeline zodat het automatisch draait na een geslaagde deployment.
Een opfrisser nodig voor het bouwen van deze flows? CI/CD for Machine Learning behandelt hoe je geautomatiseerde validaties in je deploylevenscyclus opneemt.
Dit is een lastig deel, want je app kan in twee omgevingen draaien, maar je database is meestal voor beide hetzelfde.
Zo schakel je veilig over:
Blue‑green combineren met feature flags geeft nog meer flexibiliteit.
Met flags kun je:
Gebruik tools als LaunchDarkly, ConfigCat of Unleash om het beheer te vereenvoudigen zonder codewijzigingen.
Monitoring en observability zijn cruciaal om verkeer veilig te kunnen omschakelen, omdat je ermee beoordeelt of green klaar is om blue te vervangen.
Je zou moeten hebben:
readinessProbes, Azure‑revisie‑URL’s, etc.Overigens zouden robuuste monitoring en observability sowieso onderdeel van je infrastructuur moeten zijn, los van blue‑green.
Er gaat af en toe iets mis. Het doel is om herstel zo makkelijk en snel mogelijk te maken.
Zo pak je dat aan:
Voor meer praktische DevOps‑automatiseringstips, bekijk de Azure DevOps Tutorial.
Twee omgevingen betekent ook twee potentiële aanvalspunten.
Enkele suggesties voor goede beveiliging:
Blue‑green deployment is niet zomaar een fancy strategie voor over‑engineerde processen. Het is een praktische en betrouwbare aanpak voor teams die uptime, snelle feedback en een goede nachtrust prioriteren.
Het geeft je:
Maar is het perfect voor elke situatie? Ik zou zeggen: nee. Je hebt een solide CI/CD‑setup nodig met tools die de reis ondersteunen. Anders kan het snel rommelig worden.
Maar dat is geen reden om het te mijden. Het is juist een signaal om je deploypraktijken te verbeteren.
Wij hebben onze releaseflow drastisch verbeterd met blue‑green deployments en sindsdien opmerkelijk relaxte releasedagen gehad—zo zelfverzekerd dat we ook op vrijdagen releasen.
Wil je dieper gaan? Begin met DevOps Concepts of MLOps Deployment and Life Cycling. Die helpen je de basis te bouwen waarop blue‑green rust.
Ga nu je applicatie met vertrouwen shippen.
Het biedt naadloze rollbacks, snelle releases, veiliger testen in productie en tevredener gebruikers dankzij minder risico en bijna nul downtime.
Canary‑releases stellen een nieuwe versie geleidelijk bloot aan een subset gebruikers, terwijl blue‑green deployments in één keer al het verkeer naar de nieuwe versie schakelen.
Via achterwaarts‑compatibele schemawijzigingen, geversioneerde migraties en zorgvuldige datasynchronisatiestrategieën.
Twee identieke omgevingen (blue en green), een verkeersschakelaar zoals een load balancer, en een sterke CI/CD‑mindset zijn essentieel.
Ik ben een Cloud Engineer met een sterke basis in elektrotechniek, machine learning en programmeren. Mijn carrière begon in computervisie, met een focus op beeldclassificatie, waarna ik overstapte naar MLOps en DataOps. Ik ben gespecialiseerd in het bouwen van MLOps-platformen, het ondersteunen van data scientists en het leveren van Kubernetes-gebaseerde oplossingen om machinelearning-workflows te stroomlijnen.
Topcursussen op DataCamp
Cursus
Cursus
Leerpad

blog
Adel Nehme
15 min