Badanie kanaryjskie: co to jest i jak możesz z niego skorzystać?

Opublikowany: 2022-08-20

Możliwe, że jeśli nie jesteś programistą, nigdy nie słyszałeś o testowaniu kanarków. W porządku, jednak prawdopodobnie zastanawiasz się, co to jest i dlaczego nazywa się to testami kanarków?

Termin pochodzi od wyrażenia „kanarek w kopalni węgla”. Widzisz, górnicy przywozili ze sobą kanarka w klatce do kopalni, ponieważ kanarki mają niższą tolerancję na toksyczny gaz.

Dlatego robotnicy wiedzieli, że jeśli kanarek umrze, powinni wydostać się z kopalni. Jeśli chodzi o rozwój oprogramowania, podczas tworzenia nowego oprogramowania celem jest jak najszybsze wykrywanie i rozwiązywanie problemów, zanim staną się one problemem dla użytkowników.

Kanaryjski mem

Co to są testy kanaryjskie?

Testy kanarkowe to metoda wypróbowywania nowych funkcjonalności i możliwości z minimalnym negatywnym wpływem na użytkownika. Ten rodzaj testowania jest zwykle używany z niewielką grupą użytkowników, dla których aplikacja przedstawiana jest z niewielkimi zmianami. W ten sposób większość użytkowników nadal będzie korzystała z aktualnej wersji oprogramowania, podczas gdy wybrana, mniejsza grupa użytkowników będzie korzystała z nieco zaktualizowanej wersji.

Celem tego ćwiczenia jest umożliwienie większości osób korzystających z oprogramowania kontynuowanie pracy z nim bez żadnych problemów, przy jednoczesnym wprowadzaniu zmian tylko dla niewielkiego odsetka użytkowników.

Wszystko to odbywa się przy jednoczesnym zachowaniu zarówno istniejącej, jak i nowej wersji aplikacji. Następnie, jeśli testowanie kanarków nie zwróci żadnych błędów, możesz nadal rozszerzać je na większy odsetek użytkowników.

Czytelnicy też się cieszą : Czym jest szybkie tworzenie aplikacji? 4 Fazy Metodologii RAD – DevriX

Jak wykonać test kanarkowy?

Pierwszym krokiem w teście kanarkowym jest uruchomienie zestawu serwerów zaplecza lub kontenerów w celu uruchomienia nowego kodu. Gdy pojawią się nowi użytkownicy, system równoważenia obciążenia wyśle ​​procent z nich do „klastra kanarkowego”.

Następnie specjaliści DevOps monitorują serwery, aby zidentyfikować potencjalne problemy, takie jak obciążenie obliczeniowe lub wyższe szybkości operacji we/wy. I pamiętaj, że nawet jeśli wystąpią poważne problemy, łatwo jest przywrócić rzeczy do poprzedniego stanu, ponieważ proces ten nie dotyczy wszystkich osób korzystających z oprogramowania.

W przeciwnym razie możesz łatwo zaimplementować i zautomatyzować testowanie kanarków, używając narzędzi takich jak Spinnaker, aby określić liczbę użytkowników korzystających z nowego kodu.

Wspomniany odsetek wynosi zwykle około 5%, a gdy wyznaczony zespół DevOps ustali, że nie ma problemów, może stale zwiększać ten odsetek, dopóki wszyscy nie będą korzystać z nowej wersji kodu aplikacji.

Co więcej, canary testing jest korzystny w sytuacjach, w których środowiska programistyczne lub pomostowe nie są w pełni zgodne ze środowiskiem produkcyjnym. Korzystanie z małej grupy testowej użytkowników może ujawnić wszelkie problemy, które nie zostały wykryte podczas środowisk testowych lub programistycznych.

Czytelnicy również cieszą się: Testy A/B z WordPress: The Definitive Guide – DevriX

Zalety i wady testów kanaryjskich

Zdefiniujmy dobro i zło, jeśli chodzi o testowanie, metodą kanaryjską.

Plusy i minusy testów kanaryjskich

Korzyści z testowania kanaryjskiego

  • Testowanie w świecie rzeczywistym . Testowanie w zamkniętych, wewnętrznych środowiskach jest świetne, jednak możliwość testowania oprogramowania na prawdziwych użytkownikach to krok dalej. Dzięki wdrożeniom canary możesz dokładnie to zrobić – przetestuj swoją aplikację na niewielkiej grupie odbiorców, bez ryzyka wydania zupełnie nowej aplikacji.
  • Lepsze zarządzanie ryzykiem . Stopniowe udostępnianie nowych funkcji i upewnianie się, że działają poprawnie, znacznie zmniejsza wszelkie istotne błędy i całkowity koszt ewentualnych awarii.
    Korzystając z metody testowania kanarków, zasadniczo eliminujesz potrzebę wycofywania głównych aktualizacji lub przepisywania dużych ilości kodu.
  • Bardziej zorientowany na biznes . Potrzebujesz prezentować dane biznesowe menedżerom i osobom zajmującym się marketingiem/sprzedażą? Z kanarkiem możesz bardzo szybko przeglądać wyniki. Na przykład, jeśli chcesz przetestować nową funkcję oprogramowania – możesz wdrożyć nową funkcję dla małej grupy użytkowników, a następnie poczekać, czy funkcja działa dobrze, czy nie. Możesz następnie wykorzystać te dane do zwiększenia zaangażowania Twój produkt.

Wady testów kanaryjskich

  • Problemy z oprogramowaniem . Nadal istnieje nieprzetestowany kod, więc oczywiście wiąże się to z ryzykiem. W przypadku, gdy nawet kilku użytkowników ma poważne problemy z określoną funkcją, najlepiej pominąć testy kanarkowe na rzecz bardziej rygorystycznych testów wewnętrznych.
  • Większe wydatki . Jeśli zamierzasz używać modułu równoważenia obciążenia do partycjonowania użytkowników, będziesz potrzebować dodatkowej infrastruktury i więcej administracji. Oznacza to, że będziesz musiał stworzyć dwa oddzielne środowiska produkcyjne i backendy, aby wykonać test. A więc dwa serwery aplikacji, dwie linie kodu, dwa serwery internetowe i infrastruktura sieciowa do utrzymania.
  • Złe wrażenia użytkownika . Niektórzy użytkownicy mogą nie być zbyt zainteresowani pomysłem wykorzystania ich jako obiektów testowych. Jeśli chcesz być otwarty na to, co się dzieje, możesz poinformować użytkowników, że są wykorzystywani jako „kanarki”, poprzez program „wczesnej adopcji” lub coś podobnego.

Kiedy nie używać testów kanaryjskich?

Testowanie kanarków jest korzystne w wielu przypadkach, jednak nie jest to pewna odpowiedź na wszystko (to 42).

Oto, kiedy zdecydowanie nie powinieneś używać podejścia kanarkowego:

  • W środowiskach, które nie są odpowiednie do ciągłego wdrażania.
  • Gdy mamy do czynienia z krytycznym oprogramowaniem, takim jak systemy podtrzymujące życie lub reaktory jądrowe.
  • Systemy finansowe, w których awaria może mieć znaczny wpływ na gospodarkę.

Gdy nie możesz zdalnie zaktualizować oprogramowania.

Jak przeprowadzić wdrożenie na kanaryjsku?

Teraz przyjrzyjmy się niezbędnym krokom, które musisz podjąć, aby wykonać rozmieszczenie kanarków.

  1. Przygotuj się do wdrożenia na serwerze pomostowym.
  2. Wyklucz węzły kanaryjskie poprzez równoważenie obciążenia.
  3. Wdróż nową wersję w węzłach kanarkowych.
  4. Przetestuj nową wersję za pomocą automatycznych skryptów testowych.
  5. Połącz węzły Canary z ruchem za pomocą równoważenia obciążenia.
  6. Wdróż aktualizację na pozostałych węzłach produkcyjnych.

W praktyce wdrożenie rozpoczyna się od przygotowania serwera pomostowego. Sprawdź pliki konfiguracyjne, skrypty testowe, artefakty kompilacji i tak dalej. Następnie możesz uruchomić testy automatyczne lub ręczne lub pozostawić serwer na żywo i sprawdzić, czy wszystko działa dobrze, czy też się zawiesza.

Kiedy wypchnąć Canary do produkcji?

Po przetestowaniu aktualizacji kanarkowej na 5 lub 10% użytkowników i wszystko działa poprawnie, możesz przystąpić do podwojenia lub potrojenia odsetka użytkowników testowych.

Następnie przetestuj ponownie, zbierz informacje zwrotne z metryk, a gdy już ocenisz, że wszystko działa poprawnie, ponownie możesz przejść do aktualizacji 70% środowiska produkcyjnego.

Na koniec powtórz procedurę testowania, a jeśli wszystko pójdzie dobrze, wdroż nową wersję oprogramowania dla 100% użytkowników i oczywiście kontynuuj monitorowanie.

Firmy, które wdrożyły wdrożenie Canary

Aby pokazać, że wdrożenie kanaryjskie jest popularną metodą wdrażania, przyjrzymy się niektórym firmom, które korzystają z wdrożenia kanaryjskiego.

Netflix

Gigant usług przesyłania strumieniowego korzysta z automatycznej analizy kanarków w Kayenta od 2018 roku. Umożliwia to niezwykle szybkie aktualizacje środowiska produkcyjnego Netflix. Firma twierdzi, że ta metoda wdrażania zwiększyła produktywność programistów, jednocześnie zmniejszając ryzyko wprowadzania zmian w ich środowisku produkcyjnym.

Instagram

Ta platforma mediów społecznościowych jest również od dawna fanem wdrażania kanarków. Ich współzałożyciel i CTO, Mike Krieger, podzielił się tym, że kanaryjskie wydania zapewniają, że błędy nie wyrządzają zbyt dużych szkód i wpływają tylko na niewielką grupę ludzi.

Google

Czy wiesz, że Google Chrome ma specjalną wersję, przeznaczoną dla programistów? Zgadza się, Google Chrome Canary pozwala przetestować nowe interfejsy API platformy internetowej i zobaczyć, jak będzie wyglądała przyszłość przeglądarki, zanim ktokolwiek inny.

Microsoft

Firma Microsoft używa własnych pracowników do testowania wszystkich aktualizacji swoich produktów. Proces trwa od Windows Vista i Microsoft Azure. Aktualizacja systemu Windows 10 została również wykonana przy użyciu kanaryjskich aktualizacji systemów operacyjnych ich pracowników.

Streszczenie

Canary testing to świetny sposób na szybkie wprowadzanie nowych wersji aplikacji w rzeczywistych środowiskach testowych. Nie tylko to, ale pozwala na lepsze zarządzanie ryzykiem i bardziej śledzone dane.

Mimo że testowanie kanarków ma tak wiele zalet, nie zawsze jest to rozwiązanie w każdej sytuacji. Upewnij się, że wykonałeś swoje badania, zanim zaczniesz rozmieszczanie kanarka, w przeciwnym razie może to odbić się na tobie.