Что такое житопы
Прежде чем сказать, почему Gitops так полезен, я должен объяснить, что это такое. По своей основе Gitops определяет всю конфигурацию для вашей системы в GIT. Это включает в себя развертывание, версии услуг, конфигурации и секреты. Например, если использование Kubernetes , в репозитории в Gitops будет несколько файлов развертывания Kubernetes, которые определяют изображения и версии для развертывания. Каждый файл развертывания может также ссылаться на карты конфигурации или содержать переменные среды, в которых указывается конфигурация, необходимая для запуска этой службы в каждой среде.
Все это означает, что у вас есть декларативный способ определения состояния вашей системы. Это все равно, что сказать: «Я хочу, чтобы вся система всегда отражала настройки в этих файлах». Это противоположно к императивному способу определения вашей системы, где вы говорите системе, как изменить, например, Хелм развернут
или Отказ от руля
. Императивным образом, система является суммой всех вещей, которые ей сказали.
В Gitops изменения в системе втягиваются (через агенты), а не внедрены разработчиками, или команды выпуска CI. Агенты работают в кластере, сравнивая фактическое состояние кластера и с состоянием, определенным в GIT. Если в GIT произошли изменения, это применит их к кластеру.
Агенты также используются при развертывании услуг. Новые версии услуг развертываются путем помещения изображения в репозитории Docker. Агент будет сканировать новые теги в этом хранилище. Если тег соответствует предопределенному шаблону, то тег применяется к файлам развертывания в репо GIT, и это изменение будет выявлено и применено.
Так зачем пользоваться житопами?
1. Покажи мне конфигурацию
Это действительно легко найти и поделиться конфигурацией службы. У меня было много случаев, когда кто -то спросил меня: «Какую конфигурацию установила Кафка?» Использование Gitops не требует, чтобы я смотрел на дескриптор развертывания в Kubernetes. Я ищу в git. Когда я нашел его, я могу легко поделиться этим файлом в качестве URL -адреса с кем -то, кто в нем нуждается — им не нужен специальный доступ, чтобы иметь возможность проверять то, что работает. Gitops — отличный уровень, и он дает каждому возможность видеть, как все работает.
2. История изменений
Когда все изменения вносятся через GIT, у вас есть готовая история всех изменений в системе, в том числе некоторое описание того, что или почему изменения произошли в сообщениях о коммите. Когда что -то сломается, тогда легко оглянуться на последнее изменение и выяснить, что могло вызвать проблему.
3. Git возвращается
GIT возвращается, затем становится мгновенным механизмом отката. Таким образом, вы можете чувствовать себя уверенно вносить изменения, зная, что это также может быть легко отменено.
4. Используя знакомые инструменты
GIT является знакомым инструментом для большинства разработчиков, и использование Gitops Saves Savings для изучения нового CLI со всеми его синтаксисом и опциями. Еще нужно, чтобы разработчики знали, как определить файлы развертывания/конфигурации, хотя например Вам нужно знать, как структурировать файл kubernetes развертывание YAML, если развертывание в Kubernetes — но, по крайней мере, вам не нужно учиться, как использовать Хелм слишком!
5. Декларатив означает восстановление
Наличие всей вашей конфигурации и состояния в одном месте является первым шагом к тому, чтобы сделать ваши среды восстановить. Когда среда перестраивается, не требуется, чтобы CI в какой -то момент разворачивал все последние приложения — агенты, которые уже работают, просто применяйте конфигурацию, которая уже находится в GIT, и система будет точно такой, какая она была раньше.
6. Git является источником истины
Я знаю, что это так заманчиво внести подлый перемены на месте, чтобы попробовать что -то: kubectl set env ...
. Если это работает, «Замечательно!» , но возможно, вы забыли применить конфигурацию ко всем службам или добавить ее в CI А затем, когда есть перестройка кластера или даже новое развертывание, изменение может быть потеряно. Это также работает в другую сторону. Если приложение ломается, вам не нужно проверять, была ли установлена какая -либо конфигурация вручную, что вызывает проблему. GIT является единственным источником истины для того, как работают ваши приложения, и это дает теплое чувство безопасности и уверенность в том, что способность воспроизводить, воссоздать и воспроизводить целые системы в других средах без какого -либо ручного вмешательства.
7. Сотрудничество и обмен
Изменения происходят с помощью запросов на притяжение, поэтому все изменения видны и могут обсуждаться. Gitops — отличный способ поделиться знаниями, потому что каждый может увидеть, как настроена система — никто не может внести изменения тайно.
8. Самообслуживание
Любой может изменить состояние кластера, ему просто нужен запрос на притяжение и некоторые разрешения. Это здорово, потому что это означает, что организация не полагается на нескольких людей, чтобы внести изменения, любой может внести изменения. Это действительно самообслуживание. Это также означает, что людям не нужны специальные разрешения, чтобы иметь возможность вносить изменения. Таким образом, вы можете заблокировать разрешения, в то же время позволяя всем разработчикам вносить изменения с помощью PRS.
дальнейшее чтение
Если вы хотите узнать больше о Gitops, я бы порекомендовал проверить Плетение работы и знать, как внедрять Gitops , некоторые сообщения в блоге от Стив Уэйд Анкет
Оригинал: «https://dev.to/philhardwick/8-reasons-you-should-use-gitops-3ci1»