Anterior, noi despre Continuous Integration (CI). Să continuăm cu Continuous Delivery. Acesta este un set de metode de dezvoltare software. Ajută la asigurarea că codul este pregătit pentru implementare.
/ Pixabay / /
Istoria
Expresia continuous delivery a fost văzută încă în din 2001, în începutul listei principiilor fundamentale: «Prioritatea este soluționarea problemelor clienților prin livrarea continuă a software-ului actualizat».
În 2010, Jez Humble și David Farley au publicat despre Continuous Delivery. Conform intenției autorilor, CD completează abordarea și permite simplificarea pregătirii codului pentru implementare.
După publicarea cărții, abordarea a început să câștige popularitate și, în doar câțiva ani, a devenit aproape global acceptată. Conform , efectuat în rândul a peste 600 de dezvoltatori și manageri IT în 2014, 97% dintre liderii tehnici și 84% dintre programatori erau familiarizați cu Continuous Delivery.
Acum această abordare rămâne una dintre cele mai populare. Conform unei cercetări din 2018, la care au participat specialiști IT din comunitatea DevOps și Jenkins Community, jumătate dintre cei mai mult de o mie de respondenți.
Cum funcționează Continuous Delivery
Baza CD-ului este pregătirea codului pentru implementare. Pentru a îndeplini această sarcină, se utilizează automatizarea procesului de pregătire a software-ului pentru lansare. Acesta trebuie să fie standardizat pentru diferite medii de dezvoltare, ceea ce ajută la identificarea rapidă a slăbiciunilor și la optimizarea acestora. De exemplu, accelerarea testării.
Un exemplu de proces Continuous Delivery arată astfel:

Dacă primele două etape sunt responsabilitatea abordării Continuous Integration, următoarele două sunt Continuous Delivery. Stabilitatea procesului este asigurată parțial prin . Acestea monitorizează modificările din infrastructură, baze de date și dependențe. Implementarea în sine poate fi Automatizată sau realizată manual.
Procesului i se impun următoarele cerințe:
- Disponibilitatea informațiilor despre pregătirea pentru a ieși în mediu de producție și pregătirea pentru lansarea imediată (instrumentele CD testează codul și oferă posibilitatea de a evalua efectul modificărilor din lansare).
- Responsabilitatea generală pentru produsul final. Echipa de produs — manageri, dezvoltatori, testeri — se gândește la rezultat, nu doar la zona sa de responsabilitate (rezultatul este o versiune de lucru, disponibilă pentru utilizatorii produsului).
În CD se aplică de obicei , iar pentru colectarea opiniei clienților — principiul . O nouă funcție este lansată mai întâi pentru un segment mic de utilizatori — experiența lor de interacțiune cu produsul ajută la identificarea defectelor și bug-urilor neobservate în timpul testării interne.
Care este avantajul
Continuous Delivery ajută la simplificarea desfășurării codului, ceea ce influențează pozitiv productivitatea și reduce riscul de epuizare emoțională a angajaților. În cele din urmă, aceasta reduce și costurile totale de dezvoltare. De exemplu, CD a ajutat una dintre echipele HP aceste cheltuieli cu 40%.
În plus, conform unui studiu din 2016 (pagina 28 ) — companiile care au implementat CD rezolvă problemele de securitate IT cu 50% mai repede, în comparație cu cele care nu utilizează această abordare. Această diferență poate fi în parte explicată prin utilizarea instrumentelor de automatizare a procesului.
Un alt avantaj — accelerarea lansărilor. În studioul de dezvoltare finlandez, livrarea continuă la creșterea vitezei de compilare a codului cu 25%.
Complexități potențiale
Prima și cea mai importantă problemă — necesitatea de a reorganiza procesele obișnuite. Pentru a demonstra beneficiile noii abordări, ar trebui să se treacă la CD treptat, începând nu cu cele mai solicitante aplicații.
A doua problemă potențială — numărul mare de ramuri de cod. O consecință a ‘ramificării’ — conflicte frecvente și pierderi repetitive de mult timp. O soluție posibilă — abordarea .
. În unele companii, dificultățile majore apar la testare — aceasta necesită prea mult timp. Rezultatele testelor sunt adesea analizate manual, dar o soluție posibilă ar putea fi paralele testării în primele etape de implementare a CD.
De asemenea, angajații ar trebui instruiți să lucreze cu noile instrumente — o informare prealabilă va economisi resurse și timp dezvoltatorilor.

/ Flickr / /
Instrumente
Să prezentăm câteva instrumente open-source pentru Continuous Delivery:
- — server pentru livrare continuă pe Java și JRuby on Rails. Permite controlul întregului proces de livrare a aplicației: build—test—release. Instrumentul este distribuit sub licența Apache 2.0. Pe site-ul oficial puteți găsi .
- — framework pentru crearea de scripturi care automatizează desfășurarea aplicațiilor pe Ruby, Java sau PHP. Capistrano poate executa comenzi pe o mașină remote, conectându-se la ea prin SSH. Lucrează cu alte instrumente de integrare și livrare continuă, cum ar fi serverul CI Integrity.
- — instrument multiplatformă care automatizează întregul ciclu de dezvoltare a aplicațiilor. Gradle funcționează cu Java, Python, C/C++, Scala etc. Există integrare cu Eclipse, IntelliJ și Jenkins.
- — platformă pentru CD scrisă în Go. Drone poate fi desfășurată on-premise sau în cloud. Instrumentul este construit pe bază de containere și folosește fișiere YAML pentru a le gestiona.
- — platformă pentru livrarea continuă a codului în sisteme multi-cloud. A fost dezvoltată la Netflix, iar inginerii Google au avut un rol semnificativ în dezvoltarea instrumentului. Instrucțiunile de instalare le .
Ce să citiți pe blogul nostru corporativ:
Sursa: habr.com
