Какво е Хаос Маймуна? Обяснено е инженерството на хаоса

Излязъл пионер от залите на Netflix по време на преминаването му от разпространение на DVD към изграждане на разпределени облачни системи за стрийминг на видео, Chaos Monkey въведе инженерен принцип, възприет от организации за разработка на софтуер от всякакви форми и размери: а именно, че чрез умишлено разбиване на системи вие може да се научи да ги прави по-устойчиви.

Според оригиналната публикация в блога на Netflix по темата, публикувана през юли 2011 г. от Юрий Израилевски, тогава директор на облачната и системна инфраструктура, и Ариел Цейтлин, директор на облачните решения в стрийминг компанията, Chaos Monkey е проектиран да произволно деактивира производствени екземпляри на неговата инфраструктура на Amazon Web Services, като по този начин разкрива слабости, които инженерите на Netflix биха могли да отстранят чрез изграждане на по-добри автоматични механизми за възстановяване.

Привличащото се име идва от „идеята да отприщите дива маймуна с оръжие във вашия център за данни (или облачен регион), за да сваляте на случаен принцип случаи и да дъвчете кабели - през цялото време ние продължаваме да обслужваме клиентите си без прекъсване“, публикацията в блога държави.

На практика това ще включва просто приложение, което „избира случайно екземпляр от всеки клъстер и в даден момент по време на работното време го изключва без предупреждение. Щеше да прави това всеки работен ден “, както подробно описват бившите инженери на Netflix Нора Джоунс и Кейси Розентал в обширната си книга по темата, Chaos Engineering , публикувана от O'Reilly Media.

Идеята е, че като научат къде са най-слабите ви места, инженерите могат да зададат автоматизирани тригери за борба с проблем, спестявайки им обаждане посред нощ, ако нещо се обърка. Оттогава Chaos Monkey еволюира в цяла гама принципи на хаоса, под знамето на инженерството на хаоса.

Хаос Маймуна в Netflix

Chaos Monkey е израснал от инженерните усилия на Netflix около 2010 г., когато Грег Орцел - сега работещ в собствеността на Microsoft GitHub - е натоварен с изграждането на устойчивост в новата облачна архитектура на компанията.

„Начинът, по който мисля за Chaos Monkey, не е основен инженерен подвиг“, каза Орцел. „Стойността, която носи, е промяна в мисленето, която беше критична по това време, когато преминахме от доставката на DVD към стрийминг през интернет.“

В ранните дни инженерите на Netflix въведоха цял набор от прекъсвания и проблеми в системите, използвайки „Симианска армия“ от инструменти с отворен код, всеки от които отчита определени видове откази, започвайки с Chaos Monkey, изваждащ AWS клъстери.

Оригиналната армия (сега най-вече оттеглена в полза на нови инструменти) включваше подобни на Latency Monkey, което би предизвикало изкуствено забавяне на комуникационния слой RESTful клиент-сървър и Doctor Monkey, които ще се включат в проверките на състоянието, които се изпълняват на всеки екземпляр , както и монитори за други външни признаци на здраве (напр. натоварване на процесора) за откриване на нездравословни случаи и отстраняването им от работа, ако е необходимо.

Chaos Kong изведе Chaos Monkey на следващото ниво, като симулира прекъсване в цяла зона за достъпност на AWS. „Много рядко AWS регион става недостъпен, но се случва“, се посочва в публикация в блог на Netflix от 2015 г. 

„Редовно провеждайки експерименти, които симулират регионално прекъсване, успяхме да идентифицираме всички системни слабости по-рано и да ги отстраним“, продължава публикацията. „Когато US-EAST-1 всъщност стана недостъпен, нашата система вече беше достатъчно силна, за да се справи с отказа на трафика.“

Както Джоунс и Розентал очертават в книгата си, пускането на Chaos Kong в инфраструктурата е „афера с бяла кокал с„ военна стая “, сглобена за наблюдение на всички аспекти на стрийминг услугата, и продължи с часове.“

Две години по-късно, през юли 2017 г., Netflix представи ChAP, платформата за автоматизация на хаоса, която „разпитва тръбопровода за внедряване на услуга, посочена от потребителя. След това стартира експериментални и контролни клъстери на тази услуга и насочва малко количество трафик към всеки “, се казва в публикацията в блога.

Инженерни принципи на хаоса

Основните практики на Хаос Маймуна бързо се развиха, с все по-големи внедрявания през Хаос Конг, до онова, което по-късно беше официализирано като инженерство на хаоса. Netflix не изгради свой собствен официален инженерен екип за хаос до 2015 г. Този екип бе ръководен от Брус Уонг, сега директор инженеринг в Stitch Fix.

Принципите на инженерството на хаоса са формално съпоставени от някои от оригиналните автори на Хаос Маймуна, определяйки практиката като: „Дисциплината на експериментиране върху система, за да се изгради увереност в способността на системата да издържа на турбулентни условия в производството.“

На практика това е под формата на процес от четири стъпки:

  1. Дефиниране на „стабилно състояние“ на системата, за да се зададе базова линия за нормално поведение.
  2. Предполагаме, че това стабилно състояние ще продължи както в контролната група, така и в експерименталната група.
  3. Въведете променливи, които отразяват реални събития като сървъри, които се сриват, твърди дискове, които функционират неправилно, или мрежови връзки, които са прекъснати.
  4. Опитайте се да опровергаете хипотезата, като потърсите разлика между контролната група и експерименталната група.

Ако стационарното състояние е трудно да се наруши, имате стабилна система; ако има слабост, тогава има какво да отидете и да поправите.

„През петте години от публикуването на„ Принципите “видяхме, че инженерството на хаоса се развива, за да отговори на нови предизвикателства в новите индустрии“, отбелязват Джоунс и Розентал. „Принципите и основите на практиката със сигурност ще продължат да се развиват, тъй като приемането се разширява чрез софтуерната индустрия и навлиза в нови вертикали.“

Хаос инженеринг с Хаос Маймуна

За да стартирате версията на Chaos Monkey с отворен код, вашите системи ще трябва да отговарят на определен набор от предпоставки, както е посочено в GitHub.

Chaos Monkey не се изпълнява като услуга, така че ще трябва да настроите cron работа, както е описано на страницата GitHub, която след това извиква Chaos Monkey веднъж седмично, за да създаде график на прекратяванията.

За да използвате тази версия на Chaos Monkey, трябва да използвате собствената платформа за непрекъсната доставка на Netflix, Spinnaker, която може да ограничи способността на определени организации да възприемат метода. Chaos Monkey също изисква MySQL-съвместима база данни, версия 5.6 или по-нова.

Собствениците на услуги задават своите конфигурации на Chaos Monkey чрез Spinnaker. Chaos Monkey работи чрез Spinnaker, за да получи информация за това как са разположени услугите и прекратява случайно екземпляри - виртуални машини или контейнери - на произволна честота и график, които сте посочили.

Разбира се, внедряването на Chaos Monkey е само началото на трудната и сложна задача за решаване на проблемите на устойчивостта на системата. Chaos Monkey просто разкрива слабостите в системата; след това зависи от екипите на devops или системния инженер, които да идентифицират техните причини и да намерят решения.

„Самият инструмент не е скъп, но инвестицията, която трябва да направите, за да реагирате на инструмента, е“, както казва Orzell. Ангажирането с инженерството на хаоса също изисква пренасочване на ресурси от изграждане на нови функции към повишаване на устойчивостта. „Всеки бизнес е в различна точка от този спектър и всеки трябва да реши колко да набере нагоре или надолу в това пространство“, добавя той.

Джоунс и Розентал казват, че в ранните дни инженерите на Netflix „са получили много отблъсквания по-специално от финансовите институции“.

Въпреки че залозите са по-високи за банките, те все още претърпяват прекъсвания, така че чрез внимателно прилагане на „проактивна стратегия като инженеринг на хаоса, за да се разберат рисковете, за да се предотвратят големи, неконтролирани резултати“, много от тези организации промениха мисленето си, като Capital One рано осиновител, както е описано подробно в книгата.

Инженерни ресурси за хаос

Отново, последната и окончателна книга по темата е Chaos Engineering от бивши инженери на Netflix Нора Джоунс и Кейси Розентал, публикувана през април 2020 г., която надгражда много от работата на тези автори и други, съставена в книгата Chaos Engineering от 2017 г. . За по-практичен преглед вж . Инженерният хаос на ученето на Russ Miles .

Netflix предоставя богат ресурс по темата на GitHub, включително урок, много документация, брояч на грешки, проверка за прекъсване и инструменти за декриптиране.

Gremlin - доставчик на търговски инструменти за провеждане на инженерни експерименти за хаос - предлага собствен обширен набор от ресурси, които са достъпни безплатно онлайн и във формат PDF. Компанията подкрепя и различни усилия на общността, включително Chaos Conf и канал Slack.

O'Reilly също има богат ресурс, включително този удобен плейлист с книги и видеоклипове по темата.