Exista o multime de informatii cu privire la integrarea continua (CI) si livrarea continua (CD). Mai multe postari pe internet încearca sa explice în termeni tehnici ce fac aceste metodologii si modul în care acestea pot ajuta o organizatie. Din pacate, în mai multe cazuri, ambele metodologii sunt de obicei asociate cu instrumente specifice sau chiar furnizori.
Integrarea continua si de livrare continua sunt ambele abordari de dezvoltare. Ele nu sunt legate de un instrument sau furnizor specific. Chiar daca exista instrumente si solutii va ajuta cu ambele (cum ar fi Codefresh ), în realitate, o companie ar putea practica CI / CD folosind scripturi doar bash si Perl (nu foarte practice).
Atunci când o echipa foloseste practici de integrare continua ... aceasta este esenta integrare continua!
- Toate caracteristicile sunt îmbinate direct în ramura principala
- Dezvoltatorii nu functioneaza în mod izolat. Toate caracteristicile sunt dezvoltate din linia principala.
- Testarea se întâmpla în mod automat, atât la nivel de caracteristica si la nivel de ramura principala.
Integrarea continua este o modalitate buna de a dezvolta software-ului, deoarece:
- Reduce numarul de surprize care apar atunci când caracteristicile sunt îmbinate.
- Rezolva problema „lucrarile pe masina mea“ .
- Perioada de testare este feliata în mai multe perioade în care fiecare caracteristica este fuzionat treptat în linia principala (în loc de totul dintr-o data).
Livrarea continua este practica de ambalare si de preparare a software-ului cât mai des posibil. Iar modul cel mai extrem de a livra este dupa fiecare îmbinare.
Dupa ce fiecare caracteristica este fuzionata la ramura ramura principala, cererea nu este testat numai pentru corectitudine, dar este, de asemenea, ambalate si desfasurat într-un mediu de testare. Toate acestea se întâmpla într-un mod complet automatizat.
Livrarea continua este un pic mai greu de a adoptat decât integrarea continua. Motivul este ca, întregul ciclu de viata al unui proiect trebuie sa fie automatizat:
- Build-urile ar trebui sa fie repetabile si deterministe.
- Toate etapele de eliberare ar trebui sa fie automatizate (acest lucru este mai greu decât pare).
- Toate fisierele de configurare si asociate ar trebui sa existe în controlul sursei (nu doar codul sursa).
- Fiecare caracteristica / eliberare ar trebui sa fie testate în mediul sau propriu de testare.
- Toate suitele de testare ar trebui sa fie automatizate si relativ rapide (de asemenea, mai greu decât pare).