Найти в Дзене
ИТ разнообразно

GitOps — инфраструктура как код, сделанная правильно. Часть 3.

Оглавление

3. Автоматизация и процессы внедрения

Теперь мы сказали, что после того, как изменения сливаются в основную ветку, они будут автоматически применены к инфраструктуре через конвейер непрерывной доставки (CD pipeline).

В GitOps у нас есть два способа применить эти изменения:

  • Развёртывание по запросу (Pull Deployment)
-2

В этой модели в среде развёртывания, например в кластере k8s, установлен агент, который активно извлекает изменения из самого репозитория git.

Агент регулярно отслеживает и сравнивает желаемое состояние с фактическим состоянием, присутствующим в среде, где он работает. Если он обнаруживает разницу, то извлекает и применяет изменения, чтобы привести среду к желаемому состоянию, определённому в репозитории.

Чаще всего применимо в контексте Kubernetes и контейнерных сред.

Популярные примеры: Argocd, Fluxcd.

  • Развёртывание по отправке (Push Deployment)
-3

Это традиционный способ, который мы знаем.

В этой модели мы явно определяем задачи в конвейере непрерывной интеграции/непрерывной доставки (CI/CD) приложения, которые выполнят команды для обновления инфраструктуры или развёртывания новой версии приложения в среде развёртывания.

4. Лёгкий откат

-4

Теперь мы знаем, что изменения в репозитории git автоматически синхронизируются со средой развёртывания.

Мы легко можем воспользоваться мощью Git для отслеживания истории изменений и отката к любому предыдущему состоянию, просто используя команду git revert.

Заключение

В заключение, GitOps - это мощный подход, который объединяет принципы контроля версий, рабочего процесса Git и автоматизации, чтобы сделать Инфраструктуру как код (IaC) или, более обобщённо, любой код (xaC), более плавным, стабильным и безопасным.

Перевод с некоторыми авторскими правками.

Автор оригинала: Arafet Ben Kilani.