Злая обезьянка повышает аптайм

Системные администраторы сервиса Netflix нашли интересное решение, которое позволило улучшить архитектуру сервиса, и уменьшить влияние технических проблем на конечных пользователей.
В компании был написан и запущен внутренний сервис под названием «Chaos Monkey» (Обезьянка Хаоса (не путать с Хаусом!)), который случайным образом убивает инстансы AWS или процессы на серверах, обслуживающих сервис. Как ни странно, такой подход не вредит, а помогает технарям улучшать качество сервиса и повышать аптайм, убивая несколько обезьян зайцев — системы Netflix проходят круглосуточную проверку на то, что:
- Все узлы системы имеют избыточное дублирование
- Падение одного сервера или процесса не приводит к проблемам в оказании сервиса, даже минорным — например, ошибкам или дебаг-сообщениям на сайте
- Сисадмины точно знают, что происходит при падении каждого из серверов и как это влияет на всю систему
- Сисадмины имеют большой опыт решения проблем с серверами, почти на каждую проблему уже есть задокументированное решение
Этот оригинальный (если не сказать парадоксальный) подход сэкономил огромное количество денег и времени компании. А что об этом думают хабрагуру?
- хитрости
- системное администрирование
Использование инструментов Chaos Engineering для проверки надежности и доступности систем в продакшене

Обзоры
Автор cryptoparty На чтение 7 мин Опубликовано 14.01.2021
Давайте узнаем, как обеспечить надежность своего прода с помощью инструментов Chaos Engineering.
Хаос-инжиниринг – это направление, в которой вы экспериментируете над своей системой или приложением, чтобы выявить их слабые места и отказ производительности.
Таким образом, вы намеренно вызываете некоторые сбои в своей системе, чтобы выявить ее слабые места, чтобы внести исправления и сделать вашу систему и приложение более устойчивыми.
Многие популярные организации, такие как Netflix, LinkedIn и Facebook, занимаются проектированием хаос инструментов, чтобы лучше понять архитектуру своих микросервисов и распределенные системы.
Это помогает находить новые проблемы раньше, чем настоящие жалобы пользователей, и принимать необходимые меры для их исправления.
Таким образом эти организации могут обслуживать миллионы пользователей, повышать производительность и экономить миллионы долларов .
Преимущества Chaos Engineering:
- Контролируйте потери доходов, обнаруживая критические проблемы
- Уменьшение количества отказов системы или приложений
- Лучшее взаимодействие с пользователем с меньшим количеством сбоев и высокой доступностью служб
- Это поможет вам узнать о системе и обрести уверенность.
Насколько вы уверены в надежности своего прода?
Давайте узнаем это с помощью следующих популярных инструментов для хаос тестирования.
Chaos Mesh
Chaos Mesh – это решение для управления хаос тестами, которое вводит ошибки на каждом уровне системы Kubernetes.
Сюда входят поды, сеть, системный ввод-вывод и ядро.
Chaos Mesh может автоматически убивать поды Kubernetes, имитируя задержки.
Он может нарушить обмен данными между подами и имитировать ошибки чтения/записи.
Он может планировать правила для экспериментов и определять их объем.
Эти эксперименты указаны с использованием файлов YAML.
Chaos Mesh имеет панель инструментов для просмотра аналитики экспериментов.
Он работает поверх Kubernetes и поддерживает большую часть облачной платформы.
Это проект с открытым исходным кодом, который недавно был принят как проект песочницы CNCF.
Вы можете добавить Chaos Mesh в свой рабочий процесс DevOps, чтобы создавать устойчивые приложения, используя принципы хаос-инженерии.
Особенности Chaos Mesh:
- Легко разворачивается на кластерах Kubernetes без изменения логики развертывания
- Для развертывания не требуются уникальные зависимости
- Определяет объекты хаоса с помощью CustomResourceDefinitions (CRD)
- Предоставляет панель для отслеживания всех экспериментов
Chaos ToolKit
Chaos ToolKit – это простой инструмент с открытым исходным кодом для автоматизации экспериментов Chaos Engineering.
Вы интегрируете Chaos ToolKit в свою систему с помощью набора драйверов или плагинов, которые он поддерживает AWS, Google Cloud, Slack, Prometheus и т. д.

