Różnica pomiędzy canary release i blue/green release

Czyli, czy warto je stosować oddzielnie, czy lepiej razem.

Opis problemu

Rozumiem, że canary release polega na tym, że jest to częściowa wersja podzbioru węzłów produkcyjnych z włączonymi poszczególnymi sesjami. W ten sposób możesz kontrolować i minimalizować liczbę użytkowników / klientów, którzy zostaną dotknięci skutkami błędu.

Rozumiem, że blue/green release polega na tym, że masz 2 lustrzane środowiska produkcyjne („niebieskie” i „zielone”) i wypychasz zmiany do wszystkich węzłów niebieskiego lub zielonego jednocześnie, a następnie używasz magii połączeń sieciowych do kontrolowania do którego środowiska użytkownicy są kierowani przez DNS.

Zakładając, że jestem mniej więcej na dobrej drodze, to kilka pytań na temat dwóch strategii:

  • Czy istnieją scenariusze, w których canary release jest lepszy niż blue/green i odwrotnie?
  • Czy istnieją scenariusze, w których model wdrażania może wdrożyć obie strategie jednocześnie?

Rozwiązanie problemu

Wdrażanie typu blue/green release jest prostsze i szybsze.

Możesz wykonać blue/green release, jeśli przetestowałeś nową wersję w środowisku testowym i jesteś bardzo pewien, że nowa wersja będzie działać poprawnie w środowisku produkcyjnym. Używanie przełączania się pomiędzy wersjami zawsze jest dobrym sposobem na wdrażanie, ponieważ pozwala zwiększyć zaufanie do nowej wersji i pozwala na upewnienie się, że nowa wersja działa jak stara, przy jednoczesnej możliwości przełączenia się na starą wersję. Podział aplikacji na małe, niezależnie wydawane usługi to kolejna ważna kwestia, ponieważ jest mniej do przetestowania i mniej do zepsucia.

Możesz zrobić canary release, jeśli nie masz całkowitej pewności, że nowa wersja będzie działać poprawnie podczas produkcji. Nawet jeśli jesteś dokładnym testerem, Internet jest dużym i złożonym miejscem i zawsze napotyka się nieoczekiwane wyzwania. Nawet jeśli używasz przełączników pomiędzy starą a nową wersją, to jedna może być nieprawidłowo zaimplementowana.

Automatyzacja wdrażania zmian wymaga wysiłku, dlatego większość organizacji będzie planować stosowanie jednej lub drugiej strategii za każdym razem.

Więc zastosuj blue/green release, jeśli angażujesz się w praktyki, które pozwalają ci być pewnym, że dana wersja rzeczywiście działa. W przeciwnym razie zastosuj canary release.

Istotą blue/green release jest wdrażanie naraz, a istotą wdrażania canary release jest wdrażanie przyrostowe, więc biorąc pod uwagę jedną pulę użytkowników, nie mogę wymyślić procesu, który opisałbym jako działający jednocześnie. Jeśli masz wiele niezależnych pul użytkowników, np. korzystając z różnych regionalnych centrów danych, można wykonać blue/green release w obrębie każdej instancji i canary release w centrach danych.