Architektura systemów

Małpa w serwerowni: więcej pożytku niż szkody

Metoda Chaos Monkey pozwala testować skutki awarii w działającym produkcyjnie środowisku. Daje to możliwość zintegrowanego podejścia do budowania odporności systemu jako całości. Pojedyncze awarie nie są wtedy zagrożeniem dla działania całej infrastruktury. 

Sytuacje kryzysowe mogą być trudne do opanowania, szczególnie gdy wywołują je zdarzenia trudne do przewidzenia. Mają z nimi do czynienia również osoby odpowiedzialne za obsługę i utrzymanie działania zasobów informatycznych w firmach. Z drugiej strony jednak awarie systemów informatycznych są chlebem powszednim administratorów i menedżerów IT, zdarzają się stale i zazwyczaj w sposób chaotyczny. Wywołują perturbacje techniczne i biznesowe, powodują trudności w korzystaniu z aplikacji i usług, czasami nawet skutkują przerwami w funkcjonowaniu całych systemów.

Osobom odpowiedzialnym za działanie firmowego środowiska informatycznego sen z powiek spędza pytanie: jak być przygotowanym na wszelkie możliwe scenariusze wydarzeń? Kluczowym wyzwaniem jest ciągłe uczenie się, co w systemie może zawieść, nie zadziałać, gdzie może się pojawić awaria. Trzeba też wiedzieć, jak szybko i sprawnie dokonać naprawy. Jeszcze lepiej – jak nie dopuścić do awarii, jak poradzić sobie z potencjalną usterką, zanim przerodzi się w poważnie zagrożenie i przyniesie katastrofalne skutki oraz zaowocuje realnymi szkodami.

Docelowo chodzi o stworzenie takiego modelu zarządzania zasobami IT, by wyłączenie poszczególnych elementów środowiska informatycznego nie wpływało na funkcjonowanie całego systemu.

Zaburzenia z premedytacją

Tradycyjną metodą przygotowywania się na „najgorsze” jest testowanie różnych, z góry ustalonych scenariuszy sytuacji kryzysowych bądź symulowanie określonych, wcześniej wybranych wydarzeń awaryjnych. Zazwyczaj takie próby odbywają się w wydzielonych, specjalnie przygotowanych środowiskach, by nie zaburzyć działania wykorzystywanych zasobów. Nie pozwala to jednak na sprawdzenie wielu wariantów zaistnienia potencjalnych incydentów.

Pokonaniem tego ograniczenia może być zdanie się na większą dozę nieprzewidywalności i ćwiczenie na działającej infrastrukturze. Służy temu wymyślona w Netflixie koncepcja Chaos Monkey. Jej podstawą jest założenie, że skoro awarie i tak występują, to można je powodować samemu i sprawdzać, co się będzie działo. W ten sposób udaje się lepiej kontrolować niezawodność i odporność systemów informatycznych.

Zadaniem stosowanych w tej metodzie rozwiązań jest losowe wyłączanie systemów w środowisku produkcyjnym. Rolą obsługujących je administratorów jest uważne obserwowanie skutków zaburzeń wprowadzanych do działającego środowiska. Wykorzystywany jest specjalny algorytm, który analizuje działanie systemu, a potem zaburza jego działanie w wybranych miejscach.

Rolą „wirtualnej małpy” w postaci bota jest wywołanie awarii w systemie, a rolą administratorów sprawdzenie faktycznej odporności systemu na tę awarię. Jeżeli system jest rzeczywiście dobrze zabezpieczony, to powinien się przed nią obronić. Jeśli nie, trzeba szukać skuteczniejszych sposobów zapewnienia ciągłości jego działania.

Rolą „wirtualnej małpy” w postaci bota jest wywołanie awarii w systemie a rolą administratorów sprawdzenie faktycznej odporności systemu na tę awarię. Jeżeli system jest rzeczywiście dobrze zabezpieczony, to powinien się przed nią obronić.

Pojedyncza awaria bez znaczenia

Metoda „małpiego chaosu” pozwala symulować sytuacje zbliżone do rzeczywistych – przy losowym wyłączaniu serwerów może się zdarzyć, że jeden system będzie działał nawet tylko kilka minut, a inny kilka dni. Taka sama różnorodność i losowość dotyczy więc również dostępności aplikacji obsługiwanych przez poszczególne maszyny, rzeczywiste czy wirtualne. Na dodatek awarie mogą się zdarzyć w każdym momencie, zarówno w godzinach największego obciążenia serwerów, jak i poza godzinami pracy firmy. To daje możliwość sprawdzania różnorodnych wariantów skutecznego reagowania na sytuacje kryzysowe w obrębie infrastruktury IT.

