Co to jest Blue-Green deployment

Wchodząc w świat wdrażania i utrzymania aplikacji webowych spotkasz się na pewno z określeniem blue-green departament. Owe określanie pojawiało się jako element Continuous Deployment (w CI/CD), gdzie aktualizacje czy wdrażanie nowych wersji oprogramowania jest częste i zautomatyzowanie a zarazem należy utrzymywać ciągłość dostępności usług, serwisów, którego dotyczą.

W przypadku każdego nowego oprogramowania, nawet w pełni przetestowanego (choć takie ponoć nie istnieje), zawsze istnieje pewne ryzyko przy wdrożeniu na środowisko produkcyjne. Zawsze może pójść coś nie tak. A im bardziej krytycznie biznesowo środowisko, im bardziej ważna jest jego ciągłość dostępności tym to ryzyko jest większe. Aby zabezpieczyć się na warto stosować właśnie metodę wdrażana blue-green.

Zwykle load balanserem mamy dwa identyczne produkcyjne środowiska, które po równo przejmują cały ruch ze świata. Przy metodzie blue-green przełączamy cały ruch na jeden serwer, nazwijmy go green. Natomiast na drugim blue instalujemy aktualizację. Po skończonym procesie, przekierowujemy teraz całe ruch na już zaktualizowany serwer i… sprawdzamy. Jeśli coś nie działa  poprawnie możemy szybko przełączyć ruch na niezaktualizowany serwer a na tym po updacie sprawdzić co było przyczyna problemu.
Z kolei jeśli jesteśmy pewni, że działa wszystko poprawnie na nowym oprogramowaniu to możemy aktualizować i  wcześniejszy serwer, po czym włączyć ruch jak wcześniej, na przykład gdzie był rozprowadzany na oba serwery po równo .
Jest to o tyle łatwiej ze przełączenie ruchu  pomiędzy serwerami blue-green następuje łatwo i szybko na loadbalacerze/routerze/netscalerze.

Tego typu operacji możemy wszędzie tam gdzie możemy zastosować technikę równoważenia obciążenia i mamy przynajmniej dwa identyczne środowiska.