Obecnie jest tak wiele strategii wdrażania do wyboru, a wraz z upływem czasu będzie ich coraz więcej. To powiedziawszy, dwie najczęstsze strategie wdrożeniowe aktywnie wykorzystywane przez niektóre z największych obecnie firm to strategie wdrożeniowe Canary i Blue-green.
Porównując wdrożenie Blue-Green i Canary, nie chodzi tylko o szybkość i prostotę; Jednym z najważniejszych czynników, które należy wziąć pod uwagę przy wyborze jednej z tych strategii, są przestoje wdrożeniowe.
Aby zminimalizować przestoje wdrożeniowe i zapewnić płynne przejście podczas wdrażania aktualizacji lub modyfikacji, najważniejsze jest wybranie bardziej odpowiedniej opcji spośród wdrożenia Canary lub Blue-Green.
Przyjrzyjmy się więc temu, co oferuje każda strategia, w tym bezpośredniemu porównaniu wdrożenia Blue-Green i Canary oraz naszym własnym doświadczeniom z wdrożeniem Canary i Blue-Green.
Co to jest wdrożenie niebiesko-zielone i co oferuje?
W strategii wdrażania Blue-Green nowa wersja aplikacji może zostać wdrożona natychmiast po jej przetestowaniu i zatwierdzeniu. Dzieje się tak dzięki dwóm identycznym środowiskom: niebieskiemu i zielonemu, stąd nazwa wdrożenia Blue-Green.
Działa to, ponieważ jedno z tych środowisk jest aktywne, a drugie jest nieaktywne. Oznacza to, że nową wersję aplikacji można wdrożyć w nieaktywnym środowisku (powiedzmy zielonym). Ponieważ te dwa środowiska są całkowicie identyczne pod względem zasobów, infrastruktury i konfiguracji, wszelkie błędy w aktualizacji można usunąć przed jej pełnym wdrożeniem.
Gdy aktualizacja zostanie przetestowana i programiści uznają, że działa, bieżący ruch zostanie przełączony do tego nieaktywnego środowiska. To sprawia, że nieaktywne środowisko (zielone) staje się aktywnym środowiskiem, a poprzednio aktywne środowisko (niebieskie) staje się nieaktywne.
Teraz nieaktywne niebieskie środowisko staje się trybem gotowości i można go używać do testowania nowszych aktualizacji, podczas gdy zielone środowisko jest aktywne i uruchamia nowo wdrożoną aktualizację. W ten sposób praktycznie nie ma przestojów, ponieważ ruch jest natychmiast przełączany do nieaktywnego środowiska.
Ponadto, jeśli podczas aktualizacji wystąpią jakiekolwiek problemy, funkcja przywracania umożliwia powrót do starszej wersji aplikacji. To powiedziawszy, jeśli pojawią się problemy, gdy programiści rozpoczną pracę nad nową aktualizacją w nieaktywnym środowisku, powrót do tego środowiska nie będzie już opłacalny, ponieważ starsza wersja również nie jest już dostępna w tym środowisku.
Chociaż wiele firm i organizacji korzysta z tej strategii, jeden z przykładów tej strategii w działaniu można zobaczyć w Spotify. Ponieważ usługi Spotify muszą być dostępne 24 godziny na dobę, 7 dni w tygodniu, zawsze ma gotowe nieaktywne środowisko zapasowe, gdy zostaną wydane nowe aktualizacje.
Co to jest Canary Deployment i co oferuje?
Główna różnica między wdrożeniem Canary a rozwiązaniem Blue-Green polega na tym, że zamiast dwóch środowisk, w których aktualizacje są wdrażane jednocześnie dla wszystkich użytkowników, w strategii wdrażania Canary aktualizacje są najpierw udostępniane małej grupie użytkowników.
Jeśli aktualizacja powoduje jakiekolwiek problemy, tylko niewielka część użytkowników napotyka je i przekazuje opinie. Po rozwiązaniu problemów aktualizacja jest udostępniana większej części użytkowników, którzy przekazują programistom opinie, jeśli napotkają jakiekolwiek problemy.
Cykl ten jest powtarzany w przypadku coraz większej liczby użytkowników, a wszystkie problemy z aktualizacją są rozwiązywane do czasu udostępnienia aktualizacji dla 100% użytkowników. Na przykład początkowo aktualizacja zostanie udostępniona tylko 2%, następnie 25%, następnie 75%, a na koniec 100% użytkowników.
To stopniowe wydawanie wersji Canary w porównaniu z wersją Blue-Green zapewnia bardziej kontrolowane i elastyczne wdrażanie, umożliwiając programistom testowanie funkcji i aktualizacji w kontrolowanym środowisku, w którym tylko niewielka część napotyka potencjalne problemy.
Wreszcie Canary oferuje również podobną funkcję wycofywania; jednakże, ponieważ wdrażanie odbywa się stopniowo i etapami, wycofywanie zmian w systemie Canary również odbywa się stopniowo i etapami, aż do uzyskania stabilnej wersji.
Dobrze znanym przykładem tej strategii wdrażania jest wykorzystanie przez Netflix Canary w połączeniu z narzędziem o nazwie Chaos Monkey, które celowo powoduje awarie w ich systemie. Jeśli awaria ma wpływ na środowisko Canary, zespół Netflix może przeanalizować reakcję systemu i odpowiednio dostosować. W ten sposób Netflix może sprawdzić, czy aktualizacja pozostaje stabilna i odporna nawet w niesprzyjających warunkach.
Niebiesko-zielone wdrożenie vs. Kanarek
Obie te strategie wdrażania oferują swoje własne, unikalne korzyści; jednak mają one również swoje ograniczenia. Dlatego przed podjęciem decyzji ważne jest rozważenie zalet i wad inwestycji Blue-Green w porównaniu z Canary.
Jeśli nadal nie masz pewności, którą z nich wybrać dalej, po tej sekcji zamieściłem także nasze doświadczenia z tymi dwiema strategiami i to, czego dowiedzieliśmy się na końcu tego artykułu.
Skrócenie przestojów
Jednym z głównych problemów i tematem tego artykułu jest ograniczenie przestojów wdrożeniowych w przypadku wdrożenia Blue-Green w porównaniu z Canary. Jedną z mocnych stron wdrożenia Blue-Green jest jego szybkość, ponieważ możesz natychmiast wdrożyć aktualizację aplikacji lub funkcję, korzystając z dwóch środowisk.
Z drugiej strony podejście Canary do stopniowego wdrażania pozwala na minimalne przestoje, ponieważ problemy doświadczają nie tylko niewielkiej grupy użytkowników, ale ponieważ na każdym etapie przekazywana jest informacja zwrotna, rozwiązywanie problemów można przeprowadzić znacznie szybciej i bez przestojów.
Ponadto, chociaż obie usługi oferują funkcje wycofywania zmian, funkcja wycofywania wdrożeń Blue-Green jest natychmiastowa, zapewniając programistom niezawodną kopię zapasową w przypadku jakichkolwiek poważnych problemów. To powiedziawszy, jak wspomniałem wcześniej, wersja zapasowa nie będzie dostępna, jeśli prace nad nowszą wersją będą prowadzone w nieaktywnym środowisku.
Z funkcji wycofywania zmian w Canary można korzystać wyłącznie stopniowo, tak samo jak w przypadku procesu wdrażania. Jest jednak zawsze dostępna, ponieważ starsza, stabilna wersja nie jest zależna od środowiska, w którym testuje się i pracuje nad nowszymi aktualizacjami.
Jeśli chodzi o redukcję przestojów wdrożeniowych, porównując wdrożenie Canary z rozwiązaniem Blue-Green, Canary ma przewagę pod względem kontroli ryzyka i szczegółowej kontroli; jeśli jednak rozważamy wyłącznie skrócenie przestojów, wówczas niebiesko-zielony jest lepszy z tych dwóch, ponieważ przejście jest natychmiastowe.
To powiedziawszy, debatując nad wdrożeniem Blue-Green a wdrożeniem w Canary, ważne jest również rozważenie czynników innych niż redukcja przestojów.
Typ aplikacji
Ogólnie rzecz biorąc, możemy podzielić aplikacje na aplikacje wymagające dużej liczby transakcji i aplikacje oparte na treści. W zastosowaniach wymagających dużej liczby transakcji wdrożenie Blue-Green jest znacznie lepszą opcją, ponieważ priorytetem jest wysoka dostępność usług i minimalne przestoje, dlatego funkcje natychmiastowego przełączania i natychmiastowego wycofywania rozwiązań Blue-Green stawiają go przed Canary.
Z drugiej strony aplikacje oparte na treści nie zależą od transakcji w czasie rzeczywistym. Ponieważ aplikacje te są zwykle używane w platformach mediów społecznościowych i usługach angażujących użytkowników, Canary jest znacznie lepszą strategią, ponieważ można stopniowo wprowadzać aktualizacje i stale otrzymywać informacje zwrotne na każdym etapie.
Koszty infrastruktury
Kolejnym głównym problemem przy wyborze pomiędzy wdrożeniem Blue-Green a wdrożeniem w Canary są koszty. Naturalnie w przypadku wdrożenia Blue-Green koszty będą wyższe, ponieważ konieczne będzie utrzymanie dwóch oddzielnych środowisk.
Dlatego pojedyncze środowisko produkcyjne Canary jest znacznie bardziej przyjazną kosztowo opcją, co czyni ją bardziej odpowiednią opcją dla mniejszych zespołów lub aplikacji wymagających mniej zasobów.
Skalowalność i długoterminowa konserwacja
Wreszcie, chociaż wdrożenia niebiesko-zielone można skalować, utrzymywanie dwóch kompletnych środowisk dla aplikacji na dużą skalę może wymagać dużych zasobów i być złożone. Z biegiem czasu zarządzanie i utrzymywanie zduplikowanych środowisk może spowodować znaczny wzrost kosztów, szczególnie w przypadku aplikacji o skomplikowanych potrzebach infrastrukturalnych.
To sprawia, że decyzja o wdrożeniu Canary w porównaniu z Blue-Green pod względem skalowalności i konserwacji jest dość łatwa. Dzięki wdrożeniu Canary skalowalność jest często prostsza i bardziej opłacalna, ponieważ nie wymaga duplikatów środowisk.
Zamiast tego skupia się na skalowaniu w obrębie środowiska podstawowego poprzez stopniowe poszerzanie bazy użytkowników narażonych na nowe zmiany. Taka konfiguracja jest znacznie łatwiejsza w zarządzaniu w dłuższej perspektywie, ponieważ zmniejsza złożoność infrastruktury i upraszcza konserwację.
Doświadczenie Cloudzy'ego we wdrażaniu Blue-Green vs. Wdrożenie na Wyspach Kanaryjskich
Świadcząc usługi DevOps klientom, rozumiemy, że zadowolenie klientów, wysoka dostępność i minimalne przestoje mają kluczowe znaczenie dla ich sukcesu biznesowego. W jednym konkretnym przypadku klient zwrócił się do nas z prośbą o pomoc w istotnej modernizacji infrastruktury. Zespół miał za zadanie wybrać pomiędzy wdrożeniem Blue-Green a wdrożeniem Canary dla swojego systemu.
Po długich rozważaniach zdecydowaliśmy się najpierw wypróbować wdrożenie Blue-Green, ponieważ praktycznie nie zapewniało ono żadnych przestojów. Stworzyliśmy identyczne ekologiczne środowisko i przygotowaliśmy się do wdrożenia aktualizacji. Presja była duża, ponieważ po naciśnięciu przycisku cały ruch zostałby przeniesiony do ekologicznego środowiska, a jak wiedzą programiści, niezależnie od tego, jak często będziesz testować te rzeczy, nadal nie wiadomo, jak to wszystko wyjdzie.
Na szczęście wszystko skończyło się dobrze. Przejście poszło gładko jak masło i nie mieliśmy prawie żadnych problemów. Z biegiem czasu, wraz ze wzrostem liczby usług i użytkowników naszego klienta, musieliśmy wdrożyć nowe funkcje, co spowodowało ponowną dyskusję na temat Blue-Green vs. Canary.
Jednak tym razem nie było to zbyt poważnej dyskusji. Były to stosunkowo mniejsze funkcje i na pewno nie na skalę tej aktualizacji infrastruktury. Naturalnie więc zdecydowaliśmy się na Canary, ponieważ mogliśmy udostępnić funkcje niewielkiej części bazy użytkowników naszego klienta i rozwiązać wszelkie problemy, jakie napotkali, na podstawie opinii użytkowników.
To zdecydowanie była słuszna decyzja, ponieważ chociaż nie mieliśmy żadnych większych problemów, zaczęły pojawiać się mniejsze problemy, które zgłosiło 5% użytkowników naszego klienta, dla których wdrożono tę funkcję.
W Cloudzy wierzymy w siłę rozwiązań szytych na miarę. Niezależnie od tego, czy Twoja firma potrzebuje niezawodności wdrożenia Blue-Green, czy elastyczności wdrożenia Canary, nasz zespół DevOps posiada doświadczenie i wiedzę, aby wdrożyć najlepszą strategię dla Twojej infrastruktury. Skontaktuj się z nami Tutaj już dziś, aby dowiedzieć się, jak możemy zoptymalizować proces wdrożenia i zapewnić płynne działanie.
A skoro mowa o VPS, oferujemy jedne z najniższych stawek w branży VPS z funkcjami obejmującymi ponad 12 lokalizacji na całym świecie, dedykowane połączenia internetowe o przepustowości do 10 Gb/s, korporacyjną pamięć masową SSD NVMe, potężne procesory AMD EPYC z turbodoładowaniem 3,23 GHz i czas sprawności na poziomie 99,95%. Sprawdź nasze Ceny VPS-ów aby uzyskać więcej szczegółów.
Ostatnie przemyślenia
Ostatecznie nie można tak naprawdę powiedzieć, że jeden jest lepszy od drugiego w jakikolwiek znaczący sposób, gdy omawiamy wdrożenie na Wyspach Kanaryjskich i wdrożenie Blue-Green. To tylko kwestia przypadków użycia i tego, który z nich najlepiej odpowiada Twoim konkretnym potrzebom.
Często zadawane pytania
Jaka jest główna różnica między wdrożeniami niebiesko-zielonymi i kanarkowymi?
Główna różnica między strategiami wdrażania Blue-Green i Canary polega na sposobie publikowania aktualizacji. Wdrożenie Blue-Green wykorzystuje dwa identyczne środowiska, z aktualizacjami stosowanymi w nieaktywnym, co pozwala na natychmiastowe przejście praktycznie bez przestojów. Z kolei wdrożenie Canary udostępnia aktualizacje stopniowo najpierw małej grupie użytkowników, monitorując problemy, a następnie stopniowo wprowadzając je dla całej bazy użytkowników.
Czy wdrożenie Blue-Green czy Canary jest lepsze pod względem skrócenia przestojów?
Wdrożenie Blue-Green jest ogólnie lepsze pod względem skrócenia przestojów, ponieważ umożliwia natychmiastowe przełączanie między środowiskami. Minimalizuje to potencjalne zakłócenia. Chociaż wdrożenie Canary ma również na celu zminimalizowanie przestojów, robi to poprzez stopniowe wdrażanie, które może wiązać się z drobnymi, zlokalizowanymi problemami wpływającymi tylko na niewielką część użytkowników.
Jakie są koszty wdrożeń niebiesko-zielonych i canary?
Wdrożenia Blue-Green są zazwyczaj droższe, ponieważ wymagają utrzymania dwóch kompletnych środowisk. Z drugiej strony wdrożenia Canary są bardziej opłacalne, ponieważ nie wymagają duplikacji infrastruktury; aktualizacje są wdrażane w środowisku podstawowym, co sprawia, że jest to lepszy wybór dla mniejszych zespołów lub aplikacji wymagających mniej zasobów.