Contents
Что такое Дженкинс?
Jenkins — это сервер непрерывной интеграции с открытым исходным кодом, написанный на Java для организации цепочки действий для достижения процесса непрерывной интеграции в автоматическом режиме. Jenkins поддерживает полный жизненный цикл разработки программного обеспечения, начиная со сборки, тестирования, документирования программного обеспечения, развертывания и других этапов жизненного цикла разработки программного обеспечения.
Jenkins — это широко используемое приложение по всему миру, которое установлено около 300 000 раз и растет с каждым днем. Используя Jenkins, компании-разработчики программного обеспечения могут ускорить процесс разработки программного обеспечения, поскольку Jenkins может быстро автоматизировать сборку и тестирование.
Это серверное приложение, для которого требуется веб-сервер, такой как Apache Tomcat. Причина, по которой программное обеспечение Jenkins стало настолько популярным, заключается в том, что оно отслеживает повторяющиеся задачи, возникающие во время разработки проекта. Например, если ваша команда разрабатывает проект, 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.
- На данный момент закрыто около 280 тикетов, а проект выпускает стабильный релиз каждые три месяца.
- По мере развития технологий растет и Дженкинс. На данный момент в базе данных плагинов Jenkins опубликовано около 320 плагинов. Благодаря плагинам Jenkins становится еще более мощным и многофункциональным.
- Инструмент Jenkins также поддерживает облачную архитектуру, поэтому вы можете развертывать Jenkins на облачных платформах.
- Причина, по которой Jenkins стал популярным, заключается в том, что он был создан разработчиком для разработчиков.
Недостатки использования Дженкинса
Хотя Jenkins — очень мощный инструмент, у него есть свои недостатки.
- Его интерфейс устарел и не удобен для пользователя по сравнению с текущими тенденциями пользовательского интерфейса.
- Хотя Jenkins нравится многим разработчикам, поддерживать его не так просто, потому что Jenkins работает на сервере и требует некоторых навыков администратора сервера для мониторинга его активности.
- Одна из причин, по которой многие люди не внедряют Jenkins, связана с трудностями установки и настройки Jenkins.
- Непрерывная интеграция регулярно прерывается из-за небольших изменений настроек. Непрерывная интеграция будет приостановлена и поэтому требует внимания разработчиков.
Вывод:
- В непрерывной интеграции после фиксации кода программное обеспечение создается и тестируется немедленно.
- Дженкинс используется для организации цепочки действий для непрерывной интеграции в программном проекте.
- До Jenkins, когда все разработчики выполняли назначенные им задачи по кодированию, они фиксировали свой код одновременно. Позже сборка тестируется и развертывается.
- После Jenkins код создается и тестируется, как только разработчик фиксирует код. Дженкин будет собирать и тестировать код много раз в течение дня.
- По умолчанию Jenkins поставляется с ограниченным набором функций. Если вы хотите интегрировать свою установку Jenkins с инструментами контроля версий, такими как Git, вам необходимо установить плагины, связанные с Git.
- Самым большим плюсом Jenkins является то, что им управляет сообщество, которое проводит публичные встречи и принимает участие в разработке проектов Jenkins.
- Самый большой недостаток Jenkin заключается в том, что его интерфейс устарел и не удобен для пользователя по сравнению с текущими тенденциями пользовательского интерфейса.