Что такое Дженкинс? Зачем использовать инструмент непрерывной интеграции (CI)?
Что такое Дженкинс?
Jenkins — это сервер непрерывной интеграции с открытым исходным кодом, написанный на Java для организации цепочки действий для автоматического достижения процесса непрерывной интеграции. Jenkins поддерживает полный жизненный цикл разработки программного обеспечения: создание, тестирование, документирование программного обеспечения, развертывание и другие этапы жизненного цикла разработки программного обеспечения.
Jenkins — это широко используемое приложение по всему миру, число установок которого составляет около 300 тысяч, и их количество растет с каждым днем. Используя Jenkins, компании-разработчики программного обеспечения могут ускорить процесс разработки программного обеспечения, поскольку Jenkins может автоматизировать сборку и тестирование с высокой скоростью.
Это серверное приложение, для которого требуется веб-сервер, такой как Apache Tomcat. Причина, по которой программное обеспечение Jenkins стало настолько популярным, заключается в мониторинге повторяющихся задач, возникающих в ходе разработки проекта. Например, если ваша команда разрабатывает проект, Jenkins будет постоянно тестировать сборки вашего проекта и показывать вам ошибки на ранних этапах разработки.
Что такое непрерывная интеграция?
Непрерывная интеграция — это процесс многократной интеграции изменений кода от нескольких разработчиков в одном проекте. Программное обеспечение тестируется сразу после фиксации кода. При каждом коммите кода код создается и тестируется. Если тест пройден, сборка проверяется на предмет развертывания. Если развертывание прошло успешно, код передается в рабочую среду.
Эта фиксация, сборка, тестирование и развертывание — это непрерывный процесс, отсюда и название «непрерывная интеграция/развертывание».
Как работает Дженкинс?
Jenkins — это серверное приложение, которому требуется веб-сервер, такой как Apache Tomcat, для работы на различных платформах, таких как Windows, Linux, macOS, Unix и т. д. Чтобы использовать Jenkins, вам необходимо создать конвейеры, которые представляют собой серию шагов, которые будет выполнять сервер Jenkins. Jenkins Continuous Integration Pipeline — это мощный инструмент, состоящий из набора инструментов, предназначенных для кашель, монитор, компилировать и тестXNUMX код или изменения кода, например:
- Сервер непрерывной интеграции (Дженкинс, Bamboo, CruiseControl, TeamCity, и другие)
- Инструмент контроля версий (например, CVS, SVN, GIT, Mercurial, Perforce, ClearCase и другие)
- Инструмент сборки (Сделать, 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 дней.
До Дженкинса | После Дженкинса |
---|---|
После того, как все разработчики завершили порученные им задачи по кодированию, они одновременно фиксировали свой код. Later, Сборка протестирована и развернута.
Код фиксировался, цикл тестирования был очень редким, а единственная сборка выполнялась через много дней. |
Код создается и тестируется, как только разработчик фиксирует код. Дженкин будет собирать и тестировать код много раз в течение дня.
Если сборка прошла успешно, Jenkins развернет исходный код на тестовом сервере и уведомит команду развертывания. Если сборка завершится неудачей, Дженкинс уведомит об ошибках команду разработчиков. |
Поскольку весь код был собран сразу, некоторым разработчикам придется ждать, пока другие разработчики закончат кодирование, чтобы проверить свою сборку. | Код создается сразу после фиксации любого из разработчиков. |
Изолировать, обнаружить и исправить ошибки для нескольких коммитов — непростая задача. | Поскольку код создается после каждого коммита одного разработчика, легко определить, чей код вызвал сбой сборки. |
Сборка кода и процесс тестирования полностью ручные, поэтому существует много шансов на неудачу. | Автоматизированный процесс сборки и тестирования экономит время и снижает количество дефектов. |
Код развертывается после исправления и тестирования всех ошибок. | Код развертывается после каждой успешной сборки и тестирования. |
Цикл разработки медленный | Цикл разработки быстрый. Новые функции стали более доступны для пользователей. Увеличивает прибыль. |
Практический пример непрерывной интеграции
Я уверен, что все вы знаете о старом телефоне Nokia. Раньше Nokia реализовывала процедуру, называемую ночной сборкой. После нескольких коммитов от разных разработчиков в течение дня программное обеспечение создавалось каждую ночь. Поскольку программное обеспечение создавалось только один раз в день, очень сложно изолировать, выявлять и исправлять ошибки в большой базе кода.
Later, они приняли подход непрерывной интеграции. Программное обеспечение было создано и протестировано сразу после того, как разработчик зафиксировал код. При обнаружении какой-либо ошибки соответствующий разработчик может быстро исправить дефект.
Плагины Дженкинса
По умолчанию Jenkins поставляется с ограниченным набором функций. Если вы хотите интегрировать установку Jenkins с инструментами контроля версий, такими как Git, вам необходимо установить плагины, связанные с Git. Фактически, для интеграции с такими инструментами, как Maven, Amazon EC2, вам необходимо установить соответствующие плагины в свой Jenkins.
Преимущества использования Дженкинса
- Дженкинсом управляет очень открытое сообщество. Каждый месяц они проводят общественные встречи и принимают участие от общественности в развитии проекта Jenkins.
- На данный момент закрыто около 280 заявок, а проект публикует стабильный релиз каждые три месяца.
- По мере развития технологий растет и Дженкинс. На данный момент в базе данных плагинов Jenkins опубликовано около 320 плагинов. Благодаря плагинам Jenkins становится еще более мощным и функциональным.
- Инструмент Jenkins также поддерживает облачную архитектуру, поэтому вы можете развертывать Jenkins на облачных платформах.
- Причина, по которой Jenkins стал популярным, заключается в том, что он был создан разработчиком для разработчиков.
Недостатки использования Jenkins
Хотя Jenkins — очень мощный инструмент, у него есть свои недостатки.
- Его интерфейс устарел и не удобен для пользователя по сравнению с текущими тенденциями пользовательского интерфейса.
- Хотя Jenkins любят многие разработчики, поддерживать его не так-то просто, поскольку Jenkins работает на сервере и требует некоторых навыков администратора сервера для мониторинга его активности.
- Одна из причин, по которой многие люди не внедряют Jenkins, заключается в сложности установки и настройки Jenkins.
- Непрерывная интеграция регулярно прерывается из-за небольших изменений настроек. Непрерывная интеграция будет приостановлена и поэтому потребует некоторого внимания со стороны разработчиков.
Заключение
- При непрерывной интеграции после фиксации кода программное обеспечение сразу же собирается и тестируется.
- Jenkins используется для организации цепочки действий непрерывной интеграции в программном проекте.
- До Дженкинса, когда все разработчики выполняли поставленные перед ними задачи по кодированию, они фиксировали свой код одновременно. Later, Сборка протестирована и развернута.
- После Дженкинса код собирается и тестируется, как только разработчик фиксирует код. Дженкин будет собирать и тестировать код много раз в течение дня.
- По умолчанию Jenkins поставляется с ограниченным набором функций. Если вы хотите интегрировать установку Jenkins с инструментами контроля версий, такими как Git, вам необходимо установить плагины, связанные с Git. Также проверьте лучшие альтернативные инструменты Jenkins
- Самым большим плюсом Jenkins является то, что им управляет сообщество, которое проводит публичные собрания и принимает участие общественности в разработке проектов Jenkins.
- Самым большим недостатком Jenkins является то, что его интерфейс устарел и не удобен для пользователя по сравнению с текущими тенденциями пользовательского интерфейса. Если вы рассматриваете другие варианты, которые могут предложить более современный пользовательский интерфейс, возможно, вам захочется изучить некоторые из них. лучшие инструменты непрерывной интеграции доступен.