Continuous Delivery

Un proces de dezvoltare software pentru introducerea codurilor în producție rapid și în siguranță.

Livrarea continuă este procesul de dezvoltare software pentru a obține modificări de cod în producție rapid, în siguranță și cu o calitate superioară, de obicei folosind instrumente pentru automatizarea implementărilor. Echipele de ingineri fac schimbări software-ului lor în cicluri scurte, astfel încât să poată fi testat și lansat mai frecvent. Această abordare permite modificări incrementale, cu costuri și riscuri mai mici. Abordarea a fost popularizată pentru prima dată de Jez Humble și David Farley în cartea lor, Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation.

Avantajele livrării continue
Mai jos sunt principalele avantaje pentru o conductă de livrare continuă în cloud.

Viteza pe piață

Condițiile pieței se află într-o stare perpetuă de schimbare constantă pe măsură ce comportamentul consumatorului se schimbă. Produsele pot prinde brusc sau, la fel de brusc, pot scădea. În același timp, progresele tehnologice pot afecta, de asemenea, necesitatea de a elibera modificări mai rapid utilizatorilor finali. Pentru a răspunde schimbărilor imprevizibile ale pieței și ale tehnologiei, este mai rapid pentru ingineri să lanseze software utilizând livrarea continuă.

Risc mai mic

Când modificările incrementale sunt eliberate mai frecvent, erorile pot fi identificate și corectate mai devreme în procesul de dezvoltare. De asemenea, este mai ușor să reveniți la modificări mai mici atunci când este necesar și ajută la prevenirea pătrunderii modificărilor neintenționate în mediul de producție prin controlul versiunilor și utilizarea unui mediu intermediar. Folosirea testelor automate, precum și testele de rupere în teste unitare mai mici sunt alte bune practici DevOps care reduc timpul de nefuncționare.

Coordonarea și comunicarea între echipe

Cu livrarea continuă, echipele împart responsabilitatea pentru livrarea de software. Acest lucru descompune silozurile dintre grupuri sau departamente și elimină imprevizibilitatea și stresul de la lansarea software-ului. Implementarea lansărilor mai frecvente este un proces care face ca echipa să lucreze într-un ritm regulat și previzibil.

Cicl de învățare mai rapid

Lansarea mai rapidă a noilor funcții pe piață înseamnă feedback mai rapid din timp de la clienții dvs. Acest proces de lansare vă permite să învățați de la clienții dvs. punând software-ul de lucru în mâinile lor mai devreme, să încorporați feedback-ul lor și să faceți ajustări la produsul dvs. pentru a-l îmbunătăți.

Livrare continuă și DevOps
Termenii „DevOps” sunt o combinație de „dezvoltare” și „operațiuni”, denotând colaborarea dintre cei doi. DevOps împărtășește obiective și trăsături comune cu o livrare continuă. Fiecare oferă mici modificări, se bazează pe colaborare și coordonare între echipe și împărtășește un obiectiv comun de a face timp mai rapid pe piață.

Pentru a clarifica diferența dintre cele două, DevOps este metodologia pentru a ajuta companiile să construiască și să lanseze software. Practica care pune accentul pe colaborarea și coordonarea dintre dezvoltatorii de software și alte departamente din companie. DevOps creează un mediu în care software-ul poate fi dezvoltat, testat și lansat rapid și fiabil.

Vă puteți gândi la DevOps ca la forța și filosofia mai mari din spatele serviciului, în timp ce livrarea continuă este procesul care îl oferă în cloud.

Livrare continuă vs integrare continuă
În dezvoltarea software-ului tradițional, procesul de integrare are loc la sfârșitul unui proiect după ce fiecare persoană își termină munca. Acest proces poate dura mult timp și poate fi frustrant pentru toți cei implicați.

Integrarea continuă este o practică de dezvoltare software care mută faza de integrare în ciclul de dezvoltare, astfel încât dezvoltarea, testarea și integrarea codului să aibă loc cu o frecvență mai mare. Echipa de dezvoltare combină modificările de cod într-un depozit central partajat de mai multe ori pe zi pentru a lansa o versiune de produs în orice moment. Acest lucru necesită un proces de integrare reproductibil și automat.

Livrare continuă vs implementare continuă
În practica desfășurării continue, toate modificările software-ului care trec testarea merg automat în producție. Pentru a crea o conductă de implementare continuă, compania dvs. trebuie să ajungă mai întâi la livrare continuă.

Implementarea continuă poate fi considerată o extensie a integrării continue, cu scopul de a minimiza intervalul de timp dintre scrierea unui nou cod și noul cod utilizat în baza codului de producție.

Pentru a realiza o desfășurare continuă, echipa de dezvoltare se bazează pe un proces riguros care automatizează diferiții pași care duc la implementare. După ce fiecare integrare îndeplinește criteriile de lansare, aplicația live este actualizată cu un nou cod și se poate realiza o implementare de producție.

Dezvoltare agilă și livrare continuă
Dezvoltarea software agilă deține un set de valori și principii prin care cerințele și soluțiile evoluează prin colaborarea în echipă. Acesta cuprinde planificarea adaptivă, livrarea timpurie, îmbunătățirea continuă și răspunsul flexibil la schimbare. În mod agil, nu există un interval de timp stabilit pentru fiecare lansare, dar ideea este că acestea apar frecvent: poate la fiecare câteva săptămâni sau la câteva luni, cu o preferință pentru cea mai scurtă dintre cele două.

În evoluția proceselor de livrare a software-ului, dezvoltarea agilă a precedat livrarea continuă.

Livrarea continuă este un subset de agilități în care echipa își păstrează software-ul gata de lansare în orice moment al dezvoltării. Este vorba mai mult despre dezvoltarea în așa fel încât software-ul să fie întotdeauna gata de lansare - continuu.

Livrare continuă și testare A / B
Experimentarea și gestionarea caracteristicilor trebuie să funcționeze mână în mână. Experimentarea este o modalitate importantă pentru compania dvs. de a valida idei înainte de a lansa noi produse, caracteristici și experiențe pentru toți vizitatorii. Cu echipele de dezvoltare care utilizează integrarea continuă și procesul de livrare continuă, semnalizatoarele de caracteristici care controlează lansarea de noi experiențe pot atenua riscul de a lansa ceva nedovedit pentru toată lumea în același timp.