Особенности Chaos ToolKit:
- Предоставляет декларативный открытый API для создания хаос-экспериментов независимо от поставщика или технологии
- Легко встраивается в пайплайны CICD для автоматизации
- Предоставляет коммерческую и корпоративную поддержку также через ChaosIQ
ChaosKube

Как можно догадаться по названию, это для Kubernetes.
Chaoskube – это инструмент хаос инжиниринга с открытым исходным кодом, который периодически убивает случайные поды в кластере Kubernetes.
Он поможет вам понять, как ваша система отреагирует на отказ пода.
По умолчанию он убивает под в любом пространстве имен каждые 10 минут.
Вы можете фильтровать целевые поды в Chaoskube, используя пространства имен, метки, аннотации и т. д.
Его можно легко установить!
Chaos Monkey
Chaos Monkey – это инструмент, используемый для проверки устойчивости облачных систем путем преднамеренного создания сбоев в этих системах, чтобы понять их реакцию.
Netflix создал его для тестирования отказоустойчивости и возможности восстановления инфраструктуры AWS.
Он был назван Chaos Monkey, потому что он создает разрушения, как дикая вооруженная обезьяна, чтобы проверить ошибки.
Также именно Chaos Monkey положила начало новой инженерной практике Chaos Engineering.
Он был создан по принципу, что лучше тестировать сбои неоднократно, чтобы избежать внезапного серьезного отказа.
Simmy

Simmy – это инструмент хаос инжиниринга для внедрения ошибок, который интегрируется с проектом Polly для .NET.
Он позволяет вам создавать политики внедрения хаоса через Polly, где вы выполняете свой код.
Он предлагает различные политики, такие как политика исключений для внедрения исключений в систему, политика поведения для внедрения любого нового поведения и т. д.
Эти политики предназначены для случайного внедрения поведения.
Pystol

Pystol – это инструмент, который используется для внедрения ошибочных инъекций в облачных средах.
Он наблюдает за событиями в ETCD через операторов Kubernetes.
Когда выполняется действие по внедрению сбоя, операторы создают поды запускают несколько коллекций Ansible.
Таким образом, разработчикам не нужно писать собственные действия для выполнения в кластере.
Pystol предоставляет готовые действия для тестирования системы.
Тем не менее, если разработчик хочет создать новое действие, это можно сделать с помощью GoLang и Python.
Он предоставляет панель непрерывной интеграции, которая дает сводный обзор всех рабочих операций.
Вы можете запустить Pystol локально или развернуть его в контейнере с помощью образа Docker.
Pystol предоставляет два интерфейса: один – это веб-интерфейс, а другой – через интерфейс командной строки.
Очевидно, веб-интерфейс – лучший вариант.
Muxy
Muxy – это прокси для проверки ваших шаблонов отказоустойчивости при сбоях реальных распределенных систем.
Он может вмешиваться в транспортный уровень (уровень 4), сеансовый уровень TCP (уровень 5), уровень протокола HTTP (уровень 7).
Особенности Muxy:
- Модульная и легко расширяемая архитектура
- Имеет официальный Docker образ
- Простота установки, никаких зависимостей.
- Идеально подходит для непрерывного тестирования устойчивости
- Имитирует проблемы с сетевым подключением для распределенной системы и мобильных устройств.
Pumba
Pumba – это инструмент командной строки, который выполняет хаос тестирование для контейнеров Docker.
С помощью Pumba вы намеренно убиваете контейнеры, запускающие приложение, чтобы увидеть, как отреагирует система.
Вы также можете выполнить стресс-тестирование ресурсов контейнера, таких как ЦП, память, файловая система, ввод / вывод и т. д.
Вы также можете запустить Pumba в кластере Kubernetes.
Вы должны использовать DaemonSets для развертывания Pumba на нодах Kubernetes.
Вы можете использовать несколько контейнеров Pumba для выполнения нескольких команд Pumba в одном DaemonSet.
ChaosBlade
ChaosBlade – это инструмент с открытым исходным кодом для внедрения экспериментов в системы от Alibaba.
Он проверяет все сбои, с которыми Alibaba столкнулась за последние десять лет, и применяет передовые методы, чтобы их избежать.
Для проверки отказоустойчивости распределенных систем используются принципы хаос инженерии.
Litmus
Litmus следует принципам облачного хаос инжиниринга.
Миссия инструмента litmus – предоставить полную основу для поиска слабых мест в ваших системах Kubernetes и ваших запущенных приложениях на Kubernetes.
В нем есть оператор хаос и CRD (CustomResourceDefinitions), что обеспечивает возможность plug-and-play.
Особенности Litmus
- Помогает инженерам и разработчикам Site Reliability найти слабые места в системе Kubernetes.
- Предоставляет готовые к использованию общие эксперименты
- Предоставляет Chaos API для управления рабочим процессом
- Litmus SDK поддерживает Go, Python и Ansible для создания ваших собственных экспериментов.
Gremlin

