GitOps — широко известен и востребован, поэтому по теме регулярно появляются новые материалы для начинающих, а также специализированные инструменты. Мы в Beeline Cloud подобрали примечательные вводные статьи, гайды и open source-решения, которые интересно изучить и потестировать: от управления DNS-зонами и секретами до GitOps-инструментов от энтузиастов и крупных фирм-разработчиков.

Изображение: Pankaj Patel
Изображение: Pankaj Patel

Туториалы и личный опыт

GitOps для управления зонами DNS. Майкл Кропат, инженер с 15-летним опытом, делится руководством по развёртыванию GitOps для файлов зоны. Такого рода подход позволяет упростить и ускорить процесс внесения соответствующих изменений — вводить вручную лишь корректировки в файле зоны и автоматизировать все остальные шаги по пересборке образов и перезапуску контейнеров. В материале рассматривается процесс построения такой GitOps-инфраструктуры. Как пишет Кропат: «я пытаюсь избегать скучных тем, но делаю исключения, чтобы делиться опытом использования скучных технологий — такие решения зачастую оказываются действительно хорошими».

Введение в GitOps. Этот компактный онлайн-гайд от специалистов из GitLab подойдет для знакомства с принципами и особенностями GitOps-подхода. В материале представлен перечень популярных инструментов по теме для разных сценариев использования: оркестрации инфраструктуры, взаимодействия с Git, CI/CD-процессов и так далее. Последняя треть книги посвящена лучшим GitOps-практикам и рекомендациям по началу работы с подходом. Например, начинающим советуют использовать несколько сред по модели DTAP, а также формализовать процессы ревью кода и обновлений.

Применение GitOps в «операционке». Корпоративная инфраструктура и новые ИТ-разработки не живут в вакууме. Они полагаются на надежность и устойчивость сред и окружений, нуждаются в мониторинге и прочей «операционке». В этом вводном руководстве из блога GitHub речь идет как раз о том, как GitOps упрощает подобные процессы. В центре внимания подхода — концепция «желаемого состояния» (desired state), вокруг которой во многом и выстроен материал. Автор также знакомит читателя с некоторыми принципами GitOps — от декларативности до версионирования.

Домашняя лаборатория GitOps без Kubernetes. Решения вроде K8s могут показаться громоздкими для некоторых пет-проектов — именно так считает автор данного материала. По этой причине он предпринял попытку реализовать альтернативный подход к построению инфраструктуры на базе GitOps. В его случае в стек инструментов входит Komodo, Forgejo, Renovate Bot и другие. В материале — автор описывает развертку «домашнего» сетапа с контролем версий и IaC, а также делится исходниками по GPL 3.0.

Нейросети как мост между ClickOps и GitOps. Основатель компании MLOps Consulting Люк Марсден размышляет о демократизации сферы проектирования ИИ-систем. Ключевая мысль материала — зачем делать выбор в пользу только одного подхода ClickOps или GitOps, когда можно комбинировать их с помощью LLM в качестве посредника. Автор предлагает трёхуровневую модель работы над проектами: прототипирование в веб-интерфейсе (ClickOps), экспорт конфигураций в YAML-формат (LLM), а затем практики развертывания и управления инфраструктурой (GitOps). Подход показан на примере CI/CD-конвейера для cloud-native GenAI-архитектуры.

GitOps и ИБ: управление секретами. В этом материале из блога компании Infisical речь идет о GitOps-подходе к управлению секретами. Эта фирма разработала одноимённую открытую платформу для решения таких задач, поэтому в гайде используют её возможности, а также задействуют Terraform, GitHub Actions и Argo CD. Авторы статьи считают, что GitOps-методологии следуют за ростом сложности ИТ-систем, и поэтому делают упор на актуальные задачи в контексте управления секретами. В материале речь идет о преимуществах и вариантах решения таких задач с некоторыми примерами. 

Открытые инструменты по теме

Gitopper. Это — профильный инструмент, позволяющий реализовать GitOps-подход. Проект распространяется по лицензии Apache 2.0 и набрал больше 400 звёзд на GitHub. Gitopper разработал Мик Гибен, SRE-инженер и специалист по проектированию и поддержке масштабных распределенных систем. Один из его проектов — CoreDNS — набрал более 13 тысяч звёзд на GitHub и получил поддержку CNCF. Кроме того, Гибен является одним из авторов RFC 7328, RFC 7129 и RFC 6781.

У Gitopper широкий функционал в контексте GitOps. При этом — по задумке разработчика — он подойдет тем, кто не пользуется Kubernetes, хотя слоган в духе «for non-Kubernetes folks» устраивает далеко не всех. Есть мнение, что инструмент стоит преподносить без привязки к K8s, например, как CD-решение в духе GitOps для сред без контейнеров.

Nixidy. Это решение для декларативного управления Kubernetes-кластерами появилось на базе пет-проекта (лицензия MIT). Однако сейчас Nixidy представляет собой комплексный инструмент, который реализует принципы GitOps и модульной структуры NixOs, а в дополнение к этому — работает с «отрендеренными» манифестами. Почитать о том, как это все выглядит на практике, можно в блоге другого специалиста — в посте про опыт использования Nixidy. Вдобавок, инструмент позволяет использовать Kustomize-оверлеи, Helm-чарты, а ещё — GitHub Actions для сборки и переключения сред.

