3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

Implementarea continuă este o abordare specială în dezvoltarea de software, care este utilizată pentru a implementa rapid, sigur și eficient diferite funcții în software.

Ideea principală este de a crea un proces automatizat de încredere, care să permită dezvoltatorului să livreze rapid produsul finit utilizatorului. În același timp, se fac modificări constante în producție - aceasta se numește conductă de livrare continuă (CD Pipeline).

Skillbox recomandă: Curs practic „Dezvoltator mobil PRO”.

Amintim: pentru toți cititorii „Habr” - o reducere de 10 de ruble la înscrierea la orice curs Skillbox folosind codul promoțional „Habr”.

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

Pentru a controla fluxul, puteți utiliza o gamă largă de instrumente, inclusiv atât plătite, cât și complet gratuite. Acest articol descrie trei dintre cele mai populare soluții în rândul dezvoltatorilor care pot fi utile oricărui programator.

Jenkins

Server de automatizare open source complet autonom. Merită să lucrați pentru a automatiza tot felul de sarcini legate de construirea, testarea, livrarea sau implementarea software-ului.

Cerințe minime pentru PC:

  • 256 MB RAM, 1 GB spațiu pentru fișiere.

Optimal:

  • 1 GB RAM, 50 GB hard disk.

Pentru a funcționa, veți avea nevoie și de software suplimentar - Java Runtime Environment (JRE) versiunea 8.

Arhitectura (computing distribuit) arată astfel:
3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

Jenkins Server este o instalare care este responsabilă pentru găzduirea GUI, precum și pentru organizarea și executarea întregii versiuni.

Jenkins Node/Slave/Build Server - dispozitive care pot fi configurate pentru a efectua lucrări de construcție în numele Master (nodul principal).

Instalare pentru Linux

Mai întâi trebuie să adăugați depozitul Jenkins la sistem:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable binar/' | sudo tee -a /etc/apt/sources.list.d/je

Actualizați depozitul de pachete:

sudo apt update

Instalați Jenkins:

sudo apt install jenkins

După aceasta, Jenkins va fi disponibil în sistem prin portul implicit 8080.

Pentru a verifica funcționalitatea, trebuie să deschideți adresa în browser localhost:8080. Apoi, sistemul vă va solicita să introduceți parola inițială pentru utilizatorul root. Această parolă se află în fișierul /var/lib/jenkins/secrets/initialAdminPassword.

Acum totul este gata, puteți începe să creați fluxuri CI/CD. Interfața grafică a bancului de lucru arată astfel:

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

Puncte forte ale lui Jenkins:

  • scalabilitate oferită de arhitectura Master/Slave;
  • disponibilitatea REST XML/JSON API;
  • capacitatea de a conecta un număr mare de extensii datorită pluginurilor;
  • comunitate activă și în continuă evoluție.

Contra:

  • nu există bloc analitic;
  • interfață nu foarte ușor de utilizat.

TeamCity

Dezvoltare comercială de la JetBrains. Serverul este bun, cu o configurare simplă și o interfață excelentă. Configurația implicită are un număr mare de funcții, iar numărul de pluginuri disponibile este în continuă creștere.

Necesită Java Runtime Environment (JRE) versiunea 8.

Cerințele hardware ale serverului nu sunt critice:

  • RAM - 3,2 GB;
  • procesor - dual-core, 3,2 GHz;
  • canal de comunicare cu o capacitate de 1 Gb/s.

Serverul vă permite să obțineți performanțe ridicate:

  • 60 de proiecte cu 300 de configurații de construcție;
  • Alocare de 2 MB pentru jurnalul de construcție;
  • 50 de agenți de construcție;
  • capacitatea de a lucra cu 50 de utilizatori în versiunea web și 30 de utilizatori în IDE;
  • 100 de conexiuni de VCS extern, de obicei Perforce și Subversion. Timpul mediu de schimbare este de 120 de secunde;
  • peste 150 de modificări pe zi;
  • lucrul cu baza de date pe un server;
  • Setările procesului serverului JVM: -Xmx1100m -XX:MaxPermSize=120m.

