Технологиите са навсякъде. В зависимост от това колко висок е залогът на вашата индустрия, отказът на даден технологичен продукт или система може да попадне някъде между напълно незначителен до края на живота, както го познавате.
Болнични мейнфреймове? Вид важно. Устойчивостта на приложението Candy Crush на мобилния ви телефон? Вероятно малко по-ниско в общия списък с приоритети.
В разпределена мрежа от мрежи неизправността е неизбежна. Предотвратяването на катастрофа започва със солиден, водонепропусклив дизайн за сигурност. Освен това обаче какво друго може да се направи?
Какво е Netflix Chaos Engineering?
20 септември 2015 г.
Тихо на западния фронт, когато внезапно няколко важни корпоративни сървъра на Amazon Web Services слизат без дума.
Много огромни компании не успяха да осигурят своите клиенти в продължение на няколко часа. Netflix обаче се изправи на крака за броени минути. Как Вътрешната фирмена култура на Netflix се е развила, за да включва много практики за „предизвикване на откази“, прилагани в реално време, за да подготвят както системите, така и инженерите, когато бедствието настъпи.
Ръководството на компанията целенасочено проведе симулирани прекъсвания на сървъра в съдържащите се части на системата, за да проучи и подготви за събития като тези. Това им помогна да идентифицират дупки в системата и да създадат съкращения, които позволяват на услугата да продължи непрекъснато, дори в случай на голяма неизправност като споменатата по-рано.
Тези умишлени упражнения за „инженерство на хаоса“ дадоха на своите инженери достатъчно конкурентно предимство, за да се видят през фиаското, отчасти благодарение на превантивната инфраструктура, която бяха изградили с този вид събитие на Страшния съд се има предвид.
Никой друг не беше готов, когато удари голямата вълна. Системата Netflix беше достатъчно силна, за да се справи сама. Заключение? Тези хаотични ръководители може да се занимават с нещо тук.
Умишлено унищожаване на тези, които те обичат
"Инженерингът на хаоса е дисциплината на експериментиране върху система, за да се изгради увереност в способността на системата да издържа на турбулентни условия в производството."
Принципи на манифеста на хаоса
Това е сърцевината на инженерството на хаоса - по същество, „противопожарна тренировка“, наложена на системата по време на работното време, когато има на разположение очи и ръце за справяне с представеното предизвикателство. Способността на дадена система да толерира отказ е подложена на тест, когато са изложени всякакви уязвимости.
В първоначалния си контекст от 2011 г. инженерингът на хаоса засягаше ИТ отдела на Netflix. Тяхното ръководство искаше да провери колко устойчиви са усилията на екипа, когато един или повече от компютрите им бяха умишлено деактивирани. Тези неуспехи позволиха на ИТ екипа да идентифицира ключови слабости, преди да се превърнат в общосистемни проблеми и да могат да бъдат използвани отвън.
Истински провал? Може да е скъпо по дяволите, и това надхвърля паричните последици. Дори периоди на престой, без истински пропуск в сигурността, вероятно ще доведат до много пропуснати възможности за печелене на приходи. Защо да чакате спешен случай да ви ослепи?
Маймуните зад лудостта
Някои компании ще възприемат модел на "червения екип", който противопоставя екипи от разработчици на братята си по отделни линии. Класическият пример, който Netflix инсталира, обаче използва "Симианска армия". Тези ботове вършат мръсната работа вместо тях честно и напълно произволно.
Ненормален? За лаика, може би. По думите на автора "Хаос маймуни" авторът Антонио Гарсия Мартинес:
„Представете си маймуна, която влиза в„ център за данни “, тези„ ферми “от сървъри, които хостват всички критични функции на нашите онлайн дейности. Маймуната случайно къса кабели и унищожава устройства. Предизвикателството е да се проектира информационната система, за която те отговарят, за да може тя да работи въпреки тези маймуни, които никой никога не знае, когато пристигнат и какво ще унищожат. "
Цветна аналогия. Не всички симианци обаче са жестоки: Доктор Маймуна следи например работата на системата. Когато обаче Хаос Конг се отбие на посещение, всички залози са изключени; този знак ще премахне цяла зона за наличност на AWS.
Свързани: Как се оценяват уязвимостите в сигурността?
Хаос инженеринг и научен метод
Инженерингът на хаоса служи като ценен източник на системно прозрение за провеждащите експерименти. Не само разработчиците са изпитани тук; това е системата, тъй като съществува автономно.
Преди да изхвърлиш барела с маймуни на масата, инженерството на хаоса изисква малко основи.
- Първо трябва да определите това, което смятате за "стабилно", здравословно, функционално състояние на вашата система. Това ще бъде „контролът“, спрямо който измервате всички осезаеми резултати.
- Започнете да мислите за това как това състояние ще бъде компенсирано от нахлуването на дирижирания провал. Планирайте изследването на зловреден софтуер, за да повлияе само на ограничена, контролируема област на вашата система.
- Въведете „натрапника“ и оставете системата да реагира.
- Наблюдавайте и интерпретирайте всякакви разлики между системата, каквато съществува сега и как се е държала преди, докато е била в хомеостаза. Увеличете своя „радиус на взрив“ на въздействие, докато или откриете уязвимост или не достигнете пълен мащаб, което от двете настъпи първо.
Идеята е, че колкото по-трудно е да се наруши дадена функционална система, толкова повече увереност можете да имате в нейната устойчивост на промяна и бомбардиране. Този подход показва как различните аспекти на системата ще компенсират повредите един на друг в случай на прекъсване.
"Тъй като нито един компонент не може да гарантира 100% ъптайм (и дори най-скъпият хардуер в крайна сметка се провали), ние трябва проектирайте облачна архитектура, при която отделните компоненти могат да се провалят, без да се засяга наличността на цялата система."
The Нетфликс Блог
Понякога играта със системата по този начин дори не се доближава до това да повлияе на клиентското изживяване. Друг път ще се разкрият сериозни недостатъци в сигурността. Сега, особено в Netflix, непредвидените обстоятелства, предназначени да прикрият системния отказ на ниво потребител, са вградени в основата на системата.
Свързани: Какво е експлойт с нулев ден?
Заслужава ли си инженерството на хаоса?
Ако искате да разберете сложна система - нарушете я
- Farhan Thawar (@fnthawar) 26 май 2021 г.
Критиците ще кажат, че никоя игра от заден план не си струва да повлияе на опита на клиента, дори и само за кратко и случайно. Привържениците на инженерството на хаоса обаче ще опровергаят факта, че тези "планирани прекъсвания" трябва да бъдат много по-малки от това, което AWS преживя през 2015 г. Ако малък, планиран проблем ви постави в положение да предотвратите излагането на много по-голям проблем, планирането на първоначалния инцидент може да е най-добрият начин за подготовка. Общо ще бъдат засегнати по-малко потребители. Математиката се получава.
От човешкия край на въпроса, манталитетът е, че сега тези инженери, които са имали срив на сървъра пред себе си и компетентно боравенето с него ще бъде както по-бдително в бъдеще, така и по-интелектуално подготвено да се справи с всичко, което им попадне начин. По-силната система, която води до резултат, в много случаи говори сама за себе си.
Силициевата долина: Където мечтите отиват да умрат
Те казват, че ако искате да го направите голям, трябва да сте готови да убиете любимците си или, в този случай, да сте готови да позволите на другите да ги убият вместо вас. Когато сигурността е на преден план от самото начало на разработката, вашият екип е много по-вероятно да се окаже с нещо непроницаемо и безопасно за свободното използване на клиентите.
Играта на работното място прави перспективата за успех в тази област вълнуваща; когато крайният резултат е качествен, всички се качват на ниво. Моят Netflix работи добре и имаме само лудите зад хаоса, за да благодарим за това.
Сега, след като сте разбрали здраво инженерството на хаоса, защо не разширите знанията си с друга методология за разработване на софтуер? Agile е отлична система, която можете да включите, за да обедините работната сила и да създадете чист, ефективен код.
Независимо дали кандидатствате за програмисти или искате по-ефективен начин на работа, ще трябва да знаете за Agile.
Прочетете Напред
- Програмиране
- Програмиране
Ема Гарофало е писател в момента със седалище в Питсбърг, Пенсилвания. Когато не се труди на бюрото си в желанието си за по-добро утре, тя обикновено може да бъде намерена зад камерата или в кухнята.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.