Ce este Jenkins? Instrument de integrare continuă (CI)

Cuprins:

Anonim

Ce este Jenkins?

Jenkins este un server de integrare continuă open source capabil să orchestreze un lanț de acțiuni care ajută la realizarea procesului de integrare continuă (și nu numai) într-un mod automat.

Jenkins este gratuit și este scris în întregime în Java. Jenkins este o aplicație utilizată pe scară largă în întreaga lume, care are în jur de 300k instalații și crește zi de zi.

Este o aplicație bazată pe server și necesită un server web precum Apache Tomcat. Motivul pentru care Jenkins a devenit atât de popular este acela al monitorizării sarcinilor repetate care apar în timpul dezvoltării unui proiect. De exemplu, dacă echipa dvs. dezvoltă un proiect, Jenkins vă va testa continuu construcțiile și vă va arăta erorile în primele etape ale dezvoltării.

Prin utilizarea Jenkins, companiile de software își pot accelera procesul de dezvoltare software, deoarece Jenkins poate automatiza construcția și testarea într-un ritm rapid. Jenkins susține ciclul de viață complet al dezvoltării software-ului, de la construirea, testarea, documentarea software-ului, implementarea și alte etape ale ciclului de viață al dezvoltării software-ului.

În acest tutorial, veți învăța

  • Ce este Jenkins?
  • Ce este integrarea continuă?
  • Istoria Jenkin
  • De ce să folosim integrarea continuă cu Jenkins?
  • Studiu de caz din lumea reală a integrării continue
  • Avantajele utilizării Jenkins
  • Dezavantaje ale utilizării Jenkins

Ce este integrarea continuă?

În Integrare continuă după o confirmare de cod, software-ul este construit și testat imediat. Într-un proiect mare cu mulți dezvoltatori, angajamentele sunt făcute de multe ori pe parcursul unei zile. Cu fiecare cod de comitere este construit și testat. Dacă testul este trecut, compilarea este testată pentru implementare. Dacă implementarea este un succes, codul este împins la producție. Acest commit, build, test și implementare este un proces continuu și, de aici, denumirea integrare / implementare continuă.

O conductă de integrare continuă este un instrument puternic care constă dintr-un set de instrumente concepute pentru a găzdui , monitoriza , compila și testa codul sau modificări de cod, cum ar fi:

  • Server de integrare continuă (Jenkins, Bamboo, CruiseControl, TeamCity și altele)
  • Instrument de control sursă (de exemplu, CVS, SVN, GIT, Mercurial, Perforce, ClearCase și altele)
  • Instrument de construire (Make, ANT, Maven, Ivy, Gradle și altele)
  • Cadrul de testare a automatizării (Selenium, Appium, TestComplete, UFT și altele)

Istoria Jenkin

  • Kohsuke Kawaguchi, un dezvoltator Java, care lucra la SUN Microsystems, s-a săturat să construiască codul și să remedieze erorile în mod repetat. În 2004, a creat un server de automatizare numit Hudson care automatizează construirea și testarea sarcinilor.
  • În 2011, Oracle, care deținea Sun Microsystems, a avut o dispută cu comunitatea open source Hudson, așa că l-au furcat pe Hudson și l-au redenumit Jenkins.
  • Atât Hudson, cât și Jenkins au continuat să funcționeze independent. Dar într-un interval scurt de timp, Jenkins a achiziționat o mulțime de proiecte și colaboratori, în timp ce Hudson a rămas cu doar 32 de proiecte. Cu timpul, Jenkins a devenit mai popular, iar Hudson nu mai este întreținut.

De ce să folosim integrarea continuă cu Jenkins?

Unii oameni ar putea crede că modul vechi de dezvoltare a software-ului este cel mai bun mod. Să înțelegem avantajele CI cu Jenkins cu următorul exemplu

Să ne imaginăm că există în jur de 10 dezvoltatori care lucrează la un depozit partajat. Unii dezvoltatori își finalizează sarcina în 25 de zile, în timp ce alții au nevoie de 30 de zile pentru finalizare.

