Какво е JenkinsЗащо да използваме инструмента за непрекъсната интеграция (CI)?

Какво е Jenkins?

Jenkins е сървър за непрекъсната интеграция с отворен код, написан на Java за организиране на верига от действия за постигане на процеса на непрекъсната интеграция по автоматизиран начин. Jenkins поддържа пълния жизнен цикъл на разработка на софтуер - от изграждането, тестването, документирането на софтуера, внедряването и други етапи от жизнения цикъл на разработка на софтуер.

Jenkins е широко използвано приложение по целия свят, което има около 300 000 инсталации и нараства с всеки изминал ден. Чрез използването Jenkins, софтуерните компании могат да ускорят процеса си на разработване на софтуер, тъй като Jenkins може да автоматизира изграждането и тестването с бърза скорост.

Това е сървърно приложение и изисква уеб сървър като Apache Tomcat. Причината... Jenkins софтуерът стана толкова популярен, е наблюдението на повтарящи се задачи, които възникват по време на разработването на проект. Например, ако вашият екип разработваping проект, 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.
  • И Хъдсън, и Jenkins продължи да действа независимо. Но за кратък период от време, Jenkins придоби много проекти и сътрудници, докато Хъдсън остана само с 32 проекта. С течение на времето, Jenkins стана по-популярен и Хъдсън вече не се поддържа.

Защо да използвате непрекъсната интеграция с Jenkins?

Някои хора може да си помислят, че старомодният начин на развитиеping Софтуерът е по-добрият начин. Нека разберем предимствата на CI с Jenkins със следния пример

Нека си представим, че има около 10 разработчици, които работят върху a споделено хранилище. Някои програмисти изпълняват задачата си за 25 дни, докато на други са им необходими 30 дни.

Преди Jenkins След Jenkins
След като всички разработчици изпълниха възложените им задачи за кодиране, те използваха да ангажират своя код едновременно. Later, Build е тестван и внедрен.

Code commit изграден, а тестовият цикъл беше много рядък и еднократно изграждане беше направено след много дни.

Кодът се изгражда и тества веднага след като разработчикът ангажира код. Дженкин ще създава и тества код много пъти през деня

Ако изграждането е успешно, тогава Jenkins ще разположи изходния код на тестовия сървър и ще уведоми екипа по внедряването.

Ако изграждането се провали, тогава Jenkins ще уведоми екипа от разработчици за грешките.

Тъй като кодът е изграден наведнъж, някои разработчици ще трябва да изчакат, докато други разработчици завършат кодирането, за да проверят своята компилация Кодът се изгражда веднага след всяко от ангажиментите на Разработчика.
Не е лесна задача да се изолират, откриват и коригират грешки за множество ангажименти. Тъй като кодът се изгражда след всеки комит на един разработчик, лесно е да се открие чий код е причинил неуспеха на изградения
Code изграждане и тестов процес са изцяло ръчни, така че има много шансове за повреда. Автоматизиран процес на изграждане и тестване, спестяващ време и намаляващ дефектите.
Кодът се внедрява, след като всички грешки са коригирани и тествани. Кодът се внедрява след всяко успешно изграждане и тестване.
Цикълът на развитие е бавен Цикълът на развитие е бърз. Новите функции са по-лесно достъпни за потребителите. Увеличава печалбите.

Казус от реалния свят за непрекъсната интеграция

Сигурен съм, че всички знаете за стария телефон Nokia. Nokia прилагаше процедура, наречена nightly build. След множество ангажименти от различни разработчици през деня, софтуерът се изграждаше всяка вечер. Тъй като софтуерът е създаден само веднъж на ден, е огромна болка да се изолират, идентифицират и поправят грешките в голяма кодова база.

Later, те възприеха подхода за непрекъсната интеграция. Софтуерът е изграден и тестван веднага щом разработчикът е ангажирал код. Ако бъде открита грешка, съответният разработчик може бързо да коригира дефекта.

Казус от реалния свят за непрекъсната интеграция

Jenkins Plugins

По подразбиране Jenkins предлага се с ограничен набор от функции. Ако искате да интегрирате вашия Jenkins инсталация с инструменти за контрол на версиите като Git, тогава трябва да инсталирате плъгини, свързани с Git. Всъщност, за интеграция с инструменти като Maven, Amazon EC2, трябва да инсталирате съответните плъгини във вашия Jenkins.

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

Предимства на използването Jenkins

  • Jenkins се управлява от общността, която е много отворена. Всеки месец те провеждат публични срещи и приемат мнения от обществеността за развитието на Jenkins проект.
  • До момента са затворени около 280 билета и проектът публикува стабилна версия на всеки три месеца.
  • С развитието на технологиите, така се развива и JenkinsДосега Jenkins има около 320 публикувани плъгина в базата си данни с плъгини. С плъгини, Jenkins става още по-мощен и богат на функции.
  • Jenkins Инструментът също така поддържа облачна архитектура, така че можете да внедрите Jenkins в облачно-базирани платформи.
  • Причината поради която Jenkins стана популярен, защото е създаден от разработчик за разработчици.

Недостатъци при използването Jenkins

Въпреки че Jenkins е много мощен инструмент, но има и своите недостатъци.

  • Интерфейсът му е остарял и не е удобен за потребителя в сравнение с текущите тенденции в потребителския интерфейс.
  • Въпреки че Jenkins е обичан от много разработчици, не е толкова лесно да се поддържа, защото Jenkins работи на сървър и изисква известни умения като сървърен администратор, за да наблюдава активността му.
  • Една от причините, поради които много хора не прилагат Jenkins поради трудността му при инсталиране и конфигуриране Jenkins.
  • Непрекъснатите интеграции редовно се прекъсват поради някои малки промени в настройките. Непрекъснатата интеграция ще бъде поставена на пауза и следователно изисква известно внимание от страна на разработчиците.

Заключение

  • При непрекъсната интеграция, след ангажиране на код, софтуерът се изгражда и тества незабавно
  • Jenkins използва се за оркестриране на верига от действия за непрекъсната интеграция в софтуерен проект
  • Преди Jenkins Когато всички разработчици бяха завършили възложените им задачи по кодиране, те едновременно са качвали кода си. Later, Build е тестван и внедрен.
  • След Jenkins Кодът се изгражда и тества веднага щом разработчикът го зареди. Jenkin ще изгражда и тества код много пъти през деня.
  • По подразбиране Jenkins предлага се с ограничен набор от функции. Ако искате да интегрирате вашия Jenkins инсталация с инструменти за контрол на версиите като Git, тогава трябва да инсталирате плъгини, свързани с Git. Проверете също най-доброто Jenkins Алтернативни инструменти
  • Най-големите плюсове на Jenkins е, че се управлява от общността, която провежда публични срещи и приема мнения от обществеността за развитието на Jenkins проекти
  • Най-големият недостатък на Jenkins е, че интерфейсът му е остарял и не е лесен за ползване в сравнение с настоящите тенденции в потребителския интерфейс. Ако обмисляте други опции, които биха могли да предложат по-модерно потребителско изживяване, може би ще искате да разгледате някои от най-добрите инструменти за непрекъсната интеграция на разположение.

Обобщете тази публикация с: