Technologia jest wszędzie. W zależności od tego, jak wysoka jest stawka w Twojej branży, awaria produktu lub systemu technologicznego może spaść w dowolnym miejscu od całkowicie nieistotnego do końca życia, jaki znasz.

Komputery szpitalne? Trochę ważne. Odporność aplikacji Candy Crush na Twój telefon komórkowy? Prawdopodobnie nieco niżej na ogólnej liście priorytetów.

W rozproszonym systemie sieci awaria jest nieunikniona. Zapobieganie katastrofom zaczyna się od solidnej, wodoszczelnej konstrukcji zabezpieczającej. Ale co jeszcze można zrobić?

Czym jest inżynieria chaosu Netflix?

20 września 2015 r.

Na froncie zachodnim panuje cisza, gdy nagle kilka ważnych korporacyjnych serwerów Amazon Web Services przestaje działać bez słowa.

Wiele dużych firm nie było w stanie obsłużyć swoich klientów przez kilka godzin. Netflix jednak stanął na nogi w ciągu kilku minut. W jaki sposób? Wewnętrzna kultura firmy Netflix ewoluowała, obejmując wiele praktyk „powodujących awarie” wdrażanych w czasie rzeczywistym w celu przygotowania zarówno systemów, jak i inżynierów na wypadek katastrofy.

instagram viewer

Kierownictwo firmy celowo przeprowadziło symulowane awarie serwerów w określonych częściach systemu, aby przestudiować i przygotować się na takie zdarzenia. Pomogło im to zidentyfikować dziury w systemie i zbudować nadmiarowość, która umożliwiła nieprzerwaną pracę, nawet w przypadku poważnej awarii, takiej jak wspomniana wcześniej.

Te celowe ćwiczenia „inżynierii chaosu” dały ich inżynierom wystarczającą przewagę nad konkurencją, aby mogli zobaczyć siebie przez fiasko, częściowo dzięki infrastrukturze prewencyjnej, którą zbudowali podczas tego rodzaju wydarzenia końca świata na uwadze.

Nikt inny nie był gotowy, gdy uderzyła wielka fala. System Netflix był na tyle silny, że poradził sobie sam. Wniosek? Ci chaotyczni geniusze mogą mieć tutaj coś do czynienia.

Celowe unicestwienie tych, którzy cię kochają

„Inżynieria chaosu to dyscyplina polegająca na eksperymentowaniu na systemie w celu zbudowania zaufania do zdolności systemu do wytrzymania turbulentnych warunków w produkcji”.

Zasady Manifestu Chaosu

To sedno inżynierii chaosu — w istocie jest to „ćwiczenie przeciwpożarowe” nakładane na system w godzinach pracy, kiedy są oczy i ręce dostępne, aby sprostać postawionemu wyzwaniu. Zdolność danego systemu do tolerowania awarii jest wystawiona na próbę, ponieważ ujawniane są wszelkie luki.

W pierwotnym kontekście z 2011 roku inżynieria chaosu dotyczyła działu IT Netflixa. Ich kierownictwo chciało sprawdzić, jak odporne były wysiłki zespołu, gdy jeden lub więcej ich komputerów zostało celowo wyłączonych. Te niepowodzenia pozwoliły zespołowi IT zidentyfikować kluczowe słabości, zanim stały się problemami ogólnosystemowymi i mogły zostać wykorzystane z zewnątrz.

Prawdziwa porażka? To może być kosztowne jak diabli, i to wykracza poza konsekwencje pieniężne. Nawet okresy przestoju, bez rzeczywistej utraty bezpieczeństwa, prawdopodobnie spowodują wiele straconych okazji do uzyskania przychodów. Po co czekać, aż sytuacja awaryjna cię zaskoczy?

Małpy za szaleństwem

Niektóre firmy przyjmą model „czerwonych drużyn”, w którym zespoły programistów będą rywalizować z ich braćmi z różnych działów.. Klasyczny przykład, który podał Netflix, wykorzystuje jednak „Simian Army”. Te boty wykonują za nich brudną robotę uczciwie i całkowicie losowo.

Szalony? Może dla laika. Słowami autora „Małp chaosu” Antonio Garcii Martineza:

„Wyobraźmy sobie małpę wchodzącą do 'centrum danych', tych 'farm' serwerów, które obsługują wszystkie krytyczne funkcje naszych działań online. Małpa losowo rozrywa kable i niszczy urządzenia. Wyzwaniem jest zaprojektowanie systemu informacyjnego, za który są odpowiedzialni, tak aby działał pomimo tych małp, o których nikt nigdy nie wie, kiedy przybędą i co zniszczą”.

Kolorowa analogia. Nie wszyscy Simowie są jednak okrutni: Doctor Monkey monitoruje na przykład wydajność systemu. Kiedy jednak Chaos Kong wpada z wizytą, wszystkie zakłady są wyłączone; ta postać zlikwiduje całą strefę dostępności AWS.

Związane z: Jak oceniane są luki w zabezpieczeniach?

Inżynieria chaosu i metoda naukowa

Inżynieria chaosu służy jako cenne źródło systemowego wglądu dla prowadzących eksperymenty. Testowi poddawani są nie tylko programiści; jest to system, który również istnieje autonomicznie.