Înaintea lui Jenkins După Jenkins
Odată ce toți dezvoltatorii și-au finalizat sarcinile de codificare atribuite, obișnuiau să își angajeze codul în același timp. Mai târziu, Build este testat și implementat. Comitetul de cod a fost construit, iar ciclul de testare a fost foarte rar și s-a făcut o singură construire după multe zile. Codul este construit și testat de îndată ce dezvoltatorul comite codul. Jenkin va construi și testa codul de multe ori pe parcursul zilei Dacă construirea are succes, atunci Jenkins va implementa sursa în serverul de testare și notifică echipa de implementare. Dacă versiunea nu reușește, atunci Jenkins va notifica erorile echipei de dezvoltatori.
Deoarece codul a fost construit dintr-o dată, unii dezvoltatori ar trebui să aștepte până când alți dezvoltatori vor termina codificarea pentru a-și verifica versiunea Codul este construit imediat după ce unul dintre dezvoltatori se angajează.
Nu este o sarcină ușoară izolarea, detectarea și remedierea erorilor pentru mai multe comiteri. Deoarece codul este construit după fiecare comitere a unui singur dezvoltator, este ușor să detectați al cui cod a cauzat eșecul construirii
Construirea codului și procesul de testare sunt în întregime manuale, deci există o mulțime de șanse de eșec. Procesul automat de construcție și testare economisește calendarul și reduce defectele.
Codul este implementat odată ce toate erorile sunt remediate și testate. Codul este implementat după fiecare construire și test cu succes.
Ciclul de dezvoltare este lent Ciclul de dezvoltare este rapid. Funcțiile noi sunt mai ușor disponibile pentru utilizatori. Crește profiturile.

Studiu de caz din lumea reală a integrării continue

Sunt sigur că toți știți de vechiul telefon Nokia. Nokia obișnuia să implementeze o procedură numită construcție nocturnă. După mai multe comisii de la diverse dezvoltatori în timpul zilei, software-ul construit în fiecare noapte. Deoarece software-ul a fost construit o singură dată pe zi, este foarte greu să izolezi, să identifici și să remediezi erorile dintr-o bază de cod mare.

Ulterior, au adoptat abordarea integrării continue. Software-ul a fost construit și testat imediat ce un dezvoltator a angajat codul. Dacă este detectată vreo eroare, dezvoltatorul respectiv poate remedia rapid defectul.

Pluginuri Jenkins

În mod implicit, Jenkins vine cu un set limitat de caracteristici. Dacă doriți să vă integrați instalarea Jenkins cu instrumentele de control al versiunilor precum Git, atunci trebuie să instalați pluginuri legate de Git. De fapt, pentru integrarea cu instrumente precum Maven, Amazon EC2, trebuie să instalați pluginurile respective în Jenkins.

Integrarea pluginurilor în Jenkins

Avantajele utilizării Jenkins

  • Jenkins este gestionat de comunitate, care este foarte deschisă. În fiecare lună, ei organizează întâlniri publice și primesc contribuții din partea publicului pentru dezvoltarea proiectului Jenkins.
  • Până în prezent, aproximativ 280 de bilete sunt închise, iar proiectul publică o lansare stabilă la fiecare trei luni.
  • Pe măsură ce tehnologia crește, crește și Jenkins. Până în prezent, Jenkins are în jur de 320 de pluginuri publicate în baza sa de date. Cu pluginuri, Jenkins devine și mai puternic și bogat în funcții.
  • Jenkins acceptă, de asemenea, arhitectura bazată pe cloud, astfel încât să puteți implementa Jenkins pe platforme bazate pe cloud.
  • Motivul pentru care Jenkins a devenit popular este că a fost creat de un dezvoltator pentru dezvoltatori.

Dezavantaje ale utilizării Jenkins

Deși Jenkins este un instrument foarte puternic, are defectele sale.

  • Interfața sa este depășită și nu este ușor de utilizat în comparație cu tendințele curente ale interfeței de utilizare.
  • Deși Jenkins este iubit de mulți dezvoltatori, nu este atât de ușor să îl întrețineți, deoarece Jenkins rulează pe un server și necesită anumite abilități ca administrator de server pentru a-și monitoriza activitatea.
  • Unul dintre motivele pentru care mulți oameni nu implementează Jenkins se datorează dificultății sale în instalarea și configurarea Jenkins.
  • Integrările continue se întrerup regulat din cauza unor mici modificări ale setărilor. Integrarea continuă va fi întreruptă și, prin urmare, necesită o anumită atenție a dezvoltatorului.

Concluzie:

  • În Integrare continuă, după o comitere de cod, software-ul este construit și testat imediat
  • Jenkins este un server de integrare continuă open source capabil să orchestreze un lanț de acțiuni
  • Înainte de Jenkins, când toți dezvoltatorii își îndepliniseră sarcinile de codificare atribuite, obișnuiau să își angajeze codul în același timp. Mai târziu, Build este testat și implementat.
  • După Jenkins, codul este construit și testat imediat ce dezvoltatorul comite codul. Jenkin va construi și testa codul de multe ori pe parcursul zilei
  • În mod implicit, Jenkins vine cu un set limitat de caracteristici. Dacă doriți să vă integrați instalarea Jenkins cu instrumentele de control al versiunilor precum Git, atunci trebuie să instalați pluginuri legate de Git
  • Cel mai mare avantaj al lui Jenkins este că este administrat de comunitatea care organizează întâlniri publice și primește contribuții din partea publicului pentru dezvoltarea proiectelor Jenkins.
  • Cel mai mare con al lui Jenkin este că interfața sa este depășită și nu este ușor de utilizat în comparație cu tendințele actuale ale interfeței de utilizare.