Что такое Дженкинс? Зачем использовать инструмент непрерывной интеграции (CI)?

by moiseevrus

Что такое Дженкинс?

Jenkins — это сервер непрерывной интеграции с открытым исходным кодом, написанный на Java для организации цепочки действий для достижения процесса непрерывной интеграции в автоматическом режиме. Jenkins поддерживает полный жизненный цикл разработки программного обеспечения, начиная со сборки, тестирования, документирования программного обеспечения, развертывания и других этапов жизненного цикла разработки программного обеспечения.

Jenkins — это широко используемое приложение по всему миру, которое установлено около 300 000 раз и растет с каждым днем. Используя Jenkins, компании-разработчики программного обеспечения могут ускорить процесс разработки программного обеспечения, поскольку Jenkins может быстро автоматизировать сборку и тестирование.

Это серверное приложение, для которого требуется веб-сервер, такой как Apache Tomcat. Причина, по которой программное обеспечение Jenkins стало настолько популярным, заключается в том, что оно отслеживает повторяющиеся задачи, возникающие во время разработки проекта. Например, если ваша команда разрабатывает проект, Jenkins будет постоянно тестировать сборки вашего проекта и показывать вам ошибки на ранних этапах разработки.

В этом уроке вы узнаете

Что такое непрерывная интеграция?

Непрерывная интеграция — это процесс многократной интеграции изменений кода от нескольких разработчиков в один проект. Программное обеспечение тестируется сразу после фиксации кода. При каждой фиксации кода код создается и тестируется. Если тест пройден, сборка тестируется для развертывания. Если развертывание прошло успешно, код отправляется в производство.

Эта фиксация, сборка, тестирование и развертывание являются непрерывным процессом и, следовательно, называются непрерывной интеграцией/развертыванием.

​_Как работает Дженкинс?

Jenkins — это серверное приложение, которому требуется веб-сервер, такой как Apache Tomcat, для работы на различных платформах, таких как Windows, Linux, macOS, Unix и т. д. Чтобы использовать Jenkins, вам необходимо создать конвейеры, которые представляют собой серию шагов, которые сервер Jenkins возьмет. Конвейер непрерывной интеграции Jenkins — это мощный инструмент, состоящий из набора инструментов, предназначенных для размещения , мониторинга , компиляции и тестирования кода или изменений кода, таких как:

  • Сервер непрерывной интеграции (Jenkins, Bamboo, CruiseControl, TeamCity и др.)
  • Инструмент управления версиями (например, CVS, SVN, GIT, Mercurial, Perforce, ClearCase и другие)
  • Инструмент сборки (Make, ANT, Maven, Ivy, Gradle и другие)
  • Среда автоматизированного тестирования (Selenium, Appium, TestComplete, UFT и др.)

История Дженкина

  • Кохсуке Кавагути, Java-разработчик, работающий в SUN Microsystems, устал от многократного создания кода и исправления ошибок. В 2004 году создал сервер автоматизации под названием Hudson, который автоматизирует задачи сборки и тестирования.
  • В 2011 году у Oracle, которой принадлежала Sun Microsystems, возник спор с сообществом открытого исходного кода Hudson, поэтому они разветвили Hudson и переименовали его в Jenkins.
  • И Хадсон, и Дженкинс продолжали работать независимо. Но за короткий промежуток времени Дженкинс приобрел много проектов и участников, в то время как Хадсон остался только с 32 проектами. Со временем Дженкинс стал более популярным, и Хадсон больше не поддерживается.

Зачем использовать непрерывную интеграцию с Jenkins?

Некоторые люди могут подумать, что старомодный способ разработки программного обеспечения лучше. Давайте разберемся в преимуществах CI с Jenkins на следующем примере.

Представим, что над общим репозиторием работают около 10 разработчиков . Некоторые разработчики выполняют свою задачу за 25 дней, а другим требуется 30 дней.

До Дженкинса После Дженкинса
После того, как все разработчики выполнили поставленные перед ними задачи по кодированию, они обычно одновременно фиксировали свой код. Позже сборка тестируется и развертывается.Коммит кода построен, цикл тестирования был очень редким, а одна сборка была сделана через много дней. Код создается и тестируется, как только разработчик фиксирует код. Дженкин будет собирать и тестировать код много раз в течение дня.Если сборка прошла успешно, Jenkins развернет исходный код на тестовом сервере и уведомит группу развертывания.

