Введение в Chaos Engineering
Хаос-инжиниринг - это нарушение работы системы для повышения ее устойчивости. В этой статье мы разберем происхождение, принципы и преимущества этой дисциплины.
С ростом количества микросервисов и распределенной инфраструктуры становится все труднее контролировать отказы систем. Раньше это не было проблемой, потому что инфраструктура размещалась и управлялась локально, а опытные системные администраторы обеспечивали ее стабильную работу.
Теперь, когда системы размещаются в глобально распределенных инфраструктурах, трудно предсказать, какой сбой может произойти в системе.
Что такое Chaos Engineering
Согласно принципам хаоса, Chaos Engineering - это «дисциплина экспериментирования с системой с целью создания уверенности в ее способности противостоять турбулентным условиям в процессе производства».
Разработка Chaos началась в 2010 году, когда инженеры Netflix создали Chaos Monkey в ответ на их переход от физической локальной инфраструктуры к AWS. Когда Netflix перешел на облачную инфраструктуру, они решили разработать Chaos Monkey, чтобы протестировать различные условия сбоя и убедиться, что отказавший компонент на AWS не повлияет на качество потоковой передачи Netflix.
Принципы Хаос-Инжиниринга
Принципы хаос-инжиниринга описывают идеальный пошаговый процесс экспериментирования с отказами в распределенных системах, чтобы укрепить уверенность в их устойчивости и надежности.
Определите, что для вашей системы "нормально"
Первый процесс разработки эксперимента по хаосу для вашей системы - это определение нормального состояния вашей системы.
Было бы полезно, если бы вы определили некоторые ключевые показатели, такие как количество процессов, которые должны быть запущены, и поведение вашей системы, которые будут указывать на то, что ваша система работает нормально.
Постройте гипотезу о нормальном поведении
Поняв нормальное функциональное состояние вашей системы, вы можете сформировать гипотезу о том, как компоненты вашей системы будут вести себя при выходе из строя одного из них. Вы должны учитывать все важные элементы, включая экземпляры, пропускную способность, задержку и производительность ввода-вывода.
Создавайте реальные события
Обрисовать в общих чертах реальные события, которые могут вызвать нарушение нормального поведения вашей системы - такие события, как отказ оборудования, отказ сервера, отказ программного обеспечения, а также любые другие события, которые потенциально могут вызвать простой вашей системы.
Минимизируйте радиус взрыва
Поскольку эксперименты по хаотической инженерии проводятся непосредственно в производственной среде, они могут вызывать неблагоприятные эффекты в реальном времени. Чтобы убедиться, что расследование находится в пределах возможностей устойчивости вашей системы, минимизируйте радиус взрыва, а затем постепенно увеличивайте, пока он не достигнет полного масштаба.
Преимущества Chaos Engineering
Chaos Engineering предлагает множество преимуществ для бизнеса, технических команд и пользователей. Это сокращает время простоя системы и приложений. Chaos Engineering помогает выявить распространенные сбои, которые могут вызвать частые простои системы, тем самым позволяя вам укрепить вашу систему против известных сбоев, которые могут привести к простою. Повышенная отказоустойчивость системы означает, что в системе будет меньше сбоев, что позволит избежать простоев, ведущих к потере дохода.