Що таке Дженкінс? Інструмент безперервної інтеграції (CI)

Зміст:

Anonim

Що таке Дженкінс?

Jenkins - це сервер безперервної інтеграції з відкритим кодом, здатний організувати ланцюжок дій, які допомагають досягти процесу безперервної інтеграції (і не тільки) автоматизованим способом.

Дженкінс безкоштовний і повністю написаний на Java. Jenkins - це широко використовуване додаток у всьому світі, яке налічує близько 300 тис. Установок і зростає з кожним днем.

Це серверна програма і вимагає веб-сервера, такого як Apache Tomcat. Причиною того, що Дженкінс став настільки популярним, є моніторинг повторюваних завдань, які виникають під час розробки проекту. Наприклад, якщо ваша команда розробляє проект, Дженкінс буде постійно перевіряти збірки вашого проекту та показувати вам помилки на ранніх стадіях вашої розробки.

Використовуючи Jenkins, програмні компанії можуть пришвидшити процес розробки програмного забезпечення, оскільки Jenkins може швидко автоматизувати збірку та тестування. Дженкінс підтримує повний життєвий цикл розробки програмного забезпечення від побудови, тестування, документування програмного забезпечення, розгортання та інших етапів життєвого циклу розробки програмного забезпечення.

У цьому підручнику ви дізнаєтесь

  • Що таке Дженкінс?
  • Що таке безперервна інтеграція?
  • Історія Дженкіна
  • Навіщо використовувати постійну інтеграцію з Дженкінсом?
  • Реальний приклад безперервної інтеграції
  • Переваги використання Дженкінса
  • Недоліки використання Дженкінса

Що таке безперервна інтеграція?

У системі Безперервна інтеграція після фіксації коду програмне забезпечення будується та тестується негайно. У великому проекті з великою кількістю розробників коміти робляться багато разів протягом дня. З кожним комітом створюється і тестується код. Якщо тест пройдено, складання перевіряється на розгортання. Якщо розгортання має успіх, код надсилається до робочої. Це комітування, побудова, тестування та розгортання є безперервним процесом і, отже, назва постійної інтеграції / розгортання.

Конвеєр безперервної інтеграції - це потужний інструмент, який складається з набору інструментів, призначених для розміщення , моніторингу , компіляції та тестування коду або змін коду, таких як:

  • Сервер безперервної інтеграції (Jenkins, Bamboo, CruiseControl, TeamCity та інші)
  • Інструмент керування джерелом (наприклад, CVS, SVN, GIT, Mercurial, Perforce, ClearCase та інші)
  • Інструмент побудови (Make, ANT, Maven, Ivy, Gradle та інші)
  • Схема автоматизованого тестування (селен, аппіум, тесткомплект, UFT та інші)

Історія Дженкіна

  • Кохсуке Кавагуті, розробник Java, працюючи в SUN Microsystems, втомився будувати код і повторно виправляти помилки. У 2004 році був створений сервер автоматизації під назвою Hudson, який автоматизує завдання побудови та тестування.
  • У 2011 році Oracle, який володів Sun Microsystems, мав суперечку із спільнотою відкритих джерел Hudson, тому вони роздвоїли Хадсон і перейменували його на Jenkins.
  • І Хадсон, і Дженкінс продовжували працювати самостійно. Але за короткий проміжок часу Дженкінс придбав багато проектів та авторів, тоді як Хадсон залишився лише з 32 проектами. З часом Дженкінс став популярнішим, і Хадсон більше не підтримується.

Навіщо використовувати постійну інтеграцію з Дженкінсом?

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

Давайте уявимо, що близько 10 розробників працюють над спільним сховищем. Деякі розробники виконують своє завдання за 25 днів, тоді як іншим потрібно 30 днів.

До Дженкінса Після Дженкінса
Після того, як усі розробники виконали призначені завдання кодування, вони звикли фіксувати свій код одночасно. Пізніше Build тестується та розгортається. Код коміту побудований, і тестовий цикл був дуже рідкісним, і одна побудова була виконана через багато днів. Код створюється та тестується, як тільки розробник фіксує код. Дженкін буде збирати і тестувати код багато разів протягом дня. Якщо збірка була успішною, тоді Дженкінс розгорне джерело на тестовому сервері та повідомить про це команду розгортання. Якщо збірка не вдається, Дженкінс повідомить про помилки команду розробника.
Оскільки код був побудований відразу, деяким розробникам доведеться почекати, поки інші розробники закінчать кодування, щоб перевірити свою збірку Код створюється відразу після того, як будь-який з розробників бере участь.
Виділити, виявити та виправити помилки для декількох комітів непросте завдання. Оскільки код будується після кожного коміту одного розробника, легко виявити, чий код спричинив збій вбудованого
Процес побудови та тестування коду є повністю ручним, тому існує багато шансів на невдачу. Автоматизований процес побудови та тестування дозволяє економити терміни та зменшувати дефекти.
Код розгортається після виправлення та перевірки всіх помилок. Код розгортається після кожної успішної збірки та тестування.
Цикл розвитку повільний Цикл розвитку швидкий. Нові функції легше доступні для користувачів. Збільшує прибуток.

Реальний приклад безперервної інтеграції

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

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

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

За замовчуванням Дженкінс має обмежений набір функцій. Якщо ви хочете інтегрувати свою установку Jenkins з інструментами контролю версій, такими як Git, вам потрібно встановити плагіни, пов'язані з Git. Насправді для інтеграції з такими інструментами, як Maven, Amazon EC2, вам потрібно встановити відповідні плагіни у своєму Jenkins.

Інтеграція плагінів у Jenkins

Переваги використання Дженкінса

  • Дженкінсом керує громада, яка є дуже відкритою. Щомісяця вони проводять публічні зустрічі та беруть участь у громадськості для розвитку проекту Дженкінса.
  • На даний момент близько 280 квитків закрито, і проект публікує стабільний випуск кожні три місяці.
  • У міру зростання технологій зростає і Дженкінс. На сьогодні Дженкінс має близько 320 плагінів, опублікованих у своїй базі даних плагінів. Завдяки плагінам Дженкінс стає ще потужнішим і багатим на функції.
  • Jenkins також підтримує хмарну архітектуру, щоб ви могли розгорнути Jenkins на хмарних платформах.
  • Причина, чому Дженкінс став популярним, полягає в тому, що його створив розробник для розробників.

Недоліки використання Дженкінса

Хоча Дженкінс є дуже потужним інструментом, він має свої недоліки.

  • Його інтерфейс застарілий і не зручний для користувача в порівнянні з сучасними тенденціями користувацького інтерфейсу.
  • Незважаючи на те, що Дженкінса люблять багато розробників, підтримувати його не так просто, оскільки Дженкінс працює на сервері і вимагає певних навичок адміністратора сервера для контролю його діяльності.
  • Однією з причин, чому багато людей не застосовують Jenkins, є її складність у встановленні та налаштуванні Jenkins.
  • Безперервна інтеграція регулярно переривається через деякі незначні зміни налаштувань. Постійна інтеграція буде призупинена, і тому вимагає певної уваги розробника.

Висновок:

  • У системі Безперервна інтеграція, після фіксації коду, програмне забезпечення будується та тестується негайно
  • Jenkins - це сервер безперервної інтеграції з відкритим кодом, здатний організувати ланцюжок дій
  • До Дженкінса, коли всі розробники виконували призначені завдання кодування, вони звикли фіксувати свій код одночасно. Пізніше Build тестується та розгортається.
  • Після Дженкінса код будується і тестується, як тільки розробник фіксує код. Дженкін будуватиме і тестуватиме код багато разів протягом дня
  • За замовчуванням Дженкінс має обмежений набір функцій. Якщо ви хочете інтегрувати свою установку Jenkins з інструментами контролю версій, такими як Git, то вам потрібно встановити плагіни, пов'язані з Git
  • Найбільшими плюсами Дженкінса є те, що нею керує громада, яка проводить публічні зустрічі та бере участь громадськості для розвитку проектів Дженкінса.
  • Найбільша хитрість Дженкіна полягає в тому, що його інтерфейс застарілий і не зручний для користувача порівняно з сучасними тенденціями інтерфейсу користувача.