Sobes.tech
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:

  1. Istnieje aktywne środowisko "niebieskie", które obsługuje cały ruch.
  2. Nowa wersja aplikacji jest wdrażana w całkowicie identycznym, ale nieaktywnym środowisku "zielonym".
  3. Po pomyślnych testach w środowisku "zielonym", ruch jest przekierowywany na nie.
  4. "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