Middle
Czym jest wdrożenie Blue-Green?
sobes.tech AI
Odpowiedź od AI
Wdrożenie Blue-Green to strategia wydawania nowych funkcji z minimalnym czasem przestoju, oparta na utrzymaniu dwóch identycznych środowisk: "niebieskiego" (obecnej, działającej wersji) i "zielonego" (nowej wersji).
Algorytm:
- Istnieje aktywne środowisko "niebieskie", które obsługuje cały ruch.
- Nowa wersja aplikacji jest wdrażana w całkowicie identycznym, ale nieaktywnym środowisku "zielonym".
- Po pomyślnych testach w środowisku "zielonym", ruch jest przekierowywany na nie.
- "Niebieskie" środowisko jest zachowane do szybkiego cofnięcia lub może być użyte do kolejnych wdrożeń.
Kluczowe zalety:
- Minimalny czas przestoju: Przełączenie ruchu jest niemal natychmiastowe.
- Prosty rollback: W przypadku problemów z nową wersją, ruch łatwo można przekierować z powrotem na "niebieskie" środowisko.
- Mniejsze ryzyko: Nowa wersja jest testowana w odizolowanym środowisku przed zmianą ruchu.
Wady:
- Podwójne zasoby: Wymagane są zasoby do utrzymania dwóch pełnych środowisk.
- Zarządzanie stanem: Może być trudne zarządzanie stanem aplikacji, jeśli korzysta z bazy danych z ciągłymi zmianami.
Przykład zmiany ruchu z użyciem load balancera:
// Konfiguracja load balancera (uproszczona)
{
"listeners": [
{
"port": 80,
"protocol": "HTTP",
"default_actions": [
{
"type": "forward",
"target_group_arn": "arn:aws:elasticloadbalancing:..." // ARN grupy instancji "niebieskiego" środowiska
}
]
}
]
}
# Komenda do zmiany ruchu na "zielone" środowisko
# (przykład dla AWS CLI, zakładając dostępność ARN nowej grupy docelowej)
aws elbv2 modify-listener --listener-arn "arn:aws:elasticloadbalancing:..." --default-actions Type=forward,TargetGroupArn="arn:aws:elasticloadbalancing:..." // ARN grupy instancji "zielonego" środowiska