Gremlin помогает инженерам создавать более устойчивое программное обеспечение.
Он предоставляет платформу для безопасного, надежного и простого проведения экспериментов по хаос инженирингу.
Вы можете внедрить хаос сбои на хосты или контейнеры с помощью gremlin независимо от того, где они находятся, будь то общедоступное облако или ваш собственный центр обработки данных.
Steadybit
Steadybit нацелен на упреждающее сокращение времени простоя и обеспечивает видимость системных проблем.
Вы можете запустить этот инструмент локально в своей инфраструктуре или в облаке как услуге (SaaS).
Чтобы использовать Steadybit, вы определяете ситуацию, моделируете эксперименты, выполняете моделируемые эксперименты на производстве и автоматизируете их.
Он запускает интеллектуальные агенты в вашей системе для обнаружения потенциальных проблем и слабых мест.
Он легко интегрируется с несколькими системами.
Заключение
Эти инструменты помогут вам найти несколько неопознанных слабых мест в вашей системе и помогут сделать ее более устойчивой.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий Отменить ответ

Поддержать нас
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (110)
- Книги (27)
- Мануал (2 359)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (831)
- Обход запретов (34)
- Опросы (3)
- Скрипты (116)
- Статьи (360)
- Философия (124)
- Юмор (18)
Наш Telegram

