Въведение в Chaos Mesh, мощен инструмент за инженеринг на хаоса

В наши дни грешките в разпределените изчислителни системи станаха трудни за предвиждане. Трябва да сме проактивни, за да предотвратим проблеми. Подходът „Chaos Engineering“ служи точно на тази цел.

В тази статия ще ви представя „Chaos Mesh“, мощен инструмент за инженеринг на хаоса. Ако не сте запознати с концепцията за хаос, прочетете за нея по-долу или можете да преминете направо към секцията Chaos Mesh.

Концепция за инженеринг на хаоса

Chaos Engineering е модерна концепция за умишлено предизвикване на хаотични, но реалистични ситуации в разпределена среда. Идеята е проектирана за първи път от инженерите на Netflix през 2011 г. Този вид тестване потвърждава, че производствената среда може да толерира неочаквани повреди. Можем да се справим с най-фаталните слабости проактивно, преди производството да бъде засегнато. Той тества устойчивостта на средата срещу повреди в инфраструктурата, мрежата и приложенията.

Например, можем да проверим какво се случва, ако една точка на повреда се срине. Какво ще бъде въздействието върху останалите останали части от системата? Ако идентифицираме проблем, можем да преработим стратегията и да повторим теста, за да гарантираме, че е приложено правилното решение.

Типични тестови случаи за хаос:

  • Симулиране на високо натоварване на процесора и неочаквано увеличение на трафика.
  • Инжектиране на латентност в услугите.
  • Причиняване на прекъсване на мрежата.
  • Неизправности на под.

И много други.

Преглед на Chaos Mesh

Chaos Mesh е инструмент за инженеринг на хаос с отворен код, базиран на облак. Той предоставя удобен уеб интерфейс, където можете да създавате своите експерименти. Като алтернатива можете да ги конструирате направо от потребителския интерфейс или от .yaml files.

Ето пример за експеримент за унищожаване на pod-kill във формат .yaml:

Той поддържа различни видове експерименти за Kubernetes, както и за физически възли. Препоръчвам да преминете към документацията, за да се запознаете с всички тестове.

Имате възможност да провеждате еднократни експерименти, както и планирани.

Инструмент за отстраняване на грешки

Искате ли да видите регистрационни файлове и информация за отстраняване на грешки за вашите експерименти? Chaos Mesh предлага инструмент за команден ред, наречен chaosctl. Обърнете внимание, че в момента той поддържа отстраняване на грешки на сценарии IOChaos, NetworkChaos и StressChaos.

Интеграция с GitHub Actions

Най-добрият начин да гарантирате, че вашите проекти протичат гладко, е да интегрирате проверките във вашия CI/CD тръбопровод. Можете да свържете Chaos Mesh към GitHub Actions. Официалното ръководство съдържа информация за конфигурацията в няколко лесни стъпки.

Поддръжка на Графана

Можете да интегрирате Chaos Mesh към Grafana с помощта на приставката за източник на данни. Това е полезно, когато искате да визуализирате информация за текущите си експерименти. Вижте ръководството за процеса на интеграция.

Демо експеримент на Chaos Mesh

Първо, нека инсталираме Chaos Mesh на Linux, използвайки среда kind.

Ако не използвате kind, моля, проверете ръководството за инсталиране за други опции като minikube, k3s и др.

Изпълнете тази команда в терминал:

curl -sSL https://mirrors.chaos-mesh.org/v2.1.5/install.sh | bash -s -- --local kind

Ще отнеме няколко минути. Проверете инсталацията:

kubectl get po -n chaos-testing

Трябва да видите вашите подове да работят:

В този урок ще създадем експериментите чрез потребителския интерфейс. За достъп до Chaos Dashboard трябва да активирате препращането на портове:

kubectl port-forward -n chaos-testing svc/chaos-dashboard 2333:2333

Сега трябва да имате достъп до него чрез http://localhost:2333 в браузъра.

Ето бърз преглед на таблото за управление:

Ако имате съществуващи експерименти, можете да проверите състоянието в менюто Експерименти:

В тази демонстрация ще създам тест за убиване на pod-kill. Както можете да видите по-долу, много е интуитивно да навигирате през потребителския интерфейс и да настроите своя експеримент:

Това е!

Сега изпълнете тази команда, за да видите състоянието на pods:

kubectl get po -n chaos-testing

Трябва да забележите, че някои от капсулите са пресъздадени (вижте Възраст 35s):

Заключение

В тази статия представих основните характеристики на Chaos Mesh. Научихте как да създавате експерименти от Chaos Dashboard. Вече знаете защо инженерството на хаоса е добра практика.

Надявам се, че сте научили нещо полезно от тази публикация. Благодарим ви, че прочетохте и ще се видим следващия път!