Рубрики
Uncategorized

Три совета по пониманию инженерии хаоса

Инжиниринг Chaos чрезвычайно новый с точки зрения имени и процесса, но это не новое для … Tagged с хаосенгинером, DevOps, SRE, CloudNative.

Chaos Engineering чрезвычайно новичок с точки зрения имени и процесса, но он не является новым для технологий. Инженеры проводили типы тестирования, экспериментов и исследований, которые вы могли бы увидеть в Haos Engineering в течение многих лет. С начала компьютеров было проведено несколько тестов в условиях производства и разработки, но вот ключевое отличие:

Запланирована инженерная инженерия Chaos, и это роль для этих типов тестов.

Типичное тестирование, которое вы увидите в большинстве сред, проведено инженером, работающим над продуктом. Будь они в программном обеспечении, DevOps, облаке, архитектуре и т. Д., Тестирование обычно проводится ими.

Тогда возникает вопрос — зачем нам нужна хаосная инженерия и как мы можем его понять?

В этом сообщении вы узнаете именно это.

Почему Хаос Инжиниринг

Большинство инженеров, если они работали в облаке, DevOps, SRE и Sysadmin, разбудились в середине ночи. Будь то приложение, которое пошло вниз, или сервер, который не мог справиться с нагрузкой, инженер проснулся и должен решить проблему. Для тех, кто прошел через это, вы, вероятно, можете с уверенностью сказать, что это довольно раздражает.

В эти ночи появляются несколько вопросов:

  • Почему это не было проверено на нагрузку?
  • Почему этот сервер такой маленький для этого типа приложения?
  • Что могло это вызвать? Где журналы?
  • Нужно ли это какое -то масштабирование или высокая доступность?

И многие другие вопросы …

На эти вопросы, в том числе сотни других, являются ответчиком инженера по хаосу.

HAOS Engineering — ответить на Что если и Почему вопросы. Это должно убедиться, что все, что бросается в распределенную систему, архитектуру микросервиса, облачную среду и приложение может противостоять воздействию.

Инженеры хаоса используют подход к поиску проблем, как правило, пошаговым образом:

  1. Начните с определения готового государства. Как должна выглядеть окружающая среда и как вы ожидаете, что она выполнит.
  2. Создать гипотезу и провести исследование как для экспериментальной среды тестирования/постановки, так и для производственной среды
  3. Выполните тесты и эксперименты, которые реализуют реальные проблемы. Два идеальных примера: 1) Что, если регион упадет в AWS? 2) Что если кластер Kubernetes уходит вниз?
  4. Возьмите то, что вы узнали из гипотезы/исследований, сравните его с готовым государством с шага 1, и посмотрите, все ли все поступило, как планировалось. Если это не так, вы знаете, что должны итерации. Например, если вы сняли кластер Kubernetes, и он не перешел на другой кластер, вы знаете, что это должно быть реализовано.

Chaos Engineering — это все о тестировании, исследованиях и создании производственной среды максимально стабильной, поэтому никто не получает звонки в 2:00 утра, никакие приложения не понижаются, и пользователи остаются счастливыми.

Эксперименты в производстве и вне его

Иногда вы услышите, как инженеры хаоса или DevOps/SRE -люди, проводя тесты на хаос, где они утверждают, что они просто бросают в производство кучу икот/экспериментов и посмотрите, что произойдет. Они, вероятно, говорят это, потому что это звучит круто, но это не тот фактический способ сделать это (и, скорее всего, не так, как они делают это).

Инжиниринг хаоса, что более важно, тестирование в производстве и вне производства — это все о контролируемых экспериментах. Конечная цель состоит в том, чтобы провести эксперименты по производству, но вы не можете сделать это без тестирования и запуска указанных экспериментов в среде разработчика/тестирования/постановки. В противном случае руководители управления и инженерии никогда не дадут вам возможности реализовать это снова.

Вместо этого подумайте о тестировании хаоса простым, но кратким способом:

Цель состоит в том, чтобы найти отверстия и уязвимости в системе и/или применении

Отверстия и уязвимости бывают разных форм и размеров — сеть не настроена на получение удара по шторму пакета, серверы не будут масштабироваться, если приложение требует больше ресурсов, капсулы Kubernetes не вернется в Интернете, если они ‘ все убито, и многие другие виды отверстий/уязвимостей. Ваша работа состоит в том, чтобы придумать способ найти/остановить как можно больше отверстий/уязвимостей.

Начните в контролируемой среде (тестирование/постановка), и, как только вы чувствуете себя комфортно, пройдите все исследования, и эксперименты проходят, вы можете перейти к производству.

Как экспериментировать

Экспериментирование на приложении или системе не так просто, как запуск теста из вашего Localhost В течение 5 минут, видя, что приложение работает, и говоря да, мы готовы идти. Это гораздо сложнее, чем это. В большинстве сред, есть десятки сотен вещей, которые могут пойти не так. Вы не можете знать их всех, но ваша работа — найти их.

Подумайте об экспериментах для такой системы, как медицинский исследователь. Независимо от того, работают ли они над каким -то вакциной, лечением или контролируемым веществом, их задача — найти какую -то единственную вещь, которая может пойти не так. Почему? Потому что жизнь поставлена на карту.

В технологии ни одна жизнь не поставлена на карту. Тем не менее, средства к существованию людей есть. Если приложение или платформа постоянно снижаются, пользователи перестанут его использовать. Без пользователей организация не зарабатывает деньги. Без денег организация не может держать свои двери открытыми. Без открытых дверей вы не можете получить оплату.

Это работа каждого, с одной стороны, в форме или форме, чтобы помочь этим усилиям в организации, но ваша работа — убедиться, что это не происходит с инженерной точки зрения.

Автоматизированные тесты

Из того, что вы читаете о тестах на хаос, это может звучать как QA (обеспечение качества). Это действительно не следует смотреть так. Это следует рассматривать больше как тип R & D (исследования и разработка), но для технических людей. Из -за этого вы действительно не хотите проводить тестирование хаоса в ручном стиле QA. Вместо этого вы хотите автоматизировать рабочий процесс.

Имейте в виду, что вы не можете автоматизировать то, что вы никогда не делали вручную, потому что не знаете, как это должно работать. Вручную запустить ваши первые тесты хаоса совершенно нормально.

Многие платформы инженеров Chaos имеют графики, которые вы можете настроить для автоматического запуска тестов, и вы также можете сделать это самостоятельно. Если вы найдете платформу, у которой нет графиков, она, скорее всего, имеет какой -то API. В этот момент вы можете написать код автоматизации, чтобы сказать, начать тест в определенное время. Возможно, получите немного эксперимента, поместите его в задание Cron, которая работает на функции Lambda, и автоматически пробегайте тест хаоса! Возможности автоматизации рабочего процесса бесконечны.

Ссылки на платформу хаоса

Если вы заинтересованы в инженерии хаоса, я рекомендую несколько платформ:

  • Гремлин
  • Хаос сетка
  • Хаос обезьяна

Тестирование хаоса — это весело, захватывающее и искренне помогает организации достичь своих целей. Это, безусловно, начинающая карьера, но я считаю, что в ближайшие 1-3 года она взлетит.

Оригинал: «https://dev.to/thenjdevopsguy/three-tips-to-understand-chaos-engineering-1eoc»