Что такое JenkinsЗачем использовать инструмент непрерывной интеграции (CI)?
⚡ Умное резюме
Jenkins Это сервер автоматизации с открытым исходным кодом, который собирает и тестирует код каждый раз, когда разработчик вносит изменения, превращая непрерывную интеграцию из ежедневной рутины в процесс, работающий непрерывно в течение всего рабочего дня.
Что такое Jenkins?
Jenkins — это сервер непрерывной интеграции с открытым исходным кодом, написанный на Java для организации цепочки действий с целью автоматизированного осуществления процесса непрерывной интеграции. Jenkins Поддерживает полный жизненный цикл разработки программного обеспечения, начиная от сборки, тестирования, документирования, развертывания и других этапов жизненного цикла разработки программного обеспечения.
Jenkins Это широко используемое приложение по всему миру, насчитывающее сотни тысяч установок, и их число растет с каждым днем. Используя его... JenkinsКомпании-разработчики программного обеспечения могут ускорить процесс разработки своих программ, поскольку Jenkins позволяет быстро автоматизировать сборку и тестирование.
Это серверное приложение, и для его работы требуется веб-сервер, например, Apache Tomcat. Причина в том, что Jenkins Популярность программного обеспечения возросла благодаря возможности мониторинга повторяющихся задач, возникающих в процессе разработки проекта. Например, если ваша команда разрабатывает...ping проект, Jenkins будет постоянно тестировать сборки вашего проекта и показывать вам ошибки на ранних этапах разработки.
Примечание: развертывание войны в Apache Tomcat по-прежнему работает, но в текущих версиях поставляется встроенный контейнер сервлетов, поэтому Jenkins Обычно запускается автоматически. Для работы линейки LTS 2.555.x требуется Java 21.
Что такое непрерывная интеграция?
Непрерывная интеграция — это процесс многократной интеграции изменений кода от нескольких разработчиков в одном проекте. Программное обеспечение тестируется сразу после фиксации кода. При каждом коммите кода код создается и тестируется. Если тест пройден, сборка проверяется на предмет развертывания. Если развертывание прошло успешно, код передается в рабочую среду.
Эта фиксация, сборка, тестирование и развертывание — это непрерывный процесс, отсюда и название «непрерывная интеграция/развертывание».
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, и другие)
В текущих версиях эти шаги находятся в JenkinsФайл добавлен в репозиторий рядом с кодом. Jenkins Контроллер считывает этот файл и передает каждый этап агенту, то есть машине, которая фактически выполняет работу.
Jenkins История
- Косуке Кавагути, Java разработчик, работавший в SUN Microsystems, устал постоянно создавать код и исправлять ошибки. В 2004 году создал сервер автоматизации Hudson, который автоматизирует задачи сборки и тестирования.
- В 2011 году Oracle Владельцы Sun Microsystems поссорились с сообществом разработчиков открытого программного обеспечения Hudson, поэтому они создали форк Hudson и переименовали его. Jenkins.
- И Хадсон, и Jenkins продолжали работать независимо. Но за короткий промежуток времени... Jenkins Компания привлекла множество проектов и участников, в то время как у Хадсона осталось всего 32 проекта. Со временем... Jenkins Стало более популярным, и компания Hudson больше не обслуживается.
Почему следует использовать непрерывную интеграцию? Jenkins?
Некоторые могут подумать, что старомодный способ развития...ping Программное обеспечение — лучший способ. Давайте разберемся в преимуществах CI. Jenkins на следующем примере
Представим, что над общим репозиторием работают около 10 разработчиков. Один разработчик выполняет свою задачу за 25 дней, а другому требуется 30 дней.
| Перед тем, как Jenkins | После Jenkins |
|---|---|
|
После того, как все разработчики завершили порученные им задачи по кодированию, они одновременно фиксировали свой код. Later, Сборка протестирована и развернута. Code Коммит был создан, цикл тестирования был очень редким, и единственная сборка была выполнена через много дней. |
Код компилируется и тестируется сразу после того, как разработчик вносит изменения в код. Jenkins будет многократно в течение дня создавать и тестировать код. Если сборка пройдет успешно, то Jenkins Развернет исходный код на тестовом сервере и уведомит группу развертывания. Если сборка не удастся, то Jenkins Сообщим об ошибках команде разработчиков. |
| Поскольку весь код был собран сразу, некоторым разработчикам придется ждать, пока другие разработчики закончат кодирование, чтобы проверить свою сборку. | Код создается сразу после фиксации любого из разработчиков. |
| Изолировать, обнаружить и исправить ошибки для нескольких коммитов — непростая задача. | Поскольку сборка кода происходит после каждого коммита одного и того же разработчика, легко определить, чей именно код стал причиной сбоя сборки. |
| Code построить и процесс тестирования полностью ручные, поэтому существует много шансов на неудачу. | Автоматизированный процесс сборки и тестирования экономит время и снижает количество дефектов. |
| Код развертывается после исправления и тестирования всех ошибок. | Код развертывается после каждой успешной сборки и тестирования. |
| Цикл разработки медленный | Цикл разработки быстрый. Новые функции стали более доступны для пользователей. Увеличивает прибыль. |
Практический пример непрерывной интеграции
Я уверен, что все вы знаете о старом телефоне Nokia. Раньше Nokia реализовывала процедуру, называемую ночной сборкой. После нескольких коммитов от разных разработчиков в течение дня программное обеспечение создавалось каждую ночь. Поскольку программное обеспечение создавалось только один раз в день, очень сложно изолировать, выявлять и исправлять ошибки в большой базе кода.
LaterОни применили подход непрерывной интеграции, показанный ниже. Программное обеспечение разрабатывалось и тестировалось сразу после того, как разработчик вносил изменения в код. В случае обнаружения ошибки соответствующий разработчик мог быстро исправить дефект.
Jenkins Плагины
По умолчанию Jenkins Включает ограниченный набор функций. Если вы хотите интегрировать свой Jenkins Для установки систем контроля версий, таких как Git, необходимо установить плагины, связанные с Git. В частности, для интеграции с такими инструментами, как Maven, Amazon Для работы с EC2 вам необходимо установить соответствующие плагины. Jenkinsкак показано в менеджере плагинов ниже.
Преимущества использования Jenkins
- Jenkins Управление осуществляется местным сообществом, которое отличается открытостью. Каждый месяц проводятся публичные собрания, на которых собираются предложения от общественности для дальнейшего развития проекта. Jenkins проект.
- Проект поддерживает предсказуемый ритм выпуска обновлений: новая базовая версия для долгосрочной поддержки выбирается каждые двенадцать недель, после чего выпускаются запланированные исправления.
- По мере развития технологий развивается и само их функционирование. JenkinsВ базе данных плагинов сейчас содержится более двух тысяч плагинов. С учетом плагинов, Jenkins становится еще более мощным и многофункциональным.
- Jenkins Этот инструмент также поддерживает облачную архитектуру, что позволяет развертывать приложения. Jenkins на облачных платформах.
- Причина почему Jenkins Популярность ему принесла идея создания этого приложения разработчиком для разработчиков.
Недостатки использования Jenkins
Хотя Jenkins Это очень мощный инструмент, но у него есть свои недостатки.
- Его интерфейс устарел и не удобен для пользователя по сравнению с современными тенденциями в области пользовательского интерфейса, хотя в последних версиях дизайн экранов был значительно модернизирован.
- Хотя Jenkins Хотя его любят многие разработчики, поддерживать его не так просто, потому что Jenkins Работает на сервере и требует определенных навыков администратора сервера для мониторинга его активности.
- Одна из причин, почему многие люди не внедряют Jenkins Это связано со сложностью установки и настройки. Jenkins.
- Непрерывная интеграция регулярно прерывается из-за небольших изменений настроек. Непрерывная интеграция будет приостановлена и поэтому потребует некоторого внимания со стороны разработчиков.
- Конфликты зависимостей плагинов возникают при одновременном обновлении множества плагинов, поэтому для обновлений плагинов требуется отдельное окно технического обслуживания.
Если эти компромиссы важны для вашей команды, сравните лучший Jenkins Альтернативные инструменты и более широкий список лучшие инструменты непрерывной интеграции прежде чем принимать решение об использовании собственного сервера.


