Что такое Chaos Engineering?

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

Чтобы противостоять этому, Netflix впервые применил подход под названием Chaos Engineering .

Chaos Engineering — это дисциплина проведения экспериментов над производственной системой для повышения уверенности в ее способности противостоять турбулентным условиям.

Принципы инженерии хаоса

Установите установившееся состояние системы при нормальных условиях. Общая пропускная способность системы, частота ошибок, процентили задержки и т. Д. Могут быть интересными метриками, отражающими устойчивое поведение. Это установившееся состояние должно сохраняться при любом ненормальном поведении. Степень поддержания устойчивого состояния прямо пропорциональна уверенности в системе.

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

Тщательно разрабатывайте эксперименты, чтобы контролировать эти переменные. Чтобы гарантировать достоверность того, как работает система и насколько она актуальна для развернутой в настоящее время системы, Chaos настоятельно предпочитает экспериментировать непосредственно с производственным трафиком..

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

Поскольку в эксперименте будет использоваться производственный трафик, клиентам, использующим это программное обеспечение, придется иметь дело с необычными задержками и ненормальным поведением. В отличие от Гомера Симпсона, Chaos Engineer несет ответственность и обязан обеспечить минимизацию и сдерживание последствий экспериментов.

Нажмите здесь послушать подкаст, в котором инженеры Netflix Хейли Такер и Аарон Блоховяк обсуждают Chaos Engineering.

Оцените статью
nanomode.ru
Добавить комментарий