Найти тему
ИТ разнообразно

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

Оглавление

Введение

В современном, быстро меняющемся мире технологий эффективное управление инфраструктурой, при сохранении стабильности и безопасности, может стать настоящей проблемой.

Но что, если я вам скажу, что существует способ сделать этот процесс более плавным и общим?

GitOps — это методология, которая объединяет возможности контроля версий, рабочих процессов git и автоматизации с инфраструктурой в виде кода.

В этой статье я постараюсь раскрыть, как GitOps может изменить способ работы с инфраструктурой для разработчиков или профессионалов по эксплуатации.

Давайте начнём !

Неправильный подход к реализации IaC

-2

Прежде, чем мы углубимся в GitOps, нам нужно понять, почему он необходим и в чём проблема использования других способов IaC (Инфраструктура как код)!

Представьте себе следующее: вместо утомительной и подверженной ошибкам ручной настройки кластера Kubernetes, вы используете мощь Инфраструктуры как код (IaC) для определения среды развёртывания в виде кода, используя Terraform, конфигурации Ansible и манифесты Kubernetes в качестве ваших инструментов выбора, например.

Итак, у вас есть множество файлов YAML и других файлов конфигурации, которые описывают вашу инфраструктуру, вашу платформу и её настройки.

Плохая практика № 1

Хранение их на локальной машине, а не в репозитории Git!

-> Никакой совместной работы и проверки кода!

Плохая практика № 2

Хранение файлов конфигурации в репозитории Git, где у всех членов команды есть доступ к ним, но отсутствует процесс проверки и утверждения!

-> Никаких запросов на pull/merge -> Commit непосредственно в основную ветку

И, как следствие, отсутствие автоматических тестов для проверки изменений кода.

-> Сломайте что-то в инфраструктуре или среде приложения, сделав его нестабильным.

Плохая практика № 3

Обновление инфраструктуры и среды приложения вручную!

-> Каждый член команды имеет доступ к инфраструктуре для применения изменений со своих локальных компьютеров, что затрудняет отслеживание того, кто, что и когда выполнил.

-> Находите ошибки только после применения.

Как вы видите, даже несмотря на то, что мы используем описание инфраструктуры как кода, что уже обладает множеством преимуществ, наш процесс всё равно в значительной степени ручной и неэффективный. И вот здесь на практике внедряется концепция GitOps, чтобы обращаться с Инфраструктурой как кодом так же, как с кодом приложения.

Продолжение следует...

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

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