Разработчику Nixidy часто приходилось пользоваться связкой «K8s + Argo CD», но при этом работа над YAML-манифестами изнуряла обилием ручного труда. Так что под свои нужды и задачи он написал Nixidy — его функциональности хватает для домашней лаборатории. Проект действительно ещё молодой, но на GitHub у него уже есть чуть более двухсот звёзд, а для знакомства и быстрого старта — подготовлена документация.

Terrateam. Этот оркестратор автоматизирует процессы Terraform, OpenTofu, CDKTF, Terragrunt и Pulumi и реализует подход GitOps. Он позволяет управлять как небольшим числом рабочих пространств, так и десятками тысяч таковых. Одноимённый стартап развивает инструмент в двух версиях: открытой (MPL 2.0) и коммерческой. Открытый Terrateam опубликовали в конце прошлого года, и он уже набрал почти тысячу звёзд. Помимо интеграции с GitHub, команда проекта планирует добавить поддержку GitLab.

Изображение: Praveen Thirumurugan
Изображение: Praveen Thirumurugan

Terrateam реализует IaC-управление инфраструктурой. Центральными для данного решения являются операции plan и apply. Первая отвечает за превью изменений — позволяет просматривать их до принятия. Другая подтверждает и вносит изменения в инфраструктуру. За счёт такого подхода инструмент упрощает и упорядочивает координацию во время совместной работы. Кроме того, разработчики Terrateam считают, что масштабируемость инструмента обеспечивает декларативная система тегов. С её помощью можно реализовать роли, распределить рабочие процессы. Однако есть мнение, что Terrateam является очередной «навороченной надстройкой» поверх широких возможностей Terraform Workspaces и GitHub Actions. Но команда проекта готова поспорить с этим. Для ознакомления с Terrateam есть вводное руководство.

Digger. Этот инструмент разработал одноимённый стартап и теперь развивает под лицензией Apache 2.0. Digger позволяет выполнять IaC-оркестрацию по принципам GitOps. Он состоит из CLI-агента, что взаимодействует с Terraform CLI, и бекенда. Последний работает с GitHub-событиями и запускает CI-задачи. По мнению команды проекта, нередко эксплуатация TACOS-систем непрерывной интеграции (Terraform Automation and Colaboration Software) приводит к избыточности CI/CD-инфраструктуры и завышает затраты на её функционирование. При проектировании Digger это учли. Кроме того, Digger производит детекцию дрифта состояния инфраструктуры, поддерживает открытый движок политик OPA и может функционировать в качестве GitHub Action без бэкенда, хотя тогда все операции будут выполняться поочерёдно.

Кстати, примечательно, что выход инструмента в опенсорс привлёк внимание со стороны конкурента — автора Terrateam. Он предложил пользователям Digger задуматься, как сильно расходятся возможности открытой и коммерческой версии инструмента.

Kargo. Эта платформа «непрерывного продвижения» задействует принципы GitOps. Она позволяет оркестрировать новые программные артефакты на этапах жизненного цикла приложений. Компания Akuity разработала Kargo как инструмент, дополняющий возможности другого их известного продукта — Argo CD. В качестве лицензии для Kargo выбрана Apache 2.0. Разработчики называют подход GitOps-First одной из ключевых идей инструмента. Кроме того, команда Kargo предлагает перечень шаблонов под разные сценарии работы с инфраструктурой — в каждом само собой используется Argo CD. Например, среди вариантов готовое решение для отслеживания изменений, макеты структур Helm, Kustomize и монорепозитория. Также для начинающих специалистов разработчики подготовили небольшой глоссарий по базовой терминологии GitOps.

Пара материалов для дополнительного чтения:

  • От многопоточности в ОС до «простукивания портов»: избранные материалы у нас на DIY-площадке. Делимся большой подборкой публикаций — как вводными статьями для начинающих, так и постами по продвинутым вопросам. Специалисты на реальных кейсах рассказывают, как реализовать то или иное решение. При этом материалы не перегружены теорией и наполнены практикой, а также предлагают необычные кейсы. Например, что, если представить архив Коробейникова из «Двенадцати стульев» в качестве реляционной базы данных и поэкспериментировать с запросами?

  • Kubernetes ConfigMaps и Secrets: как правильно управлять конфигурацией и секретами в кластере. CKAD-разработчик с 10-летним опытом в программной инженерии наглядно объясняет суть ConfigMaps и Secrets. Вводный рассказ автор дополняет лучшими практиками — применение RBAC, разделение конфигурации и кода, а также некоторыми другими. Ещё один материал от автора «Погружение в Kubernetes Network Policies» посвящён управления сетевым взаимодействием между объектами внутри кластера. Статья подойдёт для начинающих специалистов.

Beeline Cloud — secure cloud provider. Разрабатываем облачные решения, чтобы вы предоставляли клиентам лучшие сервисы.

Комментарии (0)