Ce este CI/CD? Integrare continuă și livrare continuă
Ce este Integrarea Continuă (CI)?
Integrare continuă este o metodă de dezvoltare software în care membrii echipei își integrează munca cel puțin o dată pe zi. În această metodă, fiecare integrare este verificată de o construcție automată pentru a detecta erorile. Acest concept a fost introdus pentru prima dată în urmă cu peste două decenii pentru a evita „iferul integrării”, care se întâmplă atunci când integrarea este amânată până la sfârșitul unui proiect.
În Integrarea continuă după o comitere a codului, software-ul este construit și testat imediat. Într-un proiect mare cu mulți dezvoltatori, commit-urile sunt făcute de mai multe ori pe parcursul unei zile. Cu fiecare commit, codul este construit și testat. Dacă testul este trecut, build-ul este testat pentru implementare. Dacă implementarea este un succes, codul este trimis în producție. Această comitere, construire, testare și implementare este un proces continuu și, de aici, denumirea de integrare/implementare continuă.
Ce este livrarea continuă (CD)?
Livrarea continuă este o metodă de inginerie software în care o echipă dezvoltă produse software într-un ciclu scurt. Acesta asigură că software-ul poate fi lansat cu ușurință în orice moment. Scopul principal al livrării continue este de a construi, testa și lansa software cu viteză și frecvență bune. Vă ajută să reduceți costurile, timpul și riscul de a aduce modificări, permițând actualizări frecvente în producție.
Care este diferența dintre CI și CD?
Dezvoltare fără CI vs. Dezvoltare cu CI
Iată diferențele cheie între dezvoltarea folosind CI sau fără CI:
| Dezvoltare fără CI | Dezvoltare cu CI |
|---|---|
| O mulțime de bug-uri | Mai puține bug-uri |
| Comite rare | Comite regulate |
| Eliberări rare și lente | Lansări regulate de lucru |
| Integrare dificilă | Integrare ușoară și eficientă |
| Testarea are loc târziu | Testarea de integrare continuă are loc devreme și des. |
| Problemele ridicate sunt mai greu de rezolvat | Găsiți și rezolvați problemele mai rapid și mai eficient. |
| Vizibilitatea slabă a proiectului | O mai bună vizibilitate a proiectului |
Diferența dintre compilare și integrare continuă

În timp ce compilarea compila doar un cod, CI face următoarele activități
Integrarea DB
- Asigurați-vă că DB și codul sunt sincronizate
- Crearea automată a DB și a datelor de testare.
Inspecție cod
- Asigură o bază de cod sănătoasă
- Identifică problemele devreme și aplică cele mai bune practici
Implementare automată
- Vă permite să lansați produsul oricând
- Stare demoabilă în mod continuu și funcționează pe orice mașină
Generarea documentelor
- Asigurați-vă că documentația este actualizată
- Îndepărtează arsurile din dezvoltator
- Produce rapoarte și valori de construcție
Compilation
Compilarea este procesul pe care computerul îl face pentru a converti un cod de limbaj de programare de nivel înalt într-un limbaj de mașină pe care computerul îl poate înțelege. Acesta asigură un compilator de cod pe fiecare platformă țintă.
Când construiesc?
- La fiecare check-in
- De fiecare dată când se schimbă o dependență
Ce pași sunt în integrare continuă?

- În mod ideal, construcția ar trebui să provină din linia de comandă și să nu depindă de un mediu de dezvoltare integrat (IDE).
- Construirea ar trebui să aibă loc continuu folosind un server Cl dedicat, nu un job cron.
- CI construit ar trebui să fie declanșat la fiecare check-in și nu doar la miezul nopții
- Compilarea ar trebui să ofere feedback imediat și să nu necesite efort de dezvoltator
- Identificați valorile cheie și urmăriți-le vizual. Mai important, acționează imediat asupra lor
De ce aveți nevoie pentru a desfășura procesul CI?
Iată elementele cheie de care aveți nevoie pentru a efectua întregul proces CI:
- Sistemul de control al versiunilor (VCS): Oferă o metodă fiabilă de a centraliza și de a păstra modificările aduse proiectului dvs. în timp.
- Mașină virtuală: Ar trebui să aveți un server de rezervă sau cel puțin unul mașină virtuală pentru a vă construi sistemul.
- Soluții de instrumente CI găzduite: Pentru a evita serverele sau mașinile virtuale, ar trebui să alegeți soluții de instrumente CI găzduite. Acest instrument ajută la întreținerea întregului proces și oferă o scalabilitate mai ușoară.
- Unelte: Dacă selectați o variantă auto-găzduită, va trebui să instalați una dintre multe Instrumente CI ca Jenkins, TeamCity, Bamboo, GitLab etc.
Cum funcționează integrarea continuă?
Cu siguranță cunoașteți vechiul telefon Nokia. Nokia obișnuia să implementeze o procedură numită nightly build. După mai multe comiteri de la diverși dezvoltatori în timpul zilei, software-ul a fost construit în fiecare noapte. Deoarece software-ul a fost construit doar o dată pe zi, este o mare durere să izolați, să identificați și să remediați erorile într-o bază de cod mare.
Later, au adoptat abordarea de Integrare Continuă. Software-ul a fost construit și testat de îndată ce un dezvoltator a comis cod. Dacă este detectată vreo eroare, dezvoltatorul respectiv poate remedia rapid defectul.

