Strategie wdrażania
- 4 min
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 wprowadzana stopniowo przez pewien czas, zwiększając liczbę przypadków nowego kodu, jednocześnie zmniejszając liczbę przypadków starego. W związku z tym stare i nowe wystąpienia współistnieją w obiekcie docelowym wdrożenia podczas wdrażania. Na przykład można uaktualnić oprogramowanie na jednym serwerze, maszynie wirtualnej lub 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 niebiesko-zielonego wdrażania
Strategia wdrażania niebiesko-zielona korzysta z dwóch oddzielnych środowisk, które są utrzymywane tak podobne, jak to możliwe, i oba są w stanie obsługiwać ruch produkcyjny. Jedno środowisko obsługuje bieżące obciążenie produkcyjne, podczas gdy inne hostuje nową wersję oprogramowania, dzięki czemu można go zweryfikować przed przesunięciem ruchu. Jeśli nowa wersja jest w dobrej kondycji, możesz przełączać ruch jednocześnie lub stopniowo zwiększać udział ruchu przechodzącego do nowego środowiska podczas monitorowania wyników.
Niebieskie środowisko jest tym, które obecnie obsługuje ruch produkcyjny. Zielone środowisko jest jego równoległym odpowiednikiem. Najpierw wdrożysz nową wersję oprogramowania w kolorze zielonym, zweryfikuj go, a następnie kierujesz ruch produkcyjny z niebieskiego na zielony. Po zakończeniu przełączenia role mogą się zmieniać: środowisko zielone staje się środowiskiem produkcyjnym, a środowisko niebieskie może być przygotowane do następnego wydania.
Zaletą tej strategii jest to, że można przełączać się szybko, często z niewielkim lub żadnym przestojem. Stosunkowo łatwo jest również kierować ruch z powrotem do poprzedniego środowiska, jeśli problem występuje po uruchomieniu nowego środowiska.
Strategia wdrażania kanarkowego
Strategia wdrażania kanarkowego łączy niektóre elementy wdrażania stopniowego z wdrażaniem niebiesko-zielonym. Nie dokonujesz zmiany naraz, lecz wdrażasz nową wersję w ograniczonej części środowiska produkcyjnego, a następnie stopniowo przekierowujesz 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 kanarkowym można przeprowadzić zautomatyzowane testowanie oraz używać monitorowania i analityki, aby uzyskać wczesne ostrzeżenie o wszelkich problemach z nową wersją w ograniczonej liczbie instancji lub wśród użytkowników. W ten sposób nie ma to wpływu na całe środowisko produkcyjne.
Flagi funkcjonalności
Pomysł flagi funkcji to kolejna strategia, która wymaga nieco większej wyrafinowania ze strony deweloperów. Zamiast mieć dwie oddzielne wersje tego samego oprogramowania (starego i nowego z nowymi funkcjami), należy dostarczyć jedną wersję zawierającą stare zachowanie oraz nowe zmiany. Nowe zmiany są domyślnie uśpione i nie są widoczne, dopóki odpowiednia flaga funkcji nie zostanie aktywowana. Flaga może przyjmować wiele form, w tym wiersz w pliku konfiguracyjnym, argument w wierszu polecenia lub wartość pobraną z zdalnej usługi konfiguracyjnej i oceniana w czasie wykonywania.
Silną zaletą tego podejścia jest łatwość wycofywania w przypadku wystąpienia problemu i łatwości powolnego wprowadzania zmian. W wielu przypadkach nie musisz dostarczać nowej wersji, aby uwidocznić lub ukryć tę funkcję. Możesz po prostu wyłączyć lub włączyć odpowiednią flagę i zezwolić uruchomionej aplikacji na reagowanie na nowe ustawienie.
W usłudze Azure funkcja zarządzania cechami w ramach Azure App Configuration zapewnia zarządzany magazyn flag funkcji, z którego aplikacje mogą odczytywać podczas działania, z obsługą SDK dla .NET, Java, Python, JavaScript i Go.
Wdrożenia oparte na pierścieniu
Wdrożenie oparte na pierścieniu to ustrukturyzowana forma progresywnego wdrażania powszechnie używana w Microsoft i Azure. Nowy kod jest wypuszczany w sekwencji "pierścieni". Na przykład wewnętrzny lub testowy krąg, krąg wczesnych użytkowników, szeroki krąg wdrożeniowy, a na koniec krąg ogólnej dostępności. Każdy pierścień jest większy niż poprzedni, a wdrożenie przechodzi do następnego pierścienia dopiero wtedy, gdy sygnały zdrowotne z bieżącego pierścienia spełniają określone kryteria. Wdrożenia oparte na pierścieniach łączą stopniowe narażenie wdrożeń typu canary z jawnymi, nazwanymi odbiorcami oraz bramkami zatwierdzania między pierścieniami.
Dostarczanie progresywne
Powyższe strategie (kanarkowe, oparte na pierścieniu i flagi funkcjonalności) są często grupowane w ramach terminu progresywne dostarczanie. Jednoczący pomysł polega na tym, że wydanie jest przedstawione kontrolowanej, rosnącej publiczności, mierzone za pomocą metryk zdrowotnych i biznesowych, i automatycznie rozwijane lub wycofywane w oparciu o te sygnały. Progresywne dostarczanie jest coraz częściej wybieranym modelem domyślnym dla usług w chmurze o wysokiej niezawodności, ponieważ ogranicza zakres wpływu każdej indywidualnej zmiany.
Najlepsze praktyki dotyczące wdrażania
Niezależnie od używanej strategii wdrażania niektóre najlepsze rozwiązania pomagają zminimalizować ryzyko podczas wdrażania nowego oprogramowania lub nowej wersji istniejącego oprogramowania:
Użyj odpowiednich narzędzi, takich jak Azure Pipelines lub GitHub Actions, 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 testów. Na przykład powiadamiaj zespoły, gdy wdrożenia kończą się niepowodzeniem lub napotykają problemy.
Monitoruj pod kątem występowania problemów bezpośrednio po wdrożeniu.
Miej plan wycofania, jeśli nowa wersja nie przejdzie kontroli kondycji lub nie działa prawidłowo.
Sprawdź swoją wiedzę
Opinia
Czy ta strona była pomocna?
Nie
Potrzebujesz pomocy dotyczącej tego tematu?
Chcesz spróbować użyć asystenta Ask Learn, aby wyjaśnić ten temat lub uzyskać instrukcje, które go dotyczą?