Рубрики
Uncategorized

Гитопы — еще одно маркетинговое слово mashup?

В последние годы технологический маркетинг пришел к подходу «Слово Машип» ко многим новым условиям. Мы идем… Помечено с гитами, дежопами, куберовщиками, Git.

В последние годы технологический маркетинг пришел к подходу «Слово Машип» ко многим новым условиям. Мы получили микросервис, DevOps, Devesecops, MLOPS, Aiops, Chatops и даже гитап. Объединение слов для маркетинговых терминов на самом деле не рассказывает нам много о том, что подразумевается под этими новыми концепциями. Часто концепции очень абстрактны и еще не определены. Тем не менее, похоже на Agile, они часто требуют смещения парадигмы в том, как люди работают вместе, чтобы достичь целей, похожих на тех, которые они всегда стремились к успешному завернуту.

Поэтому, как технологи, что мы должны сделать из всех этих терминов. Некоторые маркетинговые шумихи, в то время как другие имеют более значимые концепции, лежащие в основе условий. Часто мы игнорируем новые термины, но иногда они оправдывают, посмотрите, действительно ли они что-либо значат, или если они просто ребандируют старые концепции. Для этой статьи я хочу взять быстрый внешний вид (не углублен) на гитах.

Как и многие другие маркетинговые условия, это может быть довольно абстрактным. Некоторые считают, что это просто означать, что вы используете Git как часть вашего процесса разработки и развертывания. В то время как другие применили немного больше гранулированного значения на термин. Вот некоторые определения:

Гитопы — это парадигма или набор практик, которые дают разработчикам выполнять задачи, которые, как правило, подпадают под действие IT-операций. Гитопы требуют, чтобы мы описали и соблюдают системы с декларативными спецификациями, которые в конечном итоге составляют основу непрерывного всего.

— Комплекты

Гитопсы — это способ реализации непрерывного развертывания для облачных нативных приложений. Он фокусируется на опыте, ориентированном на разработчику, когда операционная инфраструктура с использованием разработчиков инструментов уже знаком, включая GIT и инструменты непрерывного развертывания.

— gitops.tech

Гитопсы: версию CI/CD на вершине декларативной инфраструктуры. Хватит сценарию и начать доставку.

— Келси Хайнуш

Гетопы Короче говоря, это набор практик для использования запросов Git Pull для управления инфраструктурой и конфигурациями приложений. Репозиторий Git в Gitops считается единственным источником истины и содержит все состояние системы, так что след изменений в системном состоянии виден и проверяется.

— Mario Vázquez, Redhat OpenShift

Гит как источник истины для желаемого состояния всей системы да действительно вся система.

Цель состоит в том, чтобы описать все: политики, код, конфигурация и даже контролируемые события и контроль версии все это. Сохранение всего под управлением контроля версий конвергенция, когда изменения могут быть повторны повторно, если сначала они не добились успеха.

— Алексис Ричардсон, WeaveWorks

Основная концепция с Gitops состоит в том, что вы используете GIT и регулярные практики GIT (например, запросы слияния/тяги) для управления и утверждения изменения в реальном времени. Это практика, известная разработчиками в том, как они управляют своим исходным кодом. Для этого можно возможно, вы должны быть в состоянии описать ваше «желаемое» состояние для системы, затем иметь механизм применения этого состояния в живую систему и убедиться, что он не расходится от этого «желаемого» состояния (желаемое/декларативное состояние двигатель).

Только Кубернаны?

Одним из целей GitOPS является обеспечение желаемого состояния всегда представлено в живой системе. Kubernetes по умолчанию предоставляет нам способ описания наших рабочих нагрузок/услуг/конфигураций в дополнение к плоскости управления, которая работает, чтобы убедиться, что запущенное состояние соответствует описанному состоянию. Эта особенность позволяет реализовать идею обеспечения отсутствия расхождения из описанного состояния в Git.

Так что Kubernetes требуется для реализации гитапп? Нет, но это значительно помогает облегчить свою реализацию, поскольку желаемый/декларативный государственный двигатель уже реализован как основная концепция. Kubernetes можно даже использовать для контроля состояния рабочих нагрузок, которые даже не работают в Kubernetes. Kelsey Hightower представил демонстрацию DEVOPS DEADS 2020 года, где создал контроллер Kubernetes для серверу промедленного времени вне кластера. Затем его контроллер управлял состоянием целевой платформы Serverless, обеспечивающую ее государство, которое он описал в его Git Repo.

Существуют и другие проекты, которые строят на таких же концепциях, такими как Crossprane, которая предоставляет контроллер Kubernetes для управления облачной инфраструктурой за пределами Кубера. Это позволяет описать экземпляры MySQL или облачное хранилище, такую как GCS или S3, используя аналогичный удельных доменных языков (DSL) в качестве управления развертыванием приложения.

Таким образом, целевой ресурс не должен быть в Kubernetes, но его плоскость управления может использоваться в качестве способа управления рабочими нагрузками приложений и, возможно, инфраструктуру.

Преимущества гитапсов

Ну, преимущества в основном лежат в том, как она реализована, поэтому сначала мы посмотрим на базовую реализацию.

Первая часть реализации состоит в том, чтобы иметь способ описать ваше «желаемое» состояние, или то, что вы хотите сделать реальность в вашей целевой среде, DSL. Это в первую очередь достигается с YAML и JSON. Он используется для объявления/обеспечения состояния, (или описание), ресурсы, которые вы хотите, приверженные для хранилища Git. Далее государство должно применяться к окружающей среде. Это делается с комбинацией определений пользовательских ресурсов Kubernetes (CR BA) с контроллерами и/или операторами. Оператор является актером при применении описанного состояния в среду выполнения, потянув DSL из Git и «развертывание» его в среду.

Рис

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

  • Что можно описать, может быть подтверждено и автоматически

    • наблюдаемость
    • Один источник правды, позволяющий видеть в Git, что должно быть на месте.
    • Сотрудничать через запросы и обзоры по всем изменениям.
  • используя MR, чтобы контролировать процесс утверждения для изменений в среде.

  • Антрегистральное соответствие всех изменений в кластере.

    • Видеть в Git, что должно быть вживую и историю изменений.
  • Последовательный процесс отката

  • Аварийное восстановление, благодаря простому восстановлению/развертыванию состояния приложения кластера с новым созданием кластера.

  • Процесс, ориентированный на разработчик

  • Подгонка для декларативной модели манифеста Kubernetes и двигателя «желаемого состояния»

  • Безопасное развертывание рабочей нагрузки к кластеру, используя модель «тянуть», а не на модель «Push». Это означает, что Git и Ci не должны иметь доступ к кластеру. Скорее кластер тянет в его состоянии из git

Заворачивать

Gitops имеет набор принципов, требующих процессов и инструментов людей для полной реализации. Основные принципы гитапов:

  • Создайте декларативные конфигурации для определения всех рабочих нагрузок.
  • Требуются все модификации для использования процесса просмотра GIT — I.E. «Kubectl» никогда не следует использовать напрямую
  • Оператор в кластере должен управлять наблюдаемым кластерным состоянием в желаемое состояние, заявленное в Git.

Можете ли вы полагаться на 100% только на этой форме гита? Я хотел бы сказать нет. Когда вы начинаете с нуля, есть некоторая загрузка, необходимая для окружающей среды до того, как гитапс может воспользоваться. Для Kubernetes вам необходимо, чтобы применить CRD, а контроллер/оператор, установленный в кластере, который необходим также для создания. Эта минимальная загрузка необходимо до того, как гитапсы для приложений могут быть реализованы. Такие инструменты, такие как террафом, выполняют порции принципов гита, имеющие заявленную конфигурацию, управляемую в Git вместе со своей способностью для управления состоянием. Я считаю, что именно здесь вы можете иметь отличный матч между террафом и различными решениями гитапов.

Это, однако, начинается еще одна целая тема, поэтому я закончу здесь. Я могу создать последующие действия к этому, если есть интерес к дальнейшему изучению того, что такое гитап и как его реализовать. Поэтому, пожалуйста, предоставьте комментарии/вопросы и отзывы.

Оригинал: «https://dev.to/mosttler/gitops-another-marketing-word-mashup-4eim»