Как может выглядеть Chaos Engineering как часть конвейера?

Хаос инженерные практики становятся очень широко используемыми. Одним из распространенных примеров является собственная обезьяна Хаоса от Netflix. Тем не менее, Chaos Monkey часто запускается ad-hoc против случайных целей. Мне любопытно, как эксперименты хаоса могут работать в типичном конвейере CI/CD для повышения устойчивости конкретной службы.

  • Поскольку эксперименты хаоса (обычно) требуют полностью функциональной среды, когда они будут выполняться? Будет ли он работать параллельно с тестированием или в нисходящем направлении?
  • Будете ли вы проводить эксперимент с хаосом с каждым коммитом или только с некоторыми?
  • Как долго позволят эксперименты хаоса? Например, 60-минутный всплеск ЦП может помешать подходу "быстрый отказ".
  • Будет ли эксперимент хаоса когда-нибудь провалиться? Что будет представлять собой "провал"?

2 ответа

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

Существует как минимум три различных класса эксперимента:

  • Экземпляр / контейнер убивает, что мы ожидаем, что базовая инфраструктура будет обрабатывать автоматически.
  • Высокоуровневые, но достаточно локализованные сбои, такие как медленные или недоступные зависимости.
  • Крупномасштабные сбои, такие как дата-центр или регион не работает.

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

Если устойчивость к сбоям является системным требованием, то да, неудачный эксперимент провалит конвейер. Предположим, например, что сборка 392 имеет правильно работающий автоматический выключатель, а сборка 393 - нет. Это было бы ошибкой, поскольку сборка не соответствует требованию.

Обычно у нас есть эксперименты с хаосом, такие как крупномасштабные сбои вне конвейера.

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

Другие вопросы по тегам