Cerințele agentului se bazează pe rularea ansamblurilor. Sarcina principală a serverului este să monitorizeze toți agenții conectați și să distribuie ansamblurile din coadă acestor agenți pe baza cerințelor de compatibilitate, raportând rezultatele. Agenții vin într-o varietate de platforme și sisteme de operare, plus un mediu preconfigurat.

Toate informațiile despre rezultatele construcției sunt stocate în baza de date. În primul rând, acesta este istoric și alte date similare, modificări VCS, agenți, cozi de construire, conturi de utilizator și permisiuni. Baza de date nu include doar jurnalele de construcție și artefacte.

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

Instalare pentru Linux

Pentru a instala manual TeamCity cu un container de servlet Tomcat, ar trebui să utilizați arhiva TeamCity: TeamCity .tar.gz. Descarca il poti lua de aici.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [pornire|oprire]

Când începeți pentru prima dată, trebuie să selectați tipul de bază de date în care vor fi stocate datele ansamblului.

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

Configurația implicită rulează localhost:8111/ cu un agent de compilare înregistrat care rulează pe același computer.

Punctele forte ale TeamCity:

  • configurare ușoară;
  • interfață ușor de utilizat;
  • un număr mare de funcții încorporate;
  • Serviciu suport;
  • există un API RESTful;
  • documentare bună;
  • securitate bună.

Contra:

  • integrare limitată;
  • Acesta este un instrument plătit;
  • o comunitate mică (care, totuși, este în creștere).

GoCD

Un proiect open source care necesită Java Runtime Environment (JRE) versiunea 8 pentru instalare și operare.

Cerințe de sistem:

  • RAM - 1 GB minim, mai mult este mai bine;
  • procesor - dual-core, cu o frecvență de nucleu de 2 GHz;
  • hard disk - cel puțin 1 GB spațiu liber.

Agent:

  • RAM - cel puțin 128 MB, mai mult este mai bine;
  • procesor - cel puțin 2 GHz.

Serverul asigură funcționarea agenților și oferă o interfață convenabilă pentru utilizator:

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

Etape/Locuri de muncă/Sarcini:

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

Instalare pentru Linux

ecou "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

răsuci download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-repository ppa:openjdk-r/ppa

apt-get update

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

/etc/init.d/go-server [start|stop|stop|restart]

/etc/init.d/go-agent [start|stop|stop|restart]

În mod implicit, GoCd rulează localhost: 8153.

Punctele forte ale GoCd:

  • sursa deschisa;
  • instalare și configurare simplă;
  • documentare bună;

  • Interfață de utilizator excelentă:

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

  • capacitatea de a afișa pas cu pas calea de implementare a GoCD într-o singură vizualizare:

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

  • afișare excelentă a structurii conductei:

3 instrumente populare pentru organizarea implementării continue (Deployment continuu)

  • GoCD optimizează fluxul de lucru CD în cele mai populare medii cloud, inclusiv Docker, AWS;
  • instrumentul face posibilă corectarea problemelor în curs, pentru care există urmărirea fiecărei modificări de la commit la implementare în timp real.

Contra:

  • este necesar cel puțin un agent;
  • nu există nicio consolă pentru a afișa toate sarcinile finalizate;
  • pentru a executa fiecare comandă, trebuie să creați o sarcină pentru configurația conductei;
  • Pentru a instala pluginul trebuie să mutați fișierul .jar în /plugins/external și reporniți serverul;
  • comunitate relativ mică.

Drept concluzie

Acestea sunt doar trei instrumente, de fapt sunt multe altele. Este dificil de ales, așa că cu siguranță trebuie să acordați atenție aspectelor suplimentare.

Codul open source al instrumentului face posibil să înțelegem ce este, plus adăugarea de noi funcții mai rapid. Dar dacă ceva nu funcționează, atunci trebuie să te bazezi doar pe tine și pe ajutorul comunității. Instrumentele plătite oferă suport care poate fi uneori critic.

Dacă securitatea este prioritatea ta principală, merită să lucrezi cu un instrument local. Dacă nu, atunci alegerea unei soluții SaaS este o opțiune bună.

Și, în sfârșit, pentru a asigura un proces de implementare continuă cu adevărat eficient, trebuie să formulați criterii ale căror specificități vă vor permite să restrângeți gama de instrumente disponibile.

Skillbox recomandă:

Sursa: www.habr.com

Adauga un comentariu