Jeżeli niedostępność wyłączonego elementu powoduje problemy w korzystaniu z systemu czy aplikacji przez użytkowników, zadaniem pionu IT jest znalezienie takich sposobów zapewnienia ciągłości działania, by następnym razem w podobnej sytuacji problemy już się nie pojawiły. Może to być takie zaprojektowanie systemu i aplikacji, aby na miejsce zniszczonego serwera od razu, automatycznie był wstawiany nowy serwer. Innym sposobem poradzenia sobie z awarią jest przekierowanie obciążeń do wolnych zasobów istniejących w systemie. Gdy z kolei nie wiadomo, co zostało zepsute, trzeba pracować nad stworzeniem efektywniejszych rozwiązań do monitorowania pracy systemu i identyfikacji przyczyn awarii. W konsekwencji prowadzi to do zastosowania lepszych, skuteczniejszych metod zabezpieczeń i ochrony.

Docelowo chodzi o stworzenie takiego modelu zarządzania zasobami IT, by wyłączenie poszczególnych elementów środowiska informatycznego nie wpływało na działanie całego systemu, by mimo niedostępności pojedynczego, obojętnie którego serwera system mógł dalej sprawnie działać.

Metoda „małpiego chaosu” pozwala symulować sytuacje zbliżone do rzeczywistych – przy losowym wyłączaniu serwerów, może być tak, że jeden będzie działał nawet tylko kilka minut a inny kilka dni. Taka sama różnorodność i losowość dotyczy więc również dostępności aplikacji obsługiwanych przez poszczególne maszyny.

Podejście zintegrowane

Losowe wyłączanie konkretnych składników infrastruktury informatycznej ma służyć sprawdzeniu wpływu takich zdarzeń na funkcjonowania całego systemu. Ustawiczne testowanie awaryjnych sytuacji ma pomóc w wypracowaniu lepszych mechanizmów reagowania i przyczynić się do stworzenia skuteczniejszych sposobów ochrony przed skutkami awarii. Celem jest takie przygotowanie systemu, aby awarie pojedynczych elementów nie wpływały na działanie całości i nie zaburzały dostępu do usług czy aplikacji.

Zaletą koncepcji Chaos Monkey jest to, że zmusza do zintegrowanego, holistycznego podejścia w myśleniu o budowie i rozwoju środowiska informatycznego. Myślenie działu IT ukierunkowane jest w takiej sytuacji na tworzenie w sposób kompleksowy całego niezawodnego środowiska IT, a nie na utrzymanie i zapewnienie niezawodności działania poszczególnych maszyn, aplikacji czy rozwiązań. Pozwala to m.in. na budowanie architektury systemu w taki sposób, by w maksymalnie możliwym zakresie wyeliminować pojedyncze miejsca awarii. Pozwala na automatyczne skalowanie funkcjonowania całej infrastruktury IT. W sposób automatyczny może też następować odświeżanie zasobów serwerów wirtualnych.

Zaletą koncepcji Chaos Monkey jest to, że zmusza do zintegrowanego, holistycznego podejścia w myśleniu o budowie i rozwoju środowiska informatycznego. Myślenie działu IT ukierunkowane jest w takiej sytuacji na tworzenia w sposób kompleksowy całego, niezawodnego środowiska IT a nie na utrzymanie i zapewnienie niezawodności działania poszczególnych maszyn, aplikacji czy rozwiązań.

W stadzie siła

Netflix cały czas rozwija koncepcję Chaos Monkey. Została stworzona m.in. „małpia armia” (Simian Army). W jej skład wchodzą boty odgrywające różne role w procesie testowania skutków awarii.

W Polsce do stosowania metody Chaos Monkey przyznaje się Grupa Onet. Używa jej m.in. do ciągłego niszczenia i tworzenia maszyn wirtualnych, by w ten sposób nieustannie testować system IT. Będące częścią Onetu centrum technologiczne DreamLab korzysta z narzędzi Chaos Monkey do testowania niezawodności działania i odporności na awarie swojej chmury obliczeniowej.