Какво е Дженкинс? Инструмент за непрекъсната интеграция (CI)

Съдържание:

Anonim

Какво е Дженкинс?

Jenkins е сървър за непрекъсната интеграция с отворен код, способен да организира верига от действия, които помагат да се постигне процесът на непрекъсната интеграция (и не само) по автоматизиран начин.

Jenkins е безплатен и е изцяло написан на Java. Jenkins е широко използвано приложение по целия свят, което има около 300 000 инсталации и се разраства всеки ден.

Това е сървърно базирано приложение и изисква уеб сървър като Apache Tomcat. Причината Дженкинс да стане толкова популярен е тази за наблюдението на повтарящи се задачи, които възникват по време на разработването на проект. Например, ако вашият екип разработва проект, Дженкинс непрекъснато ще тества вашите проекти и ще ви показва грешките в ранните етапи на вашето развитие.

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

В този урок ще научите

  • Какво е Дженкинс?
  • Какво е непрекъсната интеграция?
  • История на Дженкин
  • Защо да използваме непрекъсната интеграция с Дженкинс?
  • Реално изследване на казуса за непрекъсната интеграция
  • Предимства на използването на Дженкинс
  • Недостатъци на използването на Дженкинс

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

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

Конвейерът за непрекъсната интеграция е мощен инструмент, който се състои от набор от инструменти, предназначени за хостване , наблюдение , компилиране и тестване на код или промени в кода, като:

  • Сървър за непрекъсната интеграция (Jenkins, Bamboo, CruiseControl, TeamCity и други)
  • Инструмент за контрол на източника (напр. CVS, SVN, GIT, Mercurial, Perforce, ClearCase и други)
  • Инструмент за изграждане (Make, ANT, Maven, Ivy, Gradle и други)
  • Рамка за тестване на автоматизацията (селен, аппиум, тесткомплект, UFT и други)

История на Дженкин

  • Kohsuke Kawaguchi, разработчик на Java, работещ в SUN Microsystems, беше уморен от изграждането на кода и повтарянето на грешките многократно. През 2004 г. създаде сървър за автоматизация, наречен Hudson, който автоматизира задачата за изграждане и тестване.
  • През 2011 г. Oracle, който притежаваше Sun Microsystems, имаше спор с общността с отворен код Hudson, така че те разделиха Hudson и го преименуваха на Jenkins.
  • И Хъдсън, и Дженкинс продължиха да работят независимо. Но за кратък период от време Дженкинс придоби много проекти и сътрудници, докато Хъдсън остана само с 32 проекта. С течение на времето Дженкинс стана по-популярен и Хъдсън вече не се поддържа.

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

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

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

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

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

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

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

Дженкинс плъгини

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

Интеграция на приставки в Jenkins

Предимства на използването на Дженкинс

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

Недостатъци на използването на Дженкинс

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

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

Заключение:

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