Гитлаб ки против Дженкинс


может ли кто-нибудь, пожалуйста, дайте мне знать, в чем разница между Дженкинсом и другими CI, такими как Gitlab-CI, drone.io поставляется с дистрибутивом GIT. В некоторых исследованиях я мог только придумать, что GitLab community edition не позволяет добавлять Дженкинса, но GitLab enterprise edition делает это. Есть ли другие существенные отличия.

2 84

2 ответа:

Это мой опыт:

в моей работе мы управляем нашими репозиториями с помощью gitlab ee, и у нас работает сервер Jenkins (1.6).

В основе они делают почти то же самое. Они будут запускать некоторые скрипты на образе сервера / докера.

TL; DR;

  • Дженкинс проще в использовании / учиться, но есть риск стать плагином ад
  • Дженкинс имеет графический интерфейс (это может быть предпочтительным, если он должен быть доступным / ремонтопригодным другими людьми)
  • интеграция с GitLab меньше, чем с Gitlab-ci
  • Дженкинс можно отделить от вашего РЕПО

большинство серверов CI довольно прямолинейны (concourse.ci,gitlab-ci,circle-ci,Трэвис-ки, дронов.Ио, gocd а что еще у вас есть). Они позволяют выполнять shell / bat из определения файла yaml. Дженкинс-это гораздо больше замены и поставляется с пользовательским интерфейсом. Это может быть либо преимуществом или недостатком, в зависимости от ваших потребностей.

Дженкинс очень настраивается из-за всех плагинов, которые доступны. Недостатком этого является то, что ваш CI-сервер может стать спагетти плагинов.

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

в настоящее время (jenkins2 также поддерживает более "правильный ci" с Jenkinsfile и pipline плагин, который поставляется по умолчанию как от Jenkins 2), но раньше был менее связан с репозиторием, чем т. е. GitLab ci.

использование файлов yaml для определения вашего конвейера сборки (и в конце концов запуск pure shell/bat) чище.

EDIT: то, что я забыл упомянуть здесь,-это плагины, доступные для Jenkins, которые позволяют визуализировать все виды отчетов, такие как результаты тестов, покрытие и другие статические анализаторы. Конечно, вы всегда можете написать или использовать инструмент, чтобы сделать это для вас, но это, безусловно, плюс для Дженкинса (особенно для менеджеров, которые, как правило, ценят эти отчеты слишком много)

EDIT2: в последнее время я все больше и больше работаю с Gitlab-ci. В Gitlab они делают действительно большую работу, делая весь опыт весело. Я понимаю, что люди используют Jenkins, но когда у вас есть GitLab работает и доступен это действительно легко начать работу с Gitlab-ci. Там не будет ничего, что будет интегрироваться так же легко, как Gitlab-ci, хотя они приложили немало усилий в интеграции 3rd party.

  • их документация должна начать работу в кратчайшие сроки
  • порог для начала работы очень низкий
  • обслуживание легко (нет Плагины)
  • масштабирование бегунов просто
  • CI полностью входит в ваш репозиторий
  • Дженкинс работа / просмотры могут стать грязными

некоторые льготы на момент написания

  • только поддержка одного файла, но это будет основные только

Я согласен с большинством заметок Рика, но мое мнение о том, что проще,напротив: GitLab оказывается удивительным инструментом для работы.

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

Я использую его прямо сейчас, чтобы автоматизируйте и проверьте, как приложение устанавливается на разных дистрибутивах Linux, и это просто пылающий быстро настроить (попробуйте открыть сложную конфигурацию задания Дженкинса в firefox и дождитесь появления не реагирующего скрипта по сравнению с тем, как легко редактировать .gitlab-ci.yml). Время, затраченное на настройку / масштабирование ведомых устройств, значительно меньше благодаря runner binaries; плюс тот факт, что вGitLab.com вы получаете вполне приличные и бесплатные общие бегуны.

Дженкинс чувствует себя вручную после нескольких недель работы в качестве опытного пользователя GitLab CI, например, дублирование заданий на ветку, установка плагинов для выполнения простых вещей, таких как загрузка SCP. Единственный случай использования, с которым я столкнулся, когда я пропустил его на сегодняшний день, - это когда задействовано более одного репозитория; это еще нужно хорошо понять.

кстати, в настоящее время я пишу серию на GitLab CI, чтобы продемонстрировать, как не так сложно настроить свой репозиторий CI инфраструктура с ним. Опубликована на прошлой неделе первая часть, представляющая основы, плюсы и минусы и различия с другими инструментами:https://solidgeargroup.com/gitlab_countinuous_integration_intro