Middle
Wat is Blue-Green deployment?
sobes.tech AI
Antwoord van AI
Blue-Green implementatie is een strategie voor het uitrollen van nieuwe functies met minimale downtime, gebaseerd op het onderhouden van twee identieke omgevingen: "blauw" (de huidige, werkende versie) en "groen" (de nieuwe versie).
Algoritme:
- Er is een actieve "blauwe" omgeving die al het verkeer afhandelt.
- De nieuwe versie van de applicatie wordt uitgerold in een volledig identieke, maar inactieve "groene" omgeving.
- Na succesvolle tests in de "groene" omgeving, wordt het verkeer daarop overgeschakeld.
- De "blauwe" omgeving wordt behouden voor snelle rollback of kan worden gebruikt voor toekomstige uitrols.
Belangrijke voordelen:
- Minimale downtime: Het overschakelen van verkeer gebeurt bijna onmiddellijk.
- Eenvoudige rollback: Bij problemen met de nieuwe versie kan het verkeer gemakkelijk worden teruggeleid naar de "blauwe" omgeving.
- Minder risico: De nieuwe versie wordt getest in een geïsoleerde omgeving voordat het verkeer wordt overgeschakeld.
Nadelen:
- Dubbelen resources: Er zijn resources nodig om twee volledige omgevingen te onderhouden.
- Statusbeheer: Het kan moeilijk zijn om de status van de applicatie te beheren als deze een database met constante veranderingen gebruikt.
Voorbeeld van verkeer overschakelen met behulp van een load balancer:
// Configuratie van de load balancer (vereenvoudigd)
{
"listeners": [
{
"port": 80,
"protocol": "HTTP",
"default_actions": [
{
"type": "forward",
"target_group_arn": "arn:aws:elasticloadbalancing:..." // ARN van de doelgroep van de "blauwe" omgeving
}
]
}
]
}
# Commando om verkeer naar de "groene" omgeving te schakelen
# (voorbeeld voor AWS CLI, ervan uitgaande dat de ARN van de nieuwe doelgroep beschikbaar is)
aws elbv2 modify-listener --listener-arn "arn:aws:elasticloadbalancing:..." --default-actions Type=forward,TargetGroupArn="arn:aws:elasticloadbalancing:..." // ARN van de doelgroep van de "groene" omgeving