Zanim wyrzucisz beczkę małp na stół, inżynieria chaosu wymaga trochę pracy przygotowawczej.

  1. Najpierw musisz określić, co uważasz za „stabilny”, zdrowy, funkcjonalny stan systemu. Będzie to „kontrola”, względem której mierzysz wszelkie namacalne wyniki.
  2. Zacznij myśleć o tym, jak ten stan zostanie wytrącony z równowagi przez wtargnięcie zaaranżowanej porażki. Zaplanuj wykrywanie złośliwego oprogramowania tak, aby wpływało tylko na ograniczony, kontrolowany obszar systemu.
  3. Przedstaw „intruza” i pozwól systemowi zareagować.
  4. Obserwuj i interpretuj wszelkie różnice pomiędzy istniejącym systemem, a tym, jak zachowywał się wcześniej w homeostazie. Zwiększaj swój „promień wybuchu”, aż wykryjesz lukę lub osiągniesz pełną skalę, w zależności od tego, co nastąpi wcześniej.

Chodzi o to, że im trudniej jest zakłócić działanie systemu, tym więcej można mieć pewności co do jego odporności na zmiany i bombardowanie. Takie podejście pokazuje, w jaki sposób różne aspekty systemu będą kompensować wzajemne awarie w przypadku awarii.

„Ponieważ żaden pojedynczy komponent nie gwarantuje 100% czasu pracy bez przestojów (a nawet najdroższy sprzęt w końcu ulega awarii), musimy), zaprojektować architekturę chmury, w której poszczególne komponenty mogą ulec awarii bez wpływu na dostępność całości system."

Netflix Blog

Czasami zabawa z systemem w ten sposób nie zbliża się nawet do wpłynięcia na wrażenia klientów. Innym razem wyjdą na jaw poważne luki w zabezpieczeniach. Teraz, szczególnie w Netflix, sytuacja awaryjna mająca zamaskować awarię systemu na poziomie użytkownika jest wbudowana w fundament tego systemu.

Związane z: Co to jest exploit dnia zerowego?

Czy inżynieria chaosu jest tego warta?

Jeśli chcesz zrozumieć złożony system — przeszkadzaj

— Farhan Thawar (@fnthawar) 26 maja 2021

Krytycy powiedzą, że żadna gra back-endowa nie jest warta wpływania na doświadczenie klienta, nawet jeśli tylko krótko i przypadkowo. Zwolennicy inżynierii chaosu odrzucą jednak fakt, że te „planowane przestoje” mają być znacznie mniejsze niż to, czego doświadczył AWS w 2015 roku. Jeśli drobny, zaplanowany problem pozwala Ci zapobiec wystąpieniu znacznie większego problemu, zaplanowanie początkowego incydentu może być najlepszym sposobem na przygotowanie się. Łącznie dotyczy to mniejszej liczby użytkowników. Matematyka się sprawdza.

Z ludzkiego punktu widzenia mentalność jest taka, że ​​teraz ci inżynierowie, którzy mieli awarię serwera przed sobą i poradzi sobie z tym kompetentnie, będzie zarówno bardziej czujny w przyszłości, jak i bardziej intelektualnie przygotowany do radzenia sobie z tym, co im się przydarzy droga. Silniejszy system, który wynika, w wielu przypadkach mówi sam za siebie.

Dolina Krzemowa: gdzie umierają marzenia

Mówią, że jeśli chcesz odnieść sukces, musisz chcieć zabić swoich ukochanych lub, w tym przypadku, pozwolić innym zabić ich za ciebie. Gdy bezpieczeństwo jest na pierwszym planie od samego początku rozwoju, Twój zespół jest znacznie bardziej skłonny do uzyskania czegoś nieprzenikalnego i bezpiecznego, z którego klienci będą mogli swobodnie korzystać.

Grywalne doświadczenie w miejscu pracy sprawia, że ​​perspektywa sukcesu w tej dziedzinie jest ekscytująca; kiedy rezultatem końcowym jest jakość, wszyscy osiągają wyższy poziom. Mój Netflix działa dobrze, a my możemy za to podziękować tylko szaleńcom stojącym za chaosem.

Teraz, gdy już dobrze znasz inżynierię chaosu, dlaczego nie poszerzyć swojej wiedzy o inną metodologię tworzenia oprogramowania? Agile to doskonały system, który możesz włączyć w celu ujednolicenia siły roboczej i tworzenia czystego, wydajnego kodu.

E-mail
Czym jest metodologia programowania zwinnego?

Niezależnie od tego, czy ubiegasz się o pracę w programowaniu, czy chcesz wydajniejszego sposobu pracy, musisz wiedzieć o Agile.

Czytaj dalej

Powiązane tematy
  • Programowanie
  • Programowanie
O autorze
Emma Garofalo (25 opublikowanych artykułów)

Emma Garofalo jest pisarką mieszkającą obecnie w Pittsburghu w Pensylwanii. Kiedy nie trudzi się przy biurku w poszukiwaniu lepszego jutra, zwykle można ją znaleźć za kamerą lub w kuchni.

Więcej od Emmy Garofalo

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Jeszcze jeden krok…!

Potwierdź swój adres e-mail w e-mailu, który właśnie do Ciebie wysłaliśmy.

.