Referință: cum funcționează procesul de integrare continuă

Astăzi ne vom uita la istoria termenului, vom discuta despre dificultățile implementării CI și vom oferi câteva instrumente populare care vă vor ajuta să lucrați cu acesta.

Referință: cum funcționează procesul de integrare continuă
/Flickr/ Altug Karakoc / CC BY / Fotografie modificată

Termen

Integrarea continuă este o abordare a dezvoltării de aplicații care implică construirea frecventă a proiectelor și testarea codului.

Scopul este de a face procesul de integrare previzibil și de a detecta potențiale erori și erori într-un stadiu incipient, astfel încât să existe mai mult timp pentru a le remedia.

Termenul de integrare continuă a apărut pentru prima dată în 1991. A fost introdus de creatorul limbajului UML Grady Butch (Grady Booch). Inginerul a introdus conceptul de CI ca parte a propriei practici de dezvoltare - Metoda Booch. A implicat o rafinare incrementală a arhitecturii la proiectarea sistemelor orientate pe obiecte. Gradi nu a descris nicio cerință pentru integrarea continuă. Dar mai târziu în cartea lui „Analiză și proiectare orientată pe obiecte cu aplicații„El a spus că scopul metodologiei este de a accelera lansarea „lansărilor interne”.

Poveste

În 1996, CI a fost adoptat de creatorii metodologiei programare extremă (XP) - Kent Beck (Kent Beck) și Ron Jeffries (Ron Jeffries). Integrarea continuă a devenit unul dintre cele douăsprezece principii cheie ale abordării lor. Fondatorii XP au clarificat cerințele pentru metodologia CI și au remarcat necesitatea de a construi proiectul de mai multe ori pe zi.

La începutul anilor 2000, unul dintre fondatorii Alianței Agile a început să promoveze metodologia de integrare continuă Martin Fowler (Martin Fowler). Experimentele sale cu CI au condus la primul instrument software din acest domeniu - CruiseControl. Utilitatea a fost creată de colegul lui Martin, Matthew Foemmel.

Ciclul de construire din instrument este implementat ca un demon care verifică periodic sistemul de control al versiunilor pentru modificări în baza de cod. Soluția poate fi descărcată astăzi - ea distribuit de sub o licență asemănătoare BSD.

Odată cu apariția software-ului pentru CI, tot mai multe companii au început să adopte această practică. Conform cercetării Forrester [pagina 5 raport], în 2009, 86% dintre cele cincizeci de companii de tehnologie chestionate au folosit sau implementat metode CI.

Astăzi, practica integrării continue este folosită de organizații dintr-o mare varietate de industrii. În 2018, un mare furnizor de cloud a realizat un sondaj în rândul specialiștilor IT din companii din sectoarele de servicii, educație și finanțe. Din cei șase mii de respondenți, 58% au spus că folosesc instrumente și principii CI în munca lor.

Cum funcționează

Integrarea continuă se bazează pe două instrumente: un sistem de control al versiunilor și un server CI. Acesta din urmă poate fi fie un dispozitiv fizic, fie o mașină virtuală într-un mediu cloud. Dezvoltatorii încarcă cod nou o dată sau de mai multe ori pe zi. Serverul CI îl copiază automat cu toate dependențele și îl construiește. Ulterior, rulează teste de integrare și unitate. Dacă testele trec cu succes, sistemul CI implementează codul.

Diagrama generală a procesului poate fi reprezentată după cum urmează:

Referință: cum funcționează procesul de integrare continuă

Metodologia CI impune dezvoltatorilor o serie de cerințe:

  • Corectați imediat problemele. Acest principiu a venit la CI din programarea extremă. Remedierea erorilor este cea mai mare prioritate a dezvoltatorilor.
  • Automatizați procesele. Dezvoltatorii și managerii trebuie să caute constant blocajele în procesul de integrare și să le elimine. De exemplu, există adesea un blocaj în integrare se pare testarea.
  • Efectuați adunările cât mai des posibil. O dată pe zi pentru a sincroniza munca echipei.

Dificultăți de implementare

Prima problemă este costurile mari de operare. Chiar dacă o companie folosește instrumente CI deschise (despre care vom vorbi mai târziu), va trebui totuși să cheltuiască bani pentru suport pentru infrastructură. Cu toate acestea, tehnologiile cloud pot fi soluția.

Ele simplifică asamblarea configurațiilor computerelor la scară diferită. Plus de companie a plati numai pentru resursele utilizate, ceea ce ajută la economisirea infrastructurii.

Conform sondajelor [pagina 14 articole], integrarea continuă mărește sarcina asupra angajaților companiei (cel puțin la început). Ei trebuie să învețe instrumente noi, iar colegii nu întotdeauna ajută la antrenament. Prin urmare, trebuie să faceți față cu noi cadre și servicii din mers.

A treia dificultate este problemele cu automatizarea. Organizațiile cu o cantitate mare de cod vechi care nu este acoperit de teste automate se confruntă cu această problemă. Acest lucru duce la faptul că codul este pur și simplu rescris înainte de implementarea completă a CI.

Referință: cum funcționează procesul de integrare continuă
/Flickr/ theilr / CC BY-SA

Cine folosește

Giganții IT au fost printre primii care au apreciat beneficiile metodologiei. Google utilizări integrare continuă de la mijlocul anilor 2000. CI a fost implementat pentru a rezolva problema întârzierilor în motorul de căutare. Integrarea continuă a ajutat la detectarea și rezolvarea rapidă a problemelor. Acum CI este folosit de toate departamentele gigantului IT.

Integrarea continuă ajută, de asemenea, companiile mici, iar instrumentele CI sunt folosite și de organizațiile financiare și de sănătate. De exemplu, la Morningstar, serviciile de integrare continuă au ajutat la corectarea vulnerabilităților cu 70% mai rapid. Și platforma medicală Philips Healthcare a reușit să dubleze viteza actualizărilor de testare.

Instrumente

Iată câteva instrumente populare pentru CI:

  • Jenkins este unul dintre cele mai populare sisteme CI. Acceptă mai mult de o mie de plugin-uri pentru integrarea cu diverse VCS, platforme cloud și alte servicii. De asemenea, folosim Jenkins la 1cloud: tool incluse în sistemul nostru DevOps. El verifică în mod regulat ramura Git destinată testării.
  • Buildbot — un cadru python pentru scrierea propriilor procese de integrare continuă. Configurarea inițială a instrumentului este destul de complicată, dar acest lucru este compensat de opțiunile largi de personalizare. Printre avantajele cadrului, utilizatorii evidențiază intensitatea redusă a resurselor acestuia.
  • Concours CI este un server de la Pivotal care folosește containere Docker. Concourse CI se integrează cu orice instrumente și sisteme de control al versiunilor. Dezvoltatorii observă că sistemul este potrivit pentru lucru în companii de orice dimensiune.
  • Gitlab CI este un instrument integrat în sistemul de control al versiunilor GitLab. Serviciul rulează în cloud și utilizează fișiere YAML pentru configurare. La fel ca Concourse, Gitlab CI se aplică Containere Docker care ajută la izolarea diferitelor procese unele de altele.
  • Codificare este un server CI cloud care funcționează cu GitHub, GitLab și BitBucket. Platforma nu necesită o configurare inițială lungă - procesele standard preinstalate CI sunt disponibile în Codeship. Pentru proiecte mici (până la 100 de versiuni pe lună) și open source, Codeship este disponibil gratuit.

Materiale de pe blogul nostru corporativ:

Sursa: www.habr.com

Adauga un comentariu