Czy istnieją przykłady wdrażania i skutecznego reagowania na „Małpę Chaosu”?


15

Jeff Atwood napisał niedawno wpis na blogu o implementacji przez Netflix „Małpy Chaosu”. Jest to artykuł na bardzo wysokim poziomie. Jestem ciekawy, czy ktoś faktycznie wdrożył tę technikę do testowania systemu.

Chyba naprawdę chcę zapytać: Jakie strategie wdrażasz, aby Twoja architektura mogła przetrwać awarię systemu?


1
A może, jakich strategii używasz do testowania takiej architektury?
rlb.usa

... Cóż, myślę, że czekamy, aż ktoś z zespołu serwisu Netflix przyjdzie i odpowie na to lol
Earlz

Prawdopodobnie rzucę za to nagrodę. Mogą mieć bardzo interesujące anwsers
Robotsushi

1
Uzgodnione ... Ale należy do programistów, a nie SO. Zagłosowano na migrację.

Odpowiedzi:


5

Izolacja i pełna wdzięku degradacja to ogólne strategie. (Innym terminem, który możesz zobaczyć, który jest podobny do izolacji, jest oddzielenie , choć zwykle widzę to w mniejszej skali, na przykład w OOD / P. Koncepcja jest taka sama.)

Izolujesz różne części systemu od siebie, aby jedna z nich nie działała, pozostałe mogły nadal odpowiadać na żądania. Jak powiedział blog Netflix , jeśli wyszukiwanie nie działałoby, streaming byłby w porządku. Oznacza to po prostu, że wyszukiwanie i przesyłanie strumieniowe były na tyle rozdzielone, że wąskie gardło lub obezwładnienie jednego z nich nie wpłynęły na drugie.

Z wdzięczną degradacją, jeśli najlepsza implementacja czegoś nie jest dostępna, musisz wypełnić coś jeszcze. Ponownie z postu Netflix, mają system do oglądania rzeczy, które oglądałeś i lubiłeś, a następnie opracowywania spersonalizowanych rekomendacji innych rzeczy do obejrzenia. Jeśli ten system jest wyłączony, wracają do wyświetlania rekomendacji rzeczy, które są ogólnie popularne. Chodzi o to, aby Plan B, Plan C itp. Zrobił lub pokazał coś, gdy Plan A zawiedzie, zamiast pokazywać nic lub błąd.

Jednym z powszechnych przykładów łagodnej degradacji po stronie klienta (niezależnie od tego, czy implementacja jest powszechna, czy nie), jest użycie javascript na stronach internetowych. Jeśli JavaScript jest wyłączony lub po prostu niedostępny, strony witryny powinny nadal działać bez niego. To może nie być tak szybkie lub zręczne, ale powinno nadal działać, a nie stać się bezużyteczne.

Są to jednak bardzo ogólne pomysły. Prawie każdy projekt wdrażałby je inaczej, w zależności od świadczonych usług i podsystemów oraz zależności między nimi.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.