Caracteristicile CI
Iată caracteristicile și beneficiile importante ale integrării continue:
- Vă permite să mențineți doar un singur depozit sursă
- Puteți testa clona mediului de producție CI
- Mediul construit ar trebui să fie aproape de mediul de producție.
- Unul dintre avantajele integrării continue este disponibilitatea constantă a unei build curente
- Procesul complet de construire, testare și implementare ar trebui să fie vizibil pentru toți deținătorii de stive.
De ce să folosiți CI?
Iată motivele importante pentru utilizarea integrării continue:
- Vă ajută să construiți software de mai bună calitate
- Procesul CI ajută la creșterea numărului de angajați și a rezultatelor de livrare ale echipelor de inginerie.
- CI permite dezvoltatorilor de software să lucreze independent la funcții în paralel.
- Vă ajută să efectuați teste repetabile
- Creșteți vizibilitatea, permițând o comunicare mai bună
- Ajută la dezvoltarea unui produs care poate fi livrat pentru o construcție complet automatizată
- Vă ajută să reduceți riscurile, făcând implementarea mai rapidă și mai previzibilă
- feedback imediat când apare problema
- Evitați confuzia de ultim moment la data și momentul lansării
Cele mai bune practici de utilizare a CI Systems
Iată câteva bune practici importante în timpul implementării
- Se angajează devreme și se angajează Adesea nu se comite codul spart
- Remediați erorile de construcție imediat
- Acționați în funcție de valori
- Încorporați în fiecare mediu țintă Creați artefacte din fiecare construcție
- Construirea software-ului trebuie să fie realizată într-o manieră care să poată fi automatizată
- Nu depindeți de un IDE
- Construiți și testați totul când se schimbă
- Schema bazei de date contează ca totul
- Vă ajută să aflați valorile cheie și să le urmăriți vizual
- Check-in des și devreme
- Control mai puternic al codului sursă
- Integrarea continuă rulează teste unitare ori de câte ori comiteți cod
- Automatizați construirea și testați toată lumea
- Păstrați rapid construcția cu implementarea automată
Dezavantajele CI
Iată dezavantajele/dezavantajele procesului de integrare continuă:
- Timpul de configurare inițială și instruire sunt necesare pentru a vă familiariza cu serverul Cl
- Dezvoltarea unor proceduri de testare adecvate este esențială
- Suita de testare bine dezvoltată a necesitat multe resurse pentru serverul Cl
- Conversia proceselor familiare
- Necesită servere și medii suplimentare
- Timpii de așteptare pot apărea atunci când mai mulți dezvoltatori doresc să-și integreze codul aproximativ în același timp
Instrumente pentru procesul CI
Iată câteva instrumente esențiale CI/CD:
Jenkins
Jenkins este un software de integrare continuă open-source. Este scris folosind Java limbaj de programare. Facilitează testarea și raportarea în timp real asupra modificărilor izolate într-o bază de cod mai masivă. Acest software ajută dezvoltatorii să găsească și să rezolve rapid defectele din baza lor de cod și să automatizeze testarea versiunilor lor.
Bamboo
Bamboo este un server de compilare de integrare continuă care funcționează – construirea, testarea și lansarea automată într-un singur loc. Funcționează perfect cu software-ul JIRA și Bitbucket. Bamboo acceptă multe limbi și tehnologii, cum ar fi CodeDeply, Docker, Git, SVN, Mercurial, AWS și Amazon Găleți S3.
TeamCity
TeamCity este un server de integrare continuă care acceptă multe funcții puternice. Menține un server CI sănătos și stabil chiar și atunci când nu rulează nicio versiune. Oferă o calitate mai bună a codului pentru orice proiect
Rezumat
- Definiția integrării continue: integrarea continuă este o metodă de dezvoltare software în care membrii echipei își pot integra munca cel puțin o dată pe zi
- CI/CD înseamnă combinație de integrare continuă și livrare continuă sau implementare continuă.
- Dezvoltarea fără CI creează o mulțime de erori, în timp ce Dezvoltarea cu CI oferă mai puține erori
- Activitățile importante ale integrării continue sunt 1) integrarea DB, 2) inspecția codului, 3) implementarea automată, generarea documentelor și compilarea.
- Construirea ar trebui să aibă loc continuu folosind un server Cl dedicat, nu un job cron.
- Elementele importante ale CI sunt 1) Sistemul de control al versiunilor 2) Mașina virtuală 3) Soluțiile gazdă CI Tool 4) Instrumente
- Sistemul de integrare continuă vă permite să mențineți doar un singur depozit sursă
- Procesul CI/CD vă ajută să construiți software de mai bună calitate
- Cele mai importante bune practici ale Azure Procesul de integrare continuă este să se angajeze devreme și să se angajeze Adesea să nu se angajeze niciodată codul spart
- Dezavantajul major al Conducta CI/CD Procesul este că suita de testare bine dezvoltată necesita multe resurse pentru serverul Cl
- Jenkins, Bambook și Team City sunt niște AWS Continuous utile Instrumente de integrare.