Социальные сети
Поделиться
Anything in here will be replaced on browsers that support the canvas element
- Каковы различные форматы сертификатов? 27.10.2023
Цифровые сертификаты могут использоваться для различных целей. Они могут использоваться для защиты соединений с веб-сайтами, для шифрования сообщений электронной почты или для проверки личности пользователя. Выбор правильного формата сертификата необходим для обеспечения безопасности и сохранности данных. Когда речь идет о различных форматах сертификатов, важно выбрать тот, который соответствует вашим потребностям Выберите формат сертификата, совместимый с […]
Преобразование файла PFX (PKCS #12) в формат PEM (Privacy Enhanced Mail) достаточно просто на Linux и Unix-подобных системах. В этой статье мы рассмотрим, как преобразовать файл сертификата в формате PFX в файл PEM с помощью OpenSSL из командной строки. Что такое файл PFX? PFX (также PKCS#12) – это формат файла, содержащего сертификат(ы) и закрытый(ые) ключ(ы), […]
Одним из основных нововведений, появившихся в Podman, стала возможность запуска контейнеров без прав root. С точки зрения безопасности это было существенным улучшением, поскольку потенциально скомпрометированный контейнер, запущенный от имени root, представляет собой угрозу безопасности для хост-системы. Чтобы добиться аналогичного поведения, последние версии Docker поддерживают запуск демона docker в пользовательском контексте. Почему процессы в контейнерах […]
Small Form Factor Pluggable (SFP) – это компактный приёмопередатчик, который устанавливается в SFP порт коммутатора Ethernet. Модуль используется для присоединения платы сетевого устройства к оптическому волокну или витой паре. Модули SFP заменили устаревшие модули GBIC благодаря своим миниатюрным размерам. Это преимущество в размерах позволяет им эффективно работать в ограниченных сетевых средах, обеспечивая быстрый обмен данными […]
Давайте поговорим о классификации вредоносных программ. Когда антивирусная программа или средство защиты от вредоносного ПО обнаруживает что-то потенциально вредоносное, она использует определенный формат, чтобы помочь вам или другим специалистам понять, с какой именно угрозой вы имеете дело. Формат может выглядеть примерно так: Type:Platform/Family.Variant!Suffixes Это не всегда будет выглядеть именно так, поскольку, как вы помните, не […]
Обезьяна хаоса
Chaos Monkey — это программное обеспечение, разработанное Netflix в 2011 году для проверки устойчивости своей ИТ-инфраструктуры. Цель этого инструмента — вызвать сбои в реальной среде и убедиться, что компьютерная система продолжает функционировать.
Резюме
- 1 Концепция
- 2 различных варианта обезьяньей армии
- 3 Обезьяна Хаоса и Девопы
- 4 Связанные проекты
- 4.1 Инженерия Хаоса
- 4.2 Facebook Storm
- 4.3 Дни хаоса
- 4.4 Инструментарий Хаоса
Концепция
Исторически сложилось так, что при разработке программного обеспечения понятие нефункциональных требований включается в спецификации . В этих требованиях, в частности, упоминается способность программного обеспечения допускать сбои , быть отказоустойчивым, чтобы гарантировать оптимальное качество обслуживания . Часто из-за нехватки времени из-за необходимости быстрой разработки программного обеспечения или из-за отсутствия знаний в данной области группы разработчиков упускали эти темы из виду.
В 2011 году у инженеров Netflix — Юрия Израилевского, ныне директора Облака и инфраструктуры, и Ариэля Цейтлина, нынешнего Директора по облачным решениям, возникла идея изменить парадигму, поместив инструмент в производственную среду, реальная среда, используемая клиентами Netflix, инструмент, который должен был вызвать сбои. Поэтому они предложили перейти от модели, в которой команды создают программное обеспечение в надежде, что сбоев не будет, к модели, в которой они будут уверены, что сбой будет, но вызванным. Поэтому учет устойчивости при разработке программного обеспечения больше не вариант, а обязательство:
«В Netflix культура свободы и ответственности побудила нас не заставлять инженеров разрабатывать свой код определенным образом. Вместо этого мы обнаружили, что можем объединить наши команды вокруг понятия отказоустойчивости инфраструктуры, изолировав проблемы, создаваемые нейтрализацией серверов и доведя их до крайности. Мы создали Chaos Monkey , программу, которая выбирает сервер случайным образом и отключает его в обычное рабочее время. Некоторым это покажется безумием, но мы не можем полагаться на случайное происшествие события, чтобы проверить свое поведение перед лицом самых последствий этого события. Знание того, что это должно было произойти, часто вызывало сильную согласованность между инженерами, чтобы обеспечить избыточность и автоматизацию процессов, чтобы выжить в подобных инцидентах, не затрагивая миллионы пользователей Netflix. Chaos Monkey — один из наших самых эффективных инструментов для улучшения качества наших услуг ».
Концепция Chaos Monkey состоит в том, чтобы регулярно рандомизировать экземпляры в производственной среде и намеренно выводить их из строя. Регулярно «убивая» экземпляры наугад, мы гарантируем, что правильно предвидели возникновение инцидентов этого типа, создавая достаточно избыточную архитектуру, чтобы отказ сервера никоим образом не повлиял на миллионы пользователей. Члены Netflix по всему миру . Название обезьяны Хаоса объясняется в книге Обезьяны Хаоса Антонио Гарсиа Мартинеса:
Представьте себе обезьяну, ворвавшуюся в центр обработки данных , эти «фермы» серверов, на которых размещены все критически важные функции нашего онлайн-бизнеса. Обезьяна наугад рвет кабели, разрушает устройства и переворачивает все, что встречается на его пути. Задача ИТ-менеджеров состоит в том, чтобы спроектировать информационную систему, за которую они отвечают, так, чтобы она могла работать, несмотря на этих обезьян, о которых никто никогда не знает, когда они появятся и что они собираются уничтожить.
Netflix выпустил исходный код этого инструмента в 2012 году .
Различные варианты обезьяньей армии

Netflix обезьянья армия
«Обезьянья армия» (букв. «Армия обезьян») — это набор инструментов, разработанный Netflix для проверки надежности, безопасности или отказоустойчивости ее инфраструктур Amazon Web Services . Его инициировал Грег Орцелл, тогда старший системный инженер Netflix.
Первый инструмент, разработанный Грегом Орзеллом, Netflix , он позволяет случайным образом выбирать экземпляры в производственной среде и намеренно выводить их из строя.
Старший брат обезьяны, Chaos Gorilla, разрушает всю зону доступности Amazon.
На самой вершине иерархической пирамиды Обезьяньей армии Chaos Kong обрушивает целый регион Амазонки, созданный Люком Ковески.
- Обезьяна с задержкой
Вводя задержки в обмен на уровне уровней связи, инструмент, который позволяет проверить устойчивость к потере производительности внешнего компонента, от которого зависит система, до тех пор, пока полное отключение не будет смоделировано: — бесконечной задержкой. , без необходимости просить заинтересованного партнера прекратить его обслуживание.
Инструмент, который обнаруживает все экземпляры, представляющие риски для здоровья — например, перегрузку ЦП — и удаляет их из системы для анализа первопричин или даже устранения.
- Дворник Обезьяна
Инструмент, который списывает все неиспользуемые экземпляры, чтобы избежать чрезмерного потребления, также созданный Грегом Орзеллом.
- Соответствие Обезьяна
Инструмент, который списывает все несоответствующие экземпляры, чтобы позволить системе правильно воссоздать их, Грег Орзелл.
- Обезьяна безопасности
Производный от Conformity Monkey , инструмента, который выводит из эксплуатации все экземпляры, содержащие уязвимости.
Инструмент, который обнаруживает проблемы с локализацией и языком (l10n-i18n) на экземплярах.
Обезьяна Хаоса и Девопс
Цепочка инструментов Devops
В рамках движения DevOps особое внимание уделяется надежности ИТ-систем, что обеспечивает достаточный уровень уверенности, несмотря на частые выпуски. Участвуя в DevOps Toolchain , Chaos Monkeys удовлетворяет потребность в непрерывном тестировании.
Они являются частью модели «Дизайн для сбоев», «разработанной, чтобы противостоять сбоям»: компьютерное приложение должно быть способно противостоять сбоям любого базового программного или аппаратного компонента.
Связанные проекты
Хаос Инжиниринг
Chaos Engineering — это дисциплина экспериментов с распределенной системой с целью создания уверенности в ее способности противостоять турбулентным условиям на производстве.
Это сообщество, построенное на принципах, определенных на сайте Principlesofchaos.org , инициированном Netflix .
Facebook Storm
Чтобы подготовиться к потере центра обработки данных, Facebook регулярно проверяет устойчивость своей инфраструктуры к экстремальным явлениям. Эта программа, известная как проект Storm, имитирует массовые сбои в центрах обработки данных.
Дни хаоса
Вдохновленные AWS GameDays для проверки устойчивости своих приложений, команды добровольцев Voyages-sncf.com приняли участие в Дне хаоса. Каждые тридцать минут операторы моделировали предпроизводственные отказы. Команды получали баллы на основании обнаружений, диагнозов и решений. Этот тип игрового события позволяет командам разработчиков познакомиться с концепцией устойчивости.
Представленная на конференции Devops REX 2017, концепция представлена на сайте http://days-of-chaos.com для сбора других экспериментов.
Инструментарий Хаоса
Chaos Toolkit родилась из желания , чтобы упростить доступ к дисциплине Chaos Engineering и продемонстрировать , что экспериментирование подход может быть сделано на различных уровнях: инфраструктура, платформа , но также приложения. Chaos Toolkit — это инструмент с открытым исходным кодом , под лицензией Apache 2, выпущенный в октябрь 2017 .
Примечания и ссылки
- ↑« Релиз 2.0.2 » , 22 ноября 2016 г. (по состоянию на 19 июля 2018 г. )
- ↑« Netflix обезьяньей армия » на Netflix TechBlog , Netflix технологии блог, 19 июля 2011 г. (по состоянию на 21 октября 2017 г. )
- ↑ Блог Netflix Technology , «Обезьянья армия Netflix » на Netflix TechBlog , 19 июля 2011 г. (по состоянию на 21 октября 2017 г. )
- ↑ Netflix Technology Blog , « Netflix Chaos Monkey Upgraded », на Netflix TechBlog , 19 октября 2016 г. (по состоянию на 21 октября 2017 г. )
- ↑ « Но кто эти обезьяны хаоса?» — 15 маршей », Блог 15 маршей , 25 июля 2017 г. ( читать онлайн , консультация 21 октября 2017 г. )
- ↑ « Netflix выпускает Chaos Monkey в джунглях с открытым исходным кодом — компьютерный мир », LeMondeInformatique , 1 — го августа 2012 ( читать онлайн , консультация 21 октября 2017 г. )
- ↑ a и b SimianArmy: Инструменты для поддержания оптимальной работы вашего облака. Chaos Monkey — это инструмент обеспечения отказоустойчивости, который помогает приложениям выдерживать случайные сбои экземпляров , Netflix, Inc., 20 октября 2017 г. ( читать онлайн )
- ↑ SemiColonWeb , « Инфраструктура: какие методы адаптации к новым облачным архитектурам?» — Блог D2SI », Блог D2SI , 8 декабря 2015 г. ( читать онлайн , консультация 21 октября 2017 г. )
- ↑« Устойчивость к облаку: Netflix полагается на своих обезьян-убийц экземпляров AWS » , на www.ictjournal.ch (по состоянию на 21 октября 2017 г. )
- ↑« Великие шаблоны Интернета — Дизайн на случай неудач» | OCTO Talks! » , На blog.octo.com (по состоянию на 22 октября 2017 г. )
- ↑« Principles of Chaos Engineering », на сайте rulesofchaos.org (по состоянию на 21 октября 2017 г. )
- ^» Le Chaos Engineering by Netflix » , на InfoQ (по состоянию на 22 октября 2017 г. )
- ↑ (in) Роберт Хоф , « Интервью: как проект Facebook предотвращает катастрофы в центрах обработки данных » , Forbes , 11 сентября 2016 г. ( читать онлайн , консультация 21 октября 2017 г. )
- ↑ SemiColonWeb , « GameDay AWS: проверьте устойчивость своих облачных приложений », блог D2SI , 4 июля 2016 г. ( читать онлайн , консультация 21 октября 2017 г. )
- ↑ « DevOps: обратная связь от Voyages-sncf.com — модератора Блог », Блог модератора , 17 марта 2017 г. ( читать онлайн , консультация 21 октября 2017 г. )
- ↑ DevOps REX , « Дни Хаоса: развитие культуры DevOps в Voyages-Sn . », Slideshare , 3 октября 2017 г. ( читать онлайн , консультация 21 октября 2017 г. )
- ↑ Расс Майлз , « Введение и расширение инструментария Хаоса » , на Расса Майлза (Компьютерщик на Харлее) , 6 октября 2017 г. (по состоянию на 23 октября 2017 г. )