Jak zrobić wdrożenie Kubernetes Blue Green

Jak zrobić wdrożenie Kubernetes Blue Green
W tym artykule porozmawiamy o niebiesko-zielonych wdrożenia Kubernetes i dlaczego ich użycie jest najlepszym wyborem. Kubernetes jest niewątpliwie idealną platformą do wdrożeń niebiesko-zielonych. Na przykład moglibyśmy użyć platformy do wdrożenia aplikacji, przełączania ruchu użytkownika, a następnie usunąć niebieskie środowisko po dynamicznym utworzeniu zielonego. Możemy użyć Kubernetes do zarządzania całym procesem niebiesko-zielonym za pomocą tylko jednego narzędzia. Kubernetes znacznie zwiększył standaryzację, ale jej dynamiczne środowisko wymaga ciągłej adaptacji. Zacznijmy więc od omówienia, w jaki sposób Kubernetes jest używany do budowania wdrożeń.

Strategia wdrażania Blue Green w Kubernetes

Jest również znany jako metoda wdrażania „zerowego przestoju”, ponieważ w tego rodzaju procesie K8s produkuje nowy kapsułek w nowym środowisku, a także istniejące wdrożenie, a nie usuwanie lub zastępowanie istniejącego POD.

To podejście wdrażania pozwala na jednoczesne działanie dwóch identycznych środowisk produkcyjnych. Jednym z nich jest środowisko produkcyjne, które jest obecnie używane. Dostaje każdy ruch użytkownika wskazany jako niebieski. Jego klon w drugim środowisku jest wolny (zielony). Konfiguracja aplikacji jest używana przez oba.

Nowa wersja aplikacji jest konfigurowana w zielonym ustawieniu i przetestowana pod względem wydajności i funkcjonalności. Ruch aplikacji jest kierowany z niebieskiego na zielony po powodzenia wyników testowania. Nowa produkcja jest następnie zielona.

Jaki jest proces wdrażania niebieskiego zielonego w Kubernetes?

W Kubernetes proces wdrażania Blue Green jest następujący:

  1. Kolor wskazuje aktualną wersję aplikacji (e.g niebieski)
  2. Do wdrażania używane są nowe kapsuły i są one oznaczone w nowym kolorze (i.mi., zielony)
  3. Chociaż obie wersje są jednocześnie dostępne, usługa Kubernetes nadal wskazuje na starszą/niebieską wersję, dlatego nie wszyscy użytkownicy systemu zostali jeszcze świadomi zmiany.
  4. W nowej wersji można przeprowadzić wiele testów bez wpływu na obecnych klientów.
  5. Usługa Kubernetes jest przełączana i teraz wskazuje na nową wersję po okresie zdefiniowanym przez użytkownika. Teraz nowa możliwość jest dostępna dla wszystkich aktywnych użytkowników bez żadnych przerw.

Zbadajmy bardziej szczegółowo pełny proces wdrażania niebiesko-zielonego. Wyobraź sobie, że obecnie używamy wersji 1 programu, który jest wyświetlany na niebiesko. Używamy wdrożeń i kapsuł do uruchamiania aplikacji w Kubernetes. Na poniższym rysunku można zobaczyć niebieskie wdrożenie, w którym używana jest „wersja 1”. „Pod 1”, „Pod 2” i „Pod 3” można również zobaczyć wdrożenie.

Następująca wersja, wyznaczona „Wersja 2”, jest następnie przygotowywana do użycia. Dlatego opracowujemy nowe ustawienie produkcyjne o nazwie Green (patrz rysunek poniżej).

Okazuje się, że w Kubernetes musimy po prostu określić nowe wdrożenie; resztę platformy robi. Ze względu na ciągłą normalną działalność Blue Environment użytkownicy nadal nie są świadomi zmiany. Nie zauważą żadnej zmiany, dopóki nie przekształcimy niebieskiego na zielony ruch.

Wiadomo, że tylko programiści, którzy lubią podejmować ryzyko, testują się w produkcji. Ale w tym miejscu każdy może to zrobić bez niebezpieczeństwa. Na tym samym klastrze Kubernetes co niebieski możemy przetestować zielony według naszego wygody.

Wersja 1 jest w trybie gotowości, jak pokazano poniżej. Podczas gdy wersja 2 jest aktywna na zielono. Zobacz poniższy rysunek, aby lepiej zrozumieć tę koncepcję. Tutaj widać, że zielone wdrożenie jest teraz uruchomione. Wszystkie zasoby wykorzystywane przez niebieskie wdrożenie są teraz wykorzystywane przez zielone wdrożenie. Możesz zobaczyć, że nic nie dzieje się w niebieskim wdrożeniu.

Po zmianie użytkowników z niebieskiego na zielony i jesteśmy zadowoleni z wyniku, możemy usunąć niebieski, aby wydać zasoby. Na poniższym rysunku widać tylko, że zielone wdrożenie działa skutecznie.

Niebiesko-zielone wdrożenia są trudne, jak można się spodziewać. Musimy zarządzać siecią, jednocześnie żonglując dwoma wdrożeniami. Na szczęście Kubernetes znacznie upraszcza proces. Powinniśmy jednak dołożyć wszelkich starań, aby zautomatyzować cykl wydawania.

Aktualizacja Blue Green wdrożenie

Zakończenie wdrożenia niebiesko-zielonego. Wynika to z faktu, że musieliśmy skonfigurować nowe klastry i ponownie zainstalować wszystkie nasze aplikacje; i potrzebne jest więcej finansowania na aktualizacje. W rezultacie, gdy jest to możliwe, faworyzujemy standardową aktualizację. Metodę wdrażania niebiesko-zielonego można zastosować do aktualizacji kilku wersji lub do zwiększenia naszego zaufania do aktualizacji, które obejmują złamanie zmian. Musimy dokładnie przeanalizować wszystkie zmieńcze.

Zalety korzystania z wdrożeń niebiesko-zielonych

Podczas wdrażania w produkcji zastosowanie tej strategii ma wiele zalet.

Mniej przestoju

Zanim system przejdzie do trybu online, wdrożenia zawsze wymagają trochę czasu. Blue Green daje nam możliwość wdrażania produkcji i bezpośredniego ruchu w nowym wdrożeniu, gdy jest ono operacyjne i na żywo. W rezultacie użytkownicy nie będzie żadnych przestojów.

Natychmiastowe wycofanie

Jeśli niebieskie środowisko w tym scenariuszu jest wadliwe, możemy przekazać cały nasz ruch do zielonego środowiska, który będzie miał najnowszą stabilną wersję. Możemy również pozwolić naszym programistom rozwiązać wszelkie wady w najnowszej wersji. Po naprawie błędu ruch zostanie ponownie przekierowany, a kolejne wdrożenie zostanie z powrotem na niebieski.

Nie wpływają na użytkowników

Twój użytkownik nawet nie będzie świadomy, że wdrożenie nie powiodło się.

Wniosek

Wdrożenia są jedną z najważniejszych faz cyklu życia oprogramowania, więc każde zaangażowane w nich działanie musi zostać starannie rozważane i przetestowane, aby upewnić się, że idealnie nadaje się do naszej architektury i operacji systemu. W tym poście mieliśmy szczególnie wdrożenia niebieskiego zielonego. Jedną z potencjalnych metod wdrażania aplikacji do produkcji jest ten. Jak każde inne podejście, ma własne wady. Omówiliśmy szczegółowo wspomniany temat i reprezentację graficzną, aby pomóc ci lepiej to zrozumieć.