Если сборка завершится ошибкой, Jenkins сообщит об ошибках команде разработчиков.

Поскольку весь код был построен сразу, некоторым разработчикам пришлось бы ждать, пока другие разработчики закончат кодирование, чтобы проверить свою сборку. Код создается сразу после фиксации любого из разработчиков.
Изолировать, обнаружить и исправить ошибки для нескольких коммитов — непростая задача. Поскольку код создается после каждой фиксации одного разработчика, легко определить, чей код вызвал сбой сборки.
Сборка кода и процесс тестирования полностью ручные, поэтому есть много шансов на неудачу. Автоматизированный процесс сборки и тестирования экономит время и уменьшает количество дефектов.
Код развертывается после исправления и тестирования всех ошибок. Код развертывается после каждой успешной сборки и тестиров​_ания.
Цикл разработки медленный Цикл разработки быстрый. Новые функции более доступны для пользователей. Увеличивает прибыль.

Практический пример непрерывной интеграции

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

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

Плагины Дженкинса

По умолчанию Jenkins поставляется с ограниченным набором функций. Если вы хотите интегрировать свою установку Jenkins с инструментами контроля версий, такими как Git, вам необходимо установить подключаемые модули, связанные с Git. На самом деле, для интеграции с такими инструментами, как Maven, Amazon EC2, вам нужно установить соответствующие плагины в свой Jenkins.

Интеграция плагинов в Jenkins

Преимущества использования Дженкинса

  • Дженкинс управляется очень открытым сообществом. Каждый месяц они проводят общественные собрания и принимают участие в разработке проекта Jenkins.
  • На данный момент закрыто около 280 тикетов, а проект выпускает стабильный релиз каждые три месяца.
  • По мере развития технологий растет и Дженкинс. На данный момент в базе данных плагинов Jenkins опубликовано около 320 плагинов. Благодаря плагинам Jenkins становится еще более мощным и многофункциональным.
  • Инструмент Jenkins также поддерживает облачную архитектуру, поэтому вы можете развертывать Jenkins на облачных платформах.
  • Причина, по которой Jenkins стал популярным, заключается в том, что он был создан разработчиком для разработчиков.

Недостатки использования Дженкинса

Хотя Jenkins — очень мощный инструмент, у него есть свои недостатки.

  • Его интерфейс устарел и не удобен для пользователя по сравнению с текущими тенденциями пользовательского интерфейса.
  • Хотя Jenkins нравится многим разработчикам, поддерживать его не так просто, потому что Jenkins работает на сервере и требует некоторых навыков администратора сервера для мониторинга его активности.
  • Одна из причин, по которой многие люди не внедряют Jenkins, связана с трудностями установки и настройки Jenkins.
  • Непрерывная интеграция регулярно прерывается из-за небольших изменений настроек. Непрерывная интеграция будет приостановлена ​​и поэтому требует внимания разработчиков.

Вывод:

  • В непрерывной интеграции после фиксации кода программное обеспечение создается и тестируется немедленно.
  • Дженкинс используется для организации цепочки действий для непрерывной интеграции в программном проекте.
  • До Jenkins, когда все разработчики выполняли назначенные им задачи по кодированию, они фиксировали свой код одновременно. Позже сборка тестируется и развертывается.
  • После Jenkins код создается и тестируется, как только разработчик фиксирует код. Дженкин будет собирать и тестировать код много раз в течение дня.
  • По умолчанию Jenkins поставляется с ограниченным набором функций. Если вы хотите интегрировать свою установку Jenkins с инструментами контроля версий, такими как Git, вам необходимо установить плагины, связанные с Git.
  • Самым большим плюсом Jenkins является то, что им управляет сообщество, которое проводит публичные встречи и принимает участие в разработке проектов Jenkins.
  • Самый большой недостаток Jenkin заключается в том, что его интерфейс устарел и не удобен для пользователя по сравнению с текущими тенденциями пользовательского интерфейса.

You may also like

Leave a Comment