Miałem idealny serwer, był tak ładny i solidny, dlatego nazwałem go Petra. Był perfekcyjny pod każdym względem, wszystko było skonfigurowane i dostrojone, miał perfekcyjny 100% serwis i 753 dni nieprzerwanej pracy. Spędziłem dużo czasu i wysiłku, upewniając się, że działa tak dobrze. Żaden inny serwer w firmie nie był tak dobry. Ale ostatniej nocy ten zły potwór rozbił mój serwer bez powodu.
Oczywiście otrzymałem powiadomienie o 2 nad ranem i zajęło mi to do samego rana, aby wszystko uruchomić i wszystko skonfigurować i dostroić, ale obawiam się, że nie będzie tak dobrze jak wcześniej. Może minąć tygodnie, zanim powróci do swojej dawnej świetności. Teraz mój uptime minął, nie mam nawet marnych trzech 9 i kto wie, co to zrobi z moją reputacją. Kim jest ta Małpa Chaosu i dlaczego zrobił to mojemu serwerowi i dlaczego próbuje mnie zniszczyć?
źródło
Odpowiedzi:
TL; DR : Chaos Monkey został opracowany w 2010 roku na Netflix i wypuszczony na wolność w 2012 roku jest częścią armii Simian , niezwykle popularnej wśród oddanych obserwujących . Zbudowana na zasadach inżynierii chaosu armia zwiększa odporność na awarie poprzez wstrzykiwanie ciągłych awarii do systemu.
Pojęcie
Chaos Monkey został opracowany specjalnie dla AWS, gdzie losowo zabija instancje w grupie automatycznego skalowania. Ma on działać w godzinach pracy, kiedy inżynierowie są czujni i mogą szybko reagować na wykryte awarie.
Armia Simian
Członkowie armii sieją chaos innymi sposobami:
Latency Monkey wprowadzi losowe opóźnienia usług.
Chaos Gorilla (Kong) będzie symulować awarię całej strefy dostępności.
Inne małpy są pomocne i usuwają słabych członków stada:
Zgodność Małpa wyłącza przypadki nieprzestrzegania najlepszych praktyk.
Security Monkey szuka znanych luk bezpieczeństwa w konfiguracji i usługach.
Doktor Monkey zamyka niezdrowe przypadki niezgodne z niektórymi parametrami.
Janitor Monkey szuka niewykorzystanych zasobów do odzyskania.
Awaria jest nieunikniona
Awaria w systemie jest nieunikniona, zawsze coś pójdzie nie tak . Możesz nie być w stanie wybrać, ale możesz spróbować wybrać, kiedy. Wprowadzając małe błędy w ciągu dnia, zapewniasz obecność swoich inżynierów. Dzięki szybkiemu zabijaniu usług niezgodnych gwarantujesz, że awarie zdarzają się często przed wdrożeniem. Uczyniając środowisko bardziej przeciwnym, zapewniasz, że to programiści napotkają problemy na długo zanim jakakolwiek usługa trafi do produkcji. Awarie będą szybko widoczne w fazie integracji nowych usług ze starymi, ale jest to w porządku, ponieważ stare usługi produkcyjne są już odporne.
Bydło nie Zwierzęta
Wszyscy powiedzą ci ostatnio: Nie traktuj swoich serwerów jak zwierząt domowych . Liczby mają potęgę i każdy pojedynczy punkt awarii spowoduje uszkodzenie systemu. Bez względu na to, jak dobrze dostroisz i zoptymalizujesz swój serwer, bez względu na to, jak potężny sprzęt możesz uzyskać, ile może obsłużyć, nigdy nie będzie pasował do stada małych skalowalnych instancji. Chaos Monkey zachęca do zastanowienia się nad usunięciem wszystkich punktów awarii, ponieważ wcześniej czy później nadejdzie Małpa! Wszyscy zawodzą, a nawet Amazon S3 miał nieprzewidywalną awarię .
Przeciw kruchości
Więc jaka jest teoria i dlaczego działa? Nassim Nicholas Taleb w swojej książce Antifragile opisuje koncepcję, w której żywe samoświadome systemy skorzystają z niewielkich poziomów losowości i faktycznie staną się lepsze w obliczu przeciwności losu. Jest to podobne do wyżarzania.
Opisuje także sposób ewolucyjny, w którym kruchość części w systemie przechodzi w przeciwdziałanie łamliwości całości . Transfer odbywa się na dwóch poziomach:
Dzięki niewielkim przypadkowym odmianom - programiści dokonujący zmian - najbardziej odpowiednie dla środowiska przetrwają i będą się rozprzestrzeniać - przejść testy i wdrożyć . Standardowy cykl rozwojowy .
W wyniku awarii części, które nie są w stanie wytrzymać większego poziomu losowości w środowisku, pozostałe części, które były w stanie to wytrzymać, składają się na system, który jako całość lepiej radzi sobie ze zmieniającym się środowiskiem niż wcześniej. Zasadniczo jest to Małpa Chaosu .
Większe poziomy losowości można wytrzymać, stosując drugie podejście.
źródło
Niektóre dodatki do twojej odpowiedzi na to pytanie ...
Dodatkowe małpy
Artykuł o „ Jak chaos zwiększa wydajność ” opisuje kilka kolejnych małp, tj .:
Uwaga: Ten sam artykuł wspomina także o „Gorylu Chaosu: symuluje awarię strefy dostępności Amazon”, choć może się tak stać, że zmieniono jego nazwę na „Chaos Kong: symuluje awarię regionu Amazon” ... Mówiąc o Chaos ! Nie znalazłem do tej pory żadnego potwierdzenia / dokumentu, przynajmniej nie wydaje się, aby problem pojawiał się w kolejce problemów . Nieudokumentowana zmiana mogła doprowadzić do produkcji na github ... Gggggggrrrrrreat!
Skonfiguruj i używaj własnych małp.
Udaj się do github, aby skontaktować się z Armią Simian (ten sam link, co pierwszy link we własnej odpowiedzi). Oto cytat tego, co tam znajdziesz:
Możesz nawet skonfigurować monki tak, aby pasowały do twoich potrzeb biznesowych.
Jeśli zagłębisz się wystarczająco głęboko w te linki Github (tj. W link Pomoc ), znajdziesz również link, aby dołączyć do grupy dyskusyjnej SimianArmy Google .
źródło
Ty, Sauron, stworzyłeś ten Jeden serwer, w ciemnościach
Mount Doom,swoje centrum danych w pragnieniu rządzenia wszystkimi aplikacjami.Mam nadzieję, że Drużyna Devops zjednoczyła się, aby powiedzieć wam:
Po długiej walce
Frodothe Chaos Monkey był w stanie stopić Twój One Server i zapewnić swobodę wszystkim aplikacjom, prowadząc Cię na drogę odtwarzalnych serwerów w tym samym czasie.Kredyty:
źródło