Netflix Security Monkey как Chaos Engineering
12 января 2026 г.·234 views

🛠 Netflix Security Monkey как Chaos Engineering

Салют,

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

А год начнем с тобой с Chaos Monkey, вспомнив былое:

Приложение с открытым исходным кодом (детальная дока допом к посту), разработанное компанией Netflix Security, которое намеренно реализует отказ в обслуживании для инстансов в production среде. Имеет высокую требовательность к зрелости процессов внутри компании и к компетенциям администраторов инструмента. Для корректного тестирования сам инструмент и нагружаемые приложения должны администрироваться в Spinnaker - CI/CD платформы, используемой оффициальными разработчиками. Тип лицензии: Apache License 2.0.

Основные фичи

- Имитация отказа в обслуживании инфраструктуры

- Выявление узкого горлышка в архитектуре

- Проверка узлов системы на избыточное дублирование

- Контроль падений каждого из серверов и детализация информации как это влияет на системы

- Принудительные контроли и реализация health-check, включая A/C таймапов

- Имитация нагрузочного тестирования и стресс-тестов , включая проверка нагрузки типов портов 429 и тд.

Принцип работы инструмента

- После реализации отказа в обслуживании конфигурация инструмента осуществляет инвентаризацию инстансов

- Далее, выбираются инстансы доступные для тестирования (определяется с помощью политики / конфигурационных файлов) и собирает список инстансов с которыми разрешено взаимодействия

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

- Когда создает расписание, оно создает другое задание cron для планирования завершений, включая рандомное планирование

Как потрогать?

$ go get github.com/netflix/chaosmonkey/cmd/chaosmonkey

# Поставить Halyard

$ curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/debian/InstallHalyard.sh

$ sudo bash InstallHalyard.sh

$ hal config features edit --chaos true

$ hal config version edit --version $VERSION

# Проверка соединения с Spinnaker

$ chaosmonkey config spinnaker

# С установленным Spinnaker

$ sudo nano /opt/deck/html/settings.js

# Ставим для специального параметра значение True

$ var chaosEnabled = true

# Ручная остановка инстансов с заданными параметрами

$ chaosmonkey terminate [--stack=] [--cluster=] [--leashed]

Итого:

- Инструмент, поддерживает только совместимое со Spinnaker - AWS, Google Compute Engine, Azure, Kubernetes, Cloud Foundry

- Инструмент достаточно старый. Решение вышло еще в 2011 году и способно вырубать один инстанс за раз. С учетом текущих масштабов инфраструктуры есть необходимость проведения chaos сканирования в гораздо большем масштабе. Так, логическое продолжение инструмента - Chaos Kong может проводить проверку отказоустойчивости гораздо большего масштаба, например, отрубая один из регионов AWS. Сам Chaos Kong рассмотрим дальше

#appsec #toolchain #reco #techsolution #paper #specialty

#appsec#toolchain#reco#techsolution#paper#specialty
Открыть в Telegram