Введение
В современном, быстро меняющемся мире технологий эффективное управление инфраструктурой, при сохранении стабильности и безопасности, может стать настоящей проблемой.
Но что, если я вам скажу, что существует способ сделать этот процесс более плавным и общим?
GitOps — это методология, которая объединяет возможности контроля версий, рабочих процессов git и автоматизации с инфраструктурой в виде кода.
В этой статье я постараюсь раскрыть, как GitOps может изменить способ работы с инфраструктурой для разработчиков или профессионалов по эксплуатации.
Давайте начнём !
Неправильный подход к реализации IaC
Прежде, чем мы углубимся в GitOps, нам нужно понять, почему он необходим и в чём проблема использования других способов IaC (Инфраструктура как код)!
Представьте себе следующее: вместо утомительной и подверженной ошибкам ручной настройки кластера Kubernetes, вы используете мощь Инфраструктуры как код (IaC) для определения среды развёртывания в виде кода, используя Terraform, конфигурации Ansible и манифесты Kubernetes в качестве ваших инструментов выбора, например.
Итак, у вас есть множество файлов YAML и других файлов конфигурации, которые описывают вашу инфраструктуру, вашу платформу и её настройки.
Плохая практика № 1
Хранение их на локальной машине, а не в репозитории Git!
-> Никакой совместной работы и проверки кода!
Плохая практика № 2
Хранение файлов конфигурации в репозитории Git, где у всех членов команды есть доступ к ним, но отсутствует процесс проверки и утверждения!
-> Никаких запросов на pull/merge -> Commit непосредственно в основную ветку
И, как следствие, отсутствие автоматических тестов для проверки изменений кода.
-> Сломайте что-то в инфраструктуре или среде приложения, сделав его нестабильным.
Плохая практика № 3
Обновление инфраструктуры и среды приложения вручную!
-> Каждый член команды имеет доступ к инфраструктуре для применения изменений со своих локальных компьютеров, что затрудняет отслеживание того, кто, что и когда выполнил.
-> Находите ошибки только после применения.
Как вы видите, даже несмотря на то, что мы используем описание инфраструктуры как кода, что уже обладает множеством преимуществ, наш процесс всё равно в значительной степени ручной и неэффективный. И вот здесь на практике внедряется концепция GitOps, чтобы обращаться с Инфраструктурой как кодом так же, как с кодом приложения.
Продолжение следует...
Перевод с некоторыми авторскими правками.
Автор оригинала: Arafet Ben Kilani.