Когда Хаос Инжиниринг начала наградить на получение народы на несколько лет назад в качестве важнейшей практики для обеспечения надежности, она привела к изменению мышления традиционных практикующих программного обеспечения, заставляя их подумать о «смещении права», то есть тестирование в производстве. Хотя это не намеревалось заменить традиционные подходы «сдвигаливающиеся» для тестирования, это было больше о необходимости выяснения поведения приложения среди вариантов, которые могут предложить только среду PROD. И Chaos Engineering, с его научным подходом на основе гипотезы и принципами радиуса доменного взрыва для контроля «степень хаоса», было (есть), как путь к этому. Ведь тестирование в производстве не только о неисправностях. Это помогает раскрыть больше вопросов, чем просто применение плохого поведения — вокруг практики развертывания, механизмы наблюдеемости, инциденты, ответ, практики восстановления и т. Д., Как выросли роль SRE, Engine Engineering также выращивали в качестве интегральной функции. Ускорено ни в одной немальной части из-за таких организаций, как Netflix & Amazon, публично делясь своими историями и технологиями.
Тем не менее, появление облачной нативной парадигмы и постоянно растущее принятие Куберанес привело с ним вызовы повторных архитектурных приложений: для распределения, свободно связаны (читайте: микросервисы) и контейнерные. Он также привел к новым способам борьбы с «оперативными» аспектами, такими как развертывание и обновления, хранение (в случае гостевых компонентов), поддержание га, масштабирования, восстановления и т. Д., Кубернаны, в качестве всеобъемлющей системы оркестрации обеспечивает несколько вариантов и подходы для реализации этих. Все это способствует значительной сложности. И с этим много опасений.
Организации, которые сознательно принимают принципы облачных нативных конструктивных принципов и мигрируют до Кубернаны в качестве платформы развертывания, как правило, сталкиваются с необходимостью проверки различных видов сценариев отказа (включая самих компонентов KUBE ECOSYSTEM) и узнают о своем поведении и практике развертывания приложений. Глубоко, путем гипотезы и повторного эксперимента. И это часто нужно для укрепления доверия до того, как они достигли производства. В последнее время это способствовало вклад в подходу «сдвиг левый» в Хаосе. С более чем больше и больше организаций планируют хаос как часть процесса доставки программного обеспечения. Этим, это означает проверку надежности как практика и конечная цель, и по расширению экспериментов Хаоса, теперь больше не является обязанностью или OPS. Разработчики тоже участвуют (обратите внимание, что это никоим образом не подрывает и не заменить тестирование в продуктах, что все еще является конечной целью CE)
Один из вопросов, который здесь возникает, как он отличается от тестирования с отказом, можно ожидать, что команды QA (или разработчики, носящие QA HA). Различия тонкие, и это зависит от персоны относительно того, как используется инструментарий Chaos. Некоторые видные являются:
С Chaos Engineering, многие акценты размещаются на цели «Что», то есть, целям обслуживания (SLOS) по поводу «как», то есть функциональность приложений.
Ожидается, что хаос будет сделан против имитирующей производства систем (обычно называемых «постановками») средами. Кубернаны помогают здесь: сегодня это платформа разработки де-факто, так как она представляет собой платформу развертывания выбора, что облегчает достижение некоторой степени сходства с PROD (через правильную смесь масштаба, моделируемого трафика и в случаях Где допустимые — наборы данных клонированы от PROD)
Фокус больше о наблюдении и выводе, а не заранее определенной/строгой «проверки». Сказав это, границы немного размыты здесь, и, как правило, «усилия Хаоса» в конечном итоге становятся смесью обоих, причем нюансная практика, которая считается развитой, как организация созревает в своем путешествии.
Одним из непосредственных последствий этой культуры является практика интеграции хаоса в постоянную доставку (CD) трубопроводы, с выделенной стадией для проведения экспериментов против подходящей среды предварительной продукции, а также результаты/выводы из эксперимента, принимающего решение о продвижении Изменение (т. Е. Строительное артефакт — часто контейнерные изображения или спецификация развертывания/ресурсов) в производство. Процесс измерения этих результатов, как правило, вокруг потребляет данные из разных показателей уровня обслуживания (часто метрики из источников, таких как Prometheus), и изучения его против предопределенного SLO.
В этом блоге мы представляем вас средством реализации вышеуказанного, то есть, выполняя хаос в CD-трубопроводах с возможностью «ворота» своих развертываний к производству на основе проверок против SLOS. Это мы достигаем с использованием плоскости контроля облака для CD: Удержание & Литмусчаос Отказ
(Вы можете узнать больше о Litmus здесь)
Condenn — это инструмент оркестографии натурального цикла с открытым исходным кодом. Удовлетворенные Orchestrates Непрерывная доставка и операции ваших приложений и были построены, чтобы помочь создать «автономное облако», что по существу означает, что позволяет вашей организации стать более автономным при развертывании и эксплуатации ваших приложений и услуг на новых многогибочных облачных платформах. Что-то, что называется «NO-OPS» в более широком сообществе. Он может интегрироваться с мониторинговыми и наблюдательными платформами благодаря своей архитектуре, управляемой событиями, причем достигается связь с использованием CloudEvents (сам инкубирующий проект CNCF).
Основным использованием случая хранения в Kubernetes включает в себя определение конвейера с одним или несколькими этапами для развертывания, тестирования и стратегий восстановления. Последовательность в ухаживании обычно начинается с развертывания приложения в одно из пространств имен Pred-Prod (изображения или спецификация этого развертывания могут быть артефактом процесса CI, с сохранением, встроенным в популярные рамки CI, такие как Дженкинс или Трэвис CI) За ними следуют другие этапы, которые могут вызвать тесты и оценивать операционные характеристики применения, прежде чем подвергать его оценке качества-ворота, в рамках которого предопределенные SLOS (по существу правила, созданные против SLIS, полученные из прометея, динатраса или других источников), проверенный. Успех этого Eval приводит к «содействию» приложению к следующему этапу, скажем, развертывающую в производство. STANN также поддерживает восстановление на основе определенных наблюдений в производстве и обеспечивает гибкость в установке/использовании для конкретного использования (CD/ждет качества) и т. Д.
В ядре философии CANDN — GitOps & Code/Config Generation (она хранит все его конфигурации в внутреннем репозитории GIT, который можно подключить с помощью Github/другой SCM на основе GIT, и применяется изменения от репозитория Git в вашу среду). Все этапы и артефакты удержания (справа от приложений, основных услуг для SLOS). Включение трубопровода — контролируемая Git, и многие сложности оттекаются от пользователей через простые операции CLI (он также обеспечивает API), которые создают спецификации CONFIG.
Мир Litmus свидетельствует о устойчивом увеличении количества случаев использования «Chaos Left-Shift». Это также привело нас к тому, чтобы поделиться способами внедрения экспериментов Litmus Chaos в Gitlab & Spinnaker трубопроводы. Как члены сообщества, работающие над структурой, которая является (а) построенные основания, чтобы быть дружелюбным гитам и (б) имеет совесть, выровненную с «принципами хаоса» Мы были привержены найти средства для привлечения элементов «гипотезы» и «SLO» в хаос «по трубопроводу». Литмские зонды Особенностью была одна из первых результатов этого самоанализ, и сегодня он обеспечивает способ определить «ожидания» из вашей инфраструктуры или применения в рамках хаоса, с разнообразием определений, находящихся от наличия услуг до метрик и ресурсных государств.
Это было в это время, что мы узнали о проекте по удержанию. Мы были сразу впечатлены своими возможностями и особенно его четко определенным прогнозом на «качественно-строение». В то время как зонды ограничены в их объеме для индивидуальных экспериментов, возникла необходимость в оценке SLOS на более широком уровне, в рамках «периодов» хаотической активности. И этим мы подразумеваем период, в котором приложения подвергаются реальная нагрузка и реальные неудачи (один или несколько, беги в последовательности или параллельно). Инфраструктура, управляемая событиями Sastn, дает только что. Он оценивает SLOS (описанные простым и легко понять файл конфигурации) на период времени «тест», в этом случае Real World Load , запускается, в то время как также разрешают инъекции Chaos, чтобы произойти на заднем плане, чтобы имитировать реальные неудачи Отказ Все контрольные данные поддерживаются как CloudEvents, позволяют удобно визуализировать и потребляют — с мостом Condn (Dashboard), предлагающий полезный представление о том, как каждое событие разыграно и отображает результаты оценки.
Еще одна особенность, которую стоит упомянуть здесь, заключается в том, что плоскость управления Удостоверением управляет единой выделенной службой для каждой интеграции, что действует на все трубопроводы, выполняемые в системе. Это приводит к тому, что подход с низким прикосновением к управлению трубопроводами и резонзированными сложными возможностями «интеграция» новых тестов хаоса.
Учитывая все это и с отличной поддержкой из команды Уэндн, мы записали Litmus Service Это может теперь помочь ввести «хаос» на любой этап кондиционера. Функциональность — это действует на «развертывание, законченное« CloudEvent и Triggers Chaos »в CloudEvent и Triggers в приложении, развернутую в пространстве имен предварительного продукта, в то время как в то же время инструменты напряженности вне коробки генерируют пользовательский профиль нагрузки на Это. Ведут нас к пониманию и льготам, обсуждаемым ранее.
Как только у нас была интеграция, мы продемонстрировали его сообществу через вебинар, чтобы поделиться нашими участиями, а также поощрять сообщество в пробуждении! Во время этой презентации мы продемонстрировали простой удержанный трубопровод, который пытается проверить устойчивость «Hello-Service» с использованием Litmus.
Вы можете найти презентацию здесь: https://docs.google.com/presentation/d/1ZFEwXqFIkpicM5-aRkLinWh8AWjombkg1d0Y-Z1DC68/edit#slide=id.p1
В части-2 этого блога серии мы обсудим, как вы можете воспроизводить демо-ступени и по пути Revisit & Concepts, которые мы обсудили в этой статье.
Быть в курсе!!
Вы Sre, Developer или Kubernetes Enthusiast? HAOS Engineering Excite вас? Присоединяйтесь к нашему сообществу на Слабый Для получения подробных обсуждений и регулярных обновлений на Chaos Engineering для Kubernetes.
Проверьте Litmuschaos Github repo И поделитесь своим отзывом. Отправьте запрос на тягу, если вы определите любые необходимые изменения.
Оригинал: «https://dev.to/ksatchit/part-1-evaluating-resiliency-with-keptn-and-litmuschaos-30jo»