Технологии везде. В зависимости от того, насколько высока ставка в вашей отрасли, отказ технического продукта или системы может оказаться в любом месте от совершенно незначительного до конца срока службы, который вам известен.

Больничные мэйнфреймы? Вроде важно. Устойчивость приложения Candy Crush на вашем мобильном телефоне? Вероятно, немного ниже в общем списке приоритетов.

В распределенной системе сетей отказ неизбежен. Предотвращение катастрофы начинается с надежной водонепроницаемой системы безопасности. Но что еще можно сделать помимо этого?

Что такое Netflix Chaos Engineering?

20 сентября 2015 года.

На западном фронте все тихо, когда внезапно несколько важных корпоративных серверов Amazon Web Services выходят из строя без единого слова.

Многие крупные компании не могли обслуживать своих клиентов по несколько часов. Однако Netflix снова встал на ноги в считанные минуты. Как? Внутренняя корпоративная культура Netflix эволюционировала и включает в себя множество методик, «приводящих к сбоям», реализованных в режиме реального времени, чтобы подготовить как системы, так и инженеров к чрезвычайным ситуациям.

instagram viewer

Руководство компании целенаправленно провело моделирование сбоев серверов в отдельных частях системы, чтобы изучить и подготовиться к таким событиям. Это помогло им выявить дыры в системе и создать избыточность, которая позволяла обслуживать бесперебойно, даже в случае серьезной неисправности, подобной упомянутой ранее.

Эти преднамеренные упражнения по «инженерии хаоса» дали их инженерам достаточно конкурентного преимущества, чтобы увидеть себя через фиаско, отчасти благодаря превентивной инфраструктуре, которую они построили с такого рода событием судного дня в уме.

Никто не был готов, когда ударила большая волна. Система Netflix была достаточно сильной, чтобы постоять за себя. Заключение? Эти хаотические вдохновители могут что-то здесь сказать.

Умышленное уничтожение тех, кто любит вас

«Chaos Engineering - это дисциплина экспериментирования с системой, направленная на укрепление уверенности в ее способности противостоять турбулентным условиям производства».

Принципы манифеста хаоса

Это суть хаос-инжиниринга - по сути, «пожарная тренировка», применяемая к системе в рабочее время, когда есть глаза и руки, доступные для решения поставленной задачи. Способность данной системы терпеть отказы подвергается проверке при обнаружении любых уязвимостей.

В исходном контексте 2011 года «инженерия хаоса» касалась ИТ-отдела Netflix. Их руководство хотело проверить, насколько устойчивы усилия команды, когда один или несколько их компьютеров были намеренно отключены. Эти неудачи позволили ИТ-команде выявить ключевые слабые места до того, как они переросли в общесистемные проблемы и могли быть использованы извне.

Настоящая неудача? Это может быть чертовски дорого, и это выходит за рамки денежных последствий. Даже периоды простоя без реального нарушения безопасности, скорее всего, приведут к упущению множества возможностей для получения дохода. Зачем ждать, пока чрезвычайная ситуация ослепит вас?

Обезьяны за безумием

Некоторые компании примут модель «красной команды», которая противопоставляет команды разработчиков их собратьям по подразделениям. Однако классический пример, приведенный Netflix, использует «обезьянью армию». Эти боты делают за них грязную работу справедливо и совершенно наугад.

Безумный? Для непрофессионала, возможно. По словам автора «Обезьян Хаоса» Антонио Гарсиа Мартинеса:

«Представьте обезьяну, входящую в« центр обработки данных », эти« фермы »серверов, на которых размещены все критически важные функции нашей онлайн-деятельности. Обезьяна случайным образом рвет кабели и уничтожает устройства. Задача состоит в том, чтобы спроектировать информационную систему, за которую они несут ответственность, чтобы она могла работать, несмотря на этих обезьян, о которых никто никогда не знает, когда они прибудут и что они уничтожат ».

Красочная аналогия. Однако не все обезьяны жестоки: например, Доктор Обезьяна следит за работой системы. Однако, когда Хаос Конг заходит в гости, все ставки прекращаются; этот персонаж отключит всю зону доступности AWS.

Связанный: Как оцениваются уязвимости системы безопасности?

Хаос-инженерия и научный метод

Техника хаоса служит ценным источником системного понимания для тех, кто проводит эксперименты. Здесь проходят испытания не только разработчики; это система, поскольку она существует автономно.

Прежде чем бросить бочку с обезьянами на стол, инженерия хаоса требует некоторой подготовки.

  1. Сначала вам нужно определить, что вы считаете «устойчивым», здоровым, функциональным состоянием для вашей системы. Это будет «контроль», по которому вы будете оценивать любые ощутимые результаты.
  2. Начните думать о том, как это состояние будет выведено из равновесия из-за вмешательства оркестрованного отказа. Планируйте зондирование вредоносного ПО так, чтобы оно влияло только на ограниченную контролируемую область вашей системы.
  3. Представьте «злоумышленника» и позвольте системе отреагировать.
  4. Наблюдайте и интерпретируйте любые различия между системой в том виде, в каком она существует сейчас, и тем, как она вела себя раньше, находясь в гомеостазе. Увеличивайте свой «радиус взрыва» до тех пор, пока вы не обнаружите уязвимость или не достигнете полной шкалы, в зависимости от того, что наступит раньше.

Идея состоит в том, что чем сложнее разрушить функциональную систему, тем больше у вас будет уверенности в ее устойчивости к изменениям и бомбардировкам. Этот подход показывает, как различные аспекты системы будут компенсировать сбои друг друга в случае сбоя.

«Поскольку ни один компонент не может гарантировать 100% работоспособность (и даже самое дорогое оборудование в конечном итоге выходит из строя), мы должны спроектировать облачную архитектуру, в которой отдельные компоненты могут выйти из строя, не влияя на доступность всего система."

В Netflix Блог

Иногда такая игра с системой даже близко не влияет на качество обслуживания клиентов. В других случаях будут обнаружены серьезные недостатки безопасности. Теперь, особенно в Netflix, непредвиденные обстоятельства, предназначенные для маскировки сбоя системы на уровне пользователя, заложены в основу системы.

Связанный: Что такое эксплойт нулевого дня?

Стоит ли Chaos Engineering?

Если хочешь разобраться в сложной системе - мешай ей

- Фархан Тавар (@fnthawar) 26 мая 2021 г.

Критики скажут, что никакая бэкэнд-игра не стоит того, чтобы влиять на клиентский опыт, даже если это кратковременно и случайно. Однако сторонники хаос-инжиниринга будут опровергать тот факт, что эти «запланированные простои» должны быть намного меньше, чем то, что AWS испытала в 2015 году. Если небольшая запланированная проблема дает вам возможность предотвратить возникновение гораздо более серьезной проблемы, планирование первоначального инцидента может быть лучшим способом подготовиться. Всего пострадает меньшее количество пользователей. Математика работает.

С человеческой точки зрения, мышление таково, что теперь эти инженеры, у которых произошел сбой сервера, и справится с этим компетентно, будет как более бдительным в будущем, так и более интеллектуально подготовленным, чтобы справиться с тем, что приходит их способ. Возникающая в результате более сильная система во многих случаях говорит сама за себя.

Кремниевая долина: где умирают мечты

Они говорят, что если вы хотите добиться успеха, вы должны быть готовы убить своих любимых или, в данном случае, позволить другим убивать их за вас. Когда безопасность находится на переднем крае с самого начала разработки, ваша команда с гораздо большей вероятностью получит что-то непонятное и безопасное для свободного использования клиентами.

Игра на рабочем месте делает перспективу успеха в этой области захватывающей; когда конечным результатом является качество, каждый получает возможность повысить свой уровень. Мой Netflix работает нормально, и мы должны благодарить за это только сумасшедших, стоящих за хаосом.

Теперь, когда вы хорошо разбираетесь в хаосе, почему бы не расширить свои знания с помощью другой методологии разработки программного обеспечения? Agile - отличная система, которую вы можете включить для объединения сотрудников и создания чистого и эффективного кода.

Электронное письмо
Что такое методология гибкого программирования?

Независимо от того, подаете ли вы заявку на вакансию программиста или хотите более эффективный способ работы, вам необходимо знать об Agile.

Читать далее

Похожие темы
  • Программирование
  • Программирование
Об авторе
Эмма Гарофало (Опубликовано 25 статей)

Эмма Гарофало - писатель, в настоящее время проживающая в Питтсбурге, штат Пенсильвания. Когда она не трудится за своим столом в ожидании лучшего завтра, ее обычно можно найти за камерой или на кухне.

Ещё от Emma Garofalo

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.

.