Back to English.
Litmus - это набор инструментов для облачного хаос-инжиниринга. Litmus предоставляет возможность оркестрации хаоса в Kubernetes и упрощает поиск уязвимостей, которые могут возникнуть в процессе деплоя. Разработчики используют Litmus для запуска хаос-экспериментов сначала в стейджинг окружениях, а затем и в продакшене для поиска багов и уязвимостей. Устранение слабых мест системы повышает её стабильность.
Litmus соблюдает облачный подход в создании, поддержке и контроле хаоса. Для оркестрации хаоса используются кастомные ресурсы, так называемые Kubernetes Custom Resource Definitions (CRDs):
- ChaosEngine: Ресурс для связи приложения или ноды Kubernetes с ChaosExperiment. ChaosEngine отслеживается Chaos-Operator, который вызывает ChaosExperiments.
- ChaosExperiment: Ресурс для объединения параметров конфигурации хаос эксперимента. Запросы на изменение ChaosExperiment создаются оператором, когда эксперимент вызывается ChaosEngine.
- ChaosResult: Ресурс для хранения результатов хаотического эксперимента. Chaos-exporter считывает результаты и экспортирует метрики в Prometheus через ServiceMonitor.
Хаос эксперименты находятся на hub.litmuschaos.io. Это централизованный репозиторий, где разработчики приложений или вендоры делятся своими хаос экспериментами, чтобы пользователи могли их применять для улучшения стабильности приложений в продакшн.
- Для разработчиков: Для запуска хаос экспериментов в процессе разработки приложений в дополнение к юнит-тестам или интеграционному тестированию.
- Для CI пайплайнов: Для запуска хаоса в качестве стадии в пайплайне с целью поиска багов в случае падения приложения.
- Для SREs: Для планирования запуска хаос экспериментов в приложении и/или окружении. Это позволяет выявить слабые места системы и повышает её стабильность.
Ознакомьтесь с документацией Litmus Docs для начала работы.
Ознакомьтесь с Документацией для Контрибьюторов в Chaos Hub
Ознакомьтесь со Списком компаний, использующих LitmusChaos
(_ Вы можете отправить PR к вышеуказанной странице, если Вы используете Litmus в своей практике хаос-инжиниринга_)
Моменты требующие особого внимания при работе с Litmus (как фреймворком для хаоса), подробно перечислены ниже. Над многими из них уже ведется работа, как было упомянуто в ROADMAP. Для ознакомления с деталями или ограничениями в конкретных экспериментах обращайтесь к experiments docs.
- Оператор хаоса Litmus и хаос эксперименты запускаются как ресурсы Kubernetes в кластере. Поэтому кастомные ресурсы и изображения должны быть размещены on-prem и доступны для скачивания в момент установки.
- При попытке выполнения хаос экспериментов, специфичных для определнных провайдеров (например, AWS, GCP и др.), подробности запроса передаются посредством секретов Kubernetes. Поддержка других способов управления секретами в Litmus на данный момент в стадии имлементации/тестирования.
- Некоторые хаос эксперименты используют docker api внутри подов с экспериментами, и в связи с этим требуют установки сокета Docker. Рекомендуется соблюдать осторожность при открытии доступа разработчикам /devops администраторам /SRE к запуску этих экспериментов.
- В редких случаях, когда хаос эксперименты используют привилегированные контейнеры, рекомендуемые политики безопасности будут задокументированы.
Litmus находится под Apache License, Version 2.0. Полный текст лицензии по ссылке LICENSE. Некоторые проекты, используемые Litmus, могут находиться под другой лицензией, в таком случае обращайтесь к ней.
Litmus Chaos является частью проектов CNCF.
Комьюнити Litmus проводит встречи каждую третью среду месяца в 22:00 IST.
Ресурсы:
- Slack
- Информационные Встречи
- Расписание и Записи Встреч
- Youtube Канал (демо, записи со встреч, онлайн-собрания)
- Информация о Релизах
CNCF Landscape