2016-05-25 5 views
64

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

+2

GitLab также собрал сравнение GitLab CI против Jenkins: https://about.gitlab.com/comparison/gitlab -vs-jenkins.html – bbodenmiller

ответ

68

Это мой опыт:

В своей работе мы управляем нашими репозиториев с gitlab ЭИ и у нас есть сервер Jenkins (1.6) работает.

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

TL; DR;

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

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

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

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

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

Использование файлов yaml для определения вашего конвейера сборки (и, в конце концов, запуск чистой оболочки/bat) является более чистым.

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

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

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

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

  • только поддержка для одного файла, но это будет fixed скоро
+5

Дженкинс теперь может получить более удобный графический интерфейс благодаря [Blue Ocean] (https://jenkins.io/projects/blueocean/) –

+2

Как из gitlab 9.3 добавлена ​​поддержка мультипроектных конвейеров. Это было для меня одной из главных причин придерживаться Дженкинса. В настоящее время я делаю PoC, чтобы проверить, могу ли я справиться с gitlab, поскольку они явно также фокусируются на этом сейчас, и они развиваются намного быстрее. Кроме того, мне очень нравится интерфейс и то, как он эволюционировал с течением времени. – Rik

33

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

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

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

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

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

+2

Я полностью согласен с тобой о Гитлабе. На момент написания gitlab был не таким полным, как сейчас. Мне очень нравится Gitlab как инструмент, и я очень ценю всю работу, которую ребята вкладывают в нее. – Rik

+1

@alfageme: Я проверю ваши отчеты на указанном сайте В любом случае: благодаря всем вашим объяснениям. В этот самый момент я собираюсь решить, будем ли мы использовать gitlabCI или Jenkins для нашего CI-Stuff. –

+0

@MaxS Что вы в конечном итоге используете? – user1870400