Статьи

Сравнение контейнерных трубопроводов

Вступление

Контейнеры привели к огромным изменениям в DevOps, позволив командам отправлять код быстрее, чем когда-либо прежде. Однако нам еще предстоит пройти через процесс сборки, упаковки и развертывания этих контейнеров. Вот почему мы используем контейнерные трубопроводы.

Тем не менее, существует много разных вариантов, когда речь идет о контейнерных трубопроводах. Как мы узнаем, какой использовать? В этой статье мы сравним шесть вариантов и расскажем о конфигурации, преимуществах, ограничениях и ценах каждого из них.

Что такое контейнерные трубопроводы?

Сначала поговорим о том, что такое контейнерный конвейер. Конвейеры  помогают автоматизировать отдельные этапы процесса разработки программного обеспечения, особенно непрерывную интеграцию и непрерывную доставку (CI / CD). Контейнерные конвейеры автоматизируют каждый из этапов процесса развертывания контейнера, от создания исходного образа до развертывания и производства. Как правило, весь контейнерный конвейер состоит из трех этапов:

  1. Интеграция: изменения проверяются в системе контроля версий, запуская процесс сборки и модульные тесты.
  2. Приемочное тестирование: контейнер развертывается в тестовой среде и проверяется на функциональность.
  3. Развертывание: окончательный, полностью протестированный образ развертывается в рабочей среде.

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

Теперь давайте посмотрим на несколько вариантов.

Шесть вариантов контейнерных трубопроводов

1. Героку

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

конфигурация

Приложения Heroku настраиваются с помощью манифеста heroku.yml , который определяет шаги, необходимые для сборки и развертывания контейнера. Манифест для приложения с пользовательским Dockerfile может выглядеть так:


Dockerfile