Какой CI/CD-инструмент выбрать — Jenkins или GitLab?

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Инструменты непрерывной интеграции и развертывания CI/CD на сегодня довольно востребованы. Из всех актуальных решений есть два очевидных лидера, Jenkins и GitLab. На крупных сервисах отзывов у обоих решений примерно одинаковый рейтинг, но смотреть стоит не только на это. Давайте разберемся с преимуществами Jenkins и GitLab, и для каких задач они лучше всего подходят.



GitLab


Это бесплатный opensource-продукт, выпущенный под лицензией MIT и написанный на языках Go и Ruby. Отдельный сервер на таком решении способен работать более чем с 25 000 пользователями.


Интерфейс GitLab

GitLab дает возможности работы с репозиториями, ревьюить код, имеет собственную систему контроля ошибок и многое другое. Для повышения конфиденциальности пользователей есть возможность связать инструмент с Active Directory и с LDAP-серверами, установив его локально.

Большое и вовлеченное сообщество делает работу с продуктом комфортной. GitLab используется не только для создания кода, но и для его тщательной проверки. Поддерживаются практически все среды сборки и системы контроля версий.

Плюсы


  • Подробная документация и простое управление.
  • Удобный пользовательский интерфейс для наблюдения за результатами тестирования. Можно дать права на чтение и изменение как отдельным людям, так и группе пользователей.
  • Удобный инструмент для установки майлстоунов, что позволяет оперативно отслеживать и решать проблемы.
  • Легкое назначение контрольных точек проекта и их группировка по задачам.
  • Удобное параллельное тестирование pull requests и веток, что делает его хорошим выбором для opensource-проектов.

Минусы


  • Артефакты (файлы, которые сохранить после сборки) требуется определять и загружать для каждого задания.
  • Этапы внутри больших задач пока не поддерживаются.

Jenkins


Расширяемое opensource-решение для автоматизации развертывания. Jenkins написан на Java и тоже работает под лицензией MIT. У него богатый набор функций для автоматизации задач сборки, тестирования, развертывания, интеграции и релиза программного обеспечения.


Интерфейс Jenkins

Кроме инсталяции через традиционный установочный пакет он может быть установлен как автономно, так и в качестве Docker на любой машине с установленной Java Runtime Environment (JRE).

Существует также подпроект команды Jenkins под названием Jenkins X, который специализируется на CI/CD в рамках кластеров Kubernetes.

Команда Jenkins выпустила около 1 500 плагинов, благодаря чему его можно использовать вместе с другими решениями — например, co Slack, Jira и другими. Интеграция также доступна для ряда инструментов тестирования DevOps. Есть поддержка REST API для удаленного доступа к системе. Существует три его варианта: Python, XML и JSON с поддержкой JSONP. Как и в случае с GitLab, продукт помогает развивать большое неравнодушное сообщество. Также решение может работать в качестве сервлета в контейнерах Java, таких как GlassFish и Apache Tomcat.

Плюсы


  • Простота настройки и обновления (всего за несколько шагов).
  • Автоматизированный процесс сборки и подробная понятная документация.
  • Легкая интеграция с другими инструментами, в этом случае вы можете получать уведомление о ходе процесса.
  • Использование нескольких машин для распределенных сборок. Это полезно в задачах, когда нужно протестировать продукт в нескольких разных средах.

Минусы


  • Сложная интеграция плагинов.
  • Решение не очень подходит для небольших проектов, так как его настройка довольно трудоемкая.

Суммируем


Jenkins хорош большой библиотекой плагинов, полным контролем над рабочими пространствами, легкой настройкой узлов и простым развертыванием. В целом решение гибкое, универсальное и несложное в освоении, с поддержкой множества языков (но нет русского).

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

С помощью GitLab можно контролировать все аспекты работы с Git-репозиториями, включая ветки с кодом С Jenkins же вы контролируете репозитории только до некоторой степени. Например, ветки вы контролируете не полностью.

Также стоит помнить изначальную задачу, которая стояла при разработке обоих инструментов. Jenkins создавался в первую очередь для реализации CI, а GitLab — для совместной работы с кодом и контроля версий.



Блог ITGLOBAL.COM — Managed IT, частные облака, IaaS, услуги ИБ для бизнеса:

  • Бранч-стратегии при разработке в Git
  • 6 проблем при внедрении DevOps и методы их решения. Главное из отчета Microsoft
  • Боли стартапов: как правильно развивать ИТ-инфраструктуру
  • CI\CD для стартапа: какие есть инструменты, и почему ими пользуются не только крупные и известные компании
Источник: https://habr.com/ru/company/itglobalcom/blog/540310/


Интересные статьи

Интересные статьи

Приветствую всех. С кем не знаком - Андрей Балякин: 7 лет в сервисном бизнесе, 20 лет в ИТ. Предприниматель. Последние несколько лет - CEO проекта HubEx (ИТ платформы авт...
Привет, друзья! Меня зовут Петр, я представитель малого белорусского бизнеса со штатом чуть более 20 сотрудников. В данной статье хочу поделиться негативным опытом покупки 1С-Битрикс. ...
Изображение: Unsplash Маскирование IP-адреса с помощью прокси нужно не только для того, чтобы обходить цензуру в интернете и смотреть сериалы. В последние годы прокси все чаще используют д...
На рынке труда программисты PHP являются одними из наиболее востребованных специалистов. За последние 3 года их популярность среди работодателей выросла на более чем на 12%. PHP — самый распростр...
Практически все коммерческие интернет-ресурсы создаются на уникальных платформах соответствующего типа. Среди них наибольшее распространение получил Битрикс24.