Strategie wdrażania

Ukończone

Rozwiązania metodyki DevOps obejmują częste cykle wydań, co daje organizacjom i ich użytkownikom końcowym wiele korzyści. Ponieważ poszczególne wdrożenia są mniejsze, są szybsze i mniej stresujące, ale nadal mogą pójść źle. Aby zmniejszyć możliwość wystąpienia problemów, należy wdrożyć strategię wdrażania, która najlepiej odpowiada potrzebom organizacji.

Wiesz już o podejściu "epickiego wdrażania", które niektórzy nazywają strategią "wielkiego wybuchu". Wiesz, że ta metoda nie działa dobrze w przypadku nowoczesnych aplikacji. Istnieje wiele innych strategii wdrażania, które stały się popularne w kontekście nowoczesnych operacji, a każda z nich ma własne mocne i słabe strony zależne od sytuacji.

Strategia wdrażania stopniowego

Strategia wdrażania stopniowego ma stopniowe podejście do wprowadzania nowych wersji kodu. Nowa wersja jest stopniowo wprowadzana w czasie — liczba wystąpień nowego kodu rośnie, a starego — maleje. Oznacza to, że stare i nowe wystąpienia współistnieją w organizacji. Na przykład możesz uaktualniać oprogramowanie na jednym serwerze, jednej maszynie wirtualnej lub w jednym kontenerze naraz.

Zaletą tej strategii jest możliwość monitorowania nowego kodu w środowisku produkcyjnym w celu zapewnienia, że spełnia ona wymagania dotyczące wydajności, bezpieczeństwa, niezawodności i innych standardów przed ich szeroko wdrożonym.

Strategia wdrażania niebiesko-zielona

Strategia wdrażania niebiesko-zielona używa dwóch oddzielnych środowisk, które są identyczne. Jedno z nich to środowisko testowe zawierające nową wersję oprogramowania, a drugie to bieżące środowisko produkcyjne. Gdy oprogramowanie działa prawidłowo i spełnia twoje standardy, można wykonać pełny przełącznik z bieżącego środowiska produkcyjnego do nowego, aby teraz obsługiwał cały ruch produkcyjny.

Środowisko niebieskie to bieżące środowisko produkcyjne. Środowisko zielone to jego dokładny duplikat. Najpierw należy wdrożyć nową wersję oprogramowania w środowisku zielonym, a następnie po zakończeniu kierowania ruchu aplikacji z niebieskiego środowiska do zielonego, który jest teraz środowiskiem produkcyjnym.

Zaletą tej strategii jest możliwość niemal natychmiastowego przełączenia bez przestojów. Można również łatwo przełączyć się z powrotem na niebieski, jeśli problem występuje po uruchomieniu środowiska zielonego.

Strategia wdrażania kanarkowego

Strategia wdrażania kanarkowego łączy niektóre elementy wdrażania stopniowego z wdrażaniem niebiesko-zielonym. Nie wprowadzasz przełącznika jednocześnie, ale zamiast tego wdrażasz nową wersję w ograniczonej części środowiska produkcyjnego, a następnie stopniowo przesuwasz cały ruch do nowej wersji. Oprogramowanie jest wdrażane w krokach przyrostowych w ograniczonej liczbie wystąpień lub użytkowników, dopóki nie sprawdzisz, czy działa prawidłowo, a następnie zostanie wdrożone w pozostałej części infrastruktury.

Nazwa pochodzi od praktyki korzystania z kanarków jako systemu wczesnego ostrzegania w kopalniach węgla. We wdrożeniu kanarowym można przeprowadzić zautomatyzowane testowanie i używać monitorowania i analizy, aby uzyskać wczesne ostrzeżenie o wszelkich problemach z nową wersją w podzestawie wystąpień lub użytkowników. W ten sposób nie ma to wpływu na całe środowisko produkcyjne.

Flagi funkcji

Pomysł flagi funkcji to kolejna strategia, która wymaga nieco większej wyrafinowania ze strony deweloperów. Zamiast dwóch oddzielnych wersji tego samego oprogramowania, starej i nowej (prawdopodobnie z nowymi funkcjami), dostarczamy wersję oprogramowania, która zawiera zarówno stare oprogramowanie, jak i nowe zmiany (funkcje itp.). Nowe zmiany są domyślnie uśpione i niewidoczne do momentu aktywowania „flagi funkcji” dla danej zmiany przez jej przełączenie. Ta flaga może przyjmować wiele formularzy, w tym wiersz w pliku konfiguracji, argument wiersza polecenia, specjalną odpowiedź z serwera online, z którą oprogramowanie konsultuje się podczas uruchamiania itd.

Jednym z silnych plusów dla tego podejścia jest łatwość, w której możemy wycofać się, jeśli występuje problem, lub łatwość wolno wprowadzania zmian. Nie musimy wysyłać nowej wersji (wszystkich jej elementów) do naszych serwerów lub klientów. Wystarczy włączyć lub wyłączyć flagę, aby przeprowadzić uaktualnienie lub je wycofać.

Najlepsze praktyki dotyczące wdrażania

Niezależnie od przyjętej strategii wdrażania, istnieją pewne najlepsze rozwiązania, które ułatwiają zminimalizowanie ryzyka podczas wprowadzania nowego oprogramowania lub nowej wersji istniejącego oprogramowania:

  • Użyj odpowiednich narzędzi, takich jak usługa Azure Pipelines, aby utworzyć potok ciągłej integracji i wdrażania.

  • Zintegruj testowanie zautomatyzowane.

  • Użyj kanałów komunikacyjnych, aby powiadomić właściwe strony o wynikach badania; oznacza to, że zespoły alertów, jeśli wdrożenia kończą się niepowodzeniem, napotykają problemy itd.

  • Monitoruj pod kątem występowania problemów bezpośrednio po wdrożeniu.

  • Plan wycofywania, jeśli nowe wdrożenie wersji nie przejdzie kontroli kondycji lub działa prawidłowo.

Sprawdź swoją wiedzę

1.

Strategia wdrażania obejmująca zduplikowanie środowiska produkcyjnego, uaktualnienie tego środowiska, a następnie pełne przełączenia na duplikat środowiska to:

2.

Strategia wdrażania, która obejmuje wprowadzenie uaktualnienia dla podzbioru użytkowników lub części ruchu produkcyjnego, a następnie zwiększanie jego zasięgu w czasie to: