Хаос-инжиниринг - это весело. На самом деле это ложь, но ниже приведена подборка инструментов и геймификаций которая должна исправить это, при тестированни работы приложений на отказ в кластере Kubernetes. Начиная от простых планировщиков которые будут убивать случайные поды по расписанию вплоть до полноценных игр, где враги - это поды.
▫️ChaosKube - периодически убивает случайные поды;
▫️KubeThanos - убивает половину случайно выбранных подов;
▫️KubeInvaders - похоже на Space Invaders, но инопланетяне - это поды или ноды;
▫️Lens extension Invaders - это расширение для Lens которое добавляет в него KubeInvaders, но убиваем только поды;
▫️KubeDoom - убивайте поды Kubernetes, играя в DOOM;
▫️KubeCraftAdmin - в Minecraft убивайте животных в загонах (неймспейсах), где свинья - pod, корва - deployment, курица - svc, лошадь - rs
▫️Whack-a-pod - игра, цель которой нарушить работоспособность сервиса, бейте молотком по вылезающим из нор кротов (поды) и попробуйте нарушить работу приложения
▫️Kube-Chaos - игра в стиле Twin Stick Shooter для убийства подов
#chaos #chaos_engineering #fun
▫️ChaosKube - периодически убивает случайные поды;
▫️KubeThanos - убивает половину случайно выбранных подов;
▫️KubeInvaders - похоже на Space Invaders, но инопланетяне - это поды или ноды;
▫️Lens extension Invaders - это расширение для Lens которое добавляет в него KubeInvaders, но убиваем только поды;
▫️KubeDoom - убивайте поды Kubernetes, играя в DOOM;
▫️KubeCraftAdmin - в Minecraft убивайте животных в загонах (неймспейсах), где свинья - pod, корва - deployment, курица - svc, лошадь - rs
▫️Whack-a-pod - игра, цель которой нарушить работоспособность сервиса, бейте молотком по вылезающим из нор кротов (поды) и попробуйте нарушить работу приложения
▫️Kube-Chaos - игра в стиле Twin Stick Shooter для убийства подов
#chaos #chaos_engineering #fun
👍3
Chaos Mesh - это облачная платформа Chaos Engineering, которая организует хаос в средах Kubernetes, вносит хаос в приложения и инфраструктуру Kubernetes управляемым способом, который предоставляет простые настраиваемые определения для экспериментов с хаосом и автоматической оркестровки.
Состоит из компонентов:
🔹Chaos Operator: используется для планирования и управления жизненным циклом объектов CRD.
🔹Chaos Dashboard: веб-интерфейс для управления, проектирования и мониторинга экспериментов с хаосом.
Chaos Operator использует CustomResourceDefinition (CRD) для определения объектов хаоса:
▫️pod-kill: выбранный pod уничтожается (потребоваться ReplicaSet или что-то подобное, чтобы обеспечить перезапуск);
▫️pod-failure: выбранный pod будет недоступен в течение указанного периода времени;
▫️container-kill: выбранный контейнер уничтожается в выбранном поде;
▫️netem chaos: сетевой хаос, такой как задержка, дублирование и т.д.;
▫️network-partition: имитация разделения сети;
▫️IO chaos: имитация ошибок файловой системы, таких как задержка ввода-вывода, ошибки чтения/записи и т.д.;
▫️time chaos: выбранному поду будет введено искажение часов;
▫️cpu-burn: имитирует нагрузку на ЦП выбранного пода;
▫️memory-burn: имитирует утилизацию памяти выбранного пода;
▫️kernel chaos: выбранный под будет внедрен с ошибками (slab, bio и т.д);
▫️dns chaos: выбранный под будет содержать ошибки DNS, такие как error, random.
#chaos #chaos_engineering #k8s #kubernetes
https://github.com/chaos-mesh/chaos-mesh
Состоит из компонентов:
🔹Chaos Operator: используется для планирования и управления жизненным циклом объектов CRD.
🔹Chaos Dashboard: веб-интерфейс для управления, проектирования и мониторинга экспериментов с хаосом.
Chaos Operator использует CustomResourceDefinition (CRD) для определения объектов хаоса:
▫️pod-kill: выбранный pod уничтожается (потребоваться ReplicaSet или что-то подобное, чтобы обеспечить перезапуск);
▫️pod-failure: выбранный pod будет недоступен в течение указанного периода времени;
▫️container-kill: выбранный контейнер уничтожается в выбранном поде;
▫️netem chaos: сетевой хаос, такой как задержка, дублирование и т.д.;
▫️network-partition: имитация разделения сети;
▫️IO chaos: имитация ошибок файловой системы, таких как задержка ввода-вывода, ошибки чтения/записи и т.д.;
▫️time chaos: выбранному поду будет введено искажение часов;
▫️cpu-burn: имитирует нагрузку на ЦП выбранного пода;
▫️memory-burn: имитирует утилизацию памяти выбранного пода;
▫️kernel chaos: выбранный под будет внедрен с ошибками (slab, bio и т.д);
▫️dns chaos: выбранный под будет содержать ошибки DNS, такие как error, random.
#chaos #chaos_engineering #k8s #kubernetes
https://github.com/chaos-mesh/chaos-mesh
GitHub
GitHub - chaos-mesh/chaos-mesh: A Chaos Engineering Platform for Kubernetes.
A Chaos Engineering Platform for Kubernetes. Contribute to chaos-mesh/chaos-mesh development by creating an account on GitHub.
Litmus Chaos — это платформа Chaos Engineering с открытым исходным кодом, которая позволяет командам выявлять слабые места и потенциальные сбои в инфраструктурах путем контролируемого запуска тестов хаоса.
Litmus использует облачный подход для создания, управления и мониторинга хаоса. Сама платформа работает как набор микросервисов и использует пользовательские ресурсы Kubernetes для определения хаоса, а также гипотезы стабильного состояния.
Очень похож на Chaos Mesh, возможно будет немного сложнее в настройке, но тем самым и дает большую гибкость, к примеру в Litmus есть Multi Tenant, GitOps (Event-Driven Chaos Injection) и ChaosHub - портал с различными экспериментами от сообщества, хоть их там не много, но уже что-то.
#chaos #chaos_engineering #k8s #kubernetes
https://github.com/litmuschaos/litmus
Litmus использует облачный подход для создания, управления и мониторинга хаоса. Сама платформа работает как набор микросервисов и использует пользовательские ресурсы Kubernetes для определения хаоса, а также гипотезы стабильного состояния.
Очень похож на Chaos Mesh, возможно будет немного сложнее в настройке, но тем самым и дает большую гибкость, к примеру в Litmus есть Multi Tenant, GitOps (Event-Driven Chaos Injection) и ChaosHub - портал с различными экспериментами от сообщества, хоть их там не много, но уже что-то.
#chaos #chaos_engineering #k8s #kubernetes
https://github.com/litmuschaos/litmus
GitHub
GitHub - litmuschaos/litmus: Litmus helps SREs and developers practice chaos engineering in a Cloud-native way. Chaos experiments…
Litmus helps SREs and developers practice chaos engineering in a Cloud-native way. Chaos experiments are published at the ChaosHub (https://hub.litmuschaos.io). Community notes is at https://hack...
Подборка утилит, на тему эмуляции сети и имитации распространенных сетевых проблем:
▫️netem — стандартная linux утилита, обеспечивает функциональность эмуляции сети для тестирования протоколов путем имитации свойств глобальных сетей. Эмулирует переменную задержку, потерю, дублирование и изменение порядка.
▫️slow — bash обёртка над netem, если кому некогда разбираться в параметрах
▫️dummynet — это инструмент для эмуляции сети в реальном времени, первоначально разработанный для тестирования сетевых протоколов. Он имитирует/применяет ограничения очереди и пропускной способности, задержки, потери пакетов и эффекты многолучевости.
▫️Comcast — это инструмент, предназначенный для имитации распространенных сетевых проблем, таких как задержки, ограничения полосы пропускания и отброшенные/переупорядоченные/поврежденные пакеты.
▫️Toxiproxy — это фреймворк для моделирования сетевых условий. Он создан специально для работы в средах тестирования, непрерывной интеграции и разработки, поддерживая детерминированное вмешательство в соединения, но с поддержкой рандомизированного хаоса и настройки.
▫️Muxy — это прокси-сервер, который взаимодействует с вашей системой и контекстом приложения, работая на уровнях 4, 5 и 7, позволяя вам моделировать распространенные сценарии сбоев с точки зрения тестируемого приложения, например, API или веб-приложение.
▫️Pumba — это инструмент командной строки для тестирования хаоса для контейнеров Docker. Pumba нарушает работу ваших контейнеров, вызывая сбой контейнерного приложения, эмулируя сбои сети и стресс-тестируя ресурсы контейнера.
▫️sitespeed.io - инструмент для тестирования скорости работы веб-приложения, позволяет гибко настраивать лимиты подключения со стороны браузера, на выходе имеем как встроенный дашборд так и метрики prometheus с алертами.
#chaos #chaos_engineering #proxy #testing #network
▫️netem — стандартная linux утилита, обеспечивает функциональность эмуляции сети для тестирования протоколов путем имитации свойств глобальных сетей. Эмулирует переменную задержку, потерю, дублирование и изменение порядка.
▫️slow — bash обёртка над netem, если кому некогда разбираться в параметрах
▫️dummynet — это инструмент для эмуляции сети в реальном времени, первоначально разработанный для тестирования сетевых протоколов. Он имитирует/применяет ограничения очереди и пропускной способности, задержки, потери пакетов и эффекты многолучевости.
▫️Comcast — это инструмент, предназначенный для имитации распространенных сетевых проблем, таких как задержки, ограничения полосы пропускания и отброшенные/переупорядоченные/поврежденные пакеты.
▫️Toxiproxy — это фреймворк для моделирования сетевых условий. Он создан специально для работы в средах тестирования, непрерывной интеграции и разработки, поддерживая детерминированное вмешательство в соединения, но с поддержкой рандомизированного хаоса и настройки.
▫️Muxy — это прокси-сервер, который взаимодействует с вашей системой и контекстом приложения, работая на уровнях 4, 5 и 7, позволяя вам моделировать распространенные сценарии сбоев с точки зрения тестируемого приложения, например, API или веб-приложение.
▫️Pumba — это инструмент командной строки для тестирования хаоса для контейнеров Docker. Pumba нарушает работу ваших контейнеров, вызывая сбой контейнерного приложения, эмулируя сбои сети и стресс-тестируя ресурсы контейнера.
▫️sitespeed.io - инструмент для тестирования скорости работы веб-приложения, позволяет гибко настраивать лимиты подключения со стороны браузера, на выходе имеем как встроенный дашборд так и метрики prometheus с алертами.
#chaos #chaos_engineering #proxy #testing #network
👍3