3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

Dezvoltarea Continuă (Continuous Deployment) este o abordare specifică în dezvoltarea de software, care se aplică pentru implementarea rapidă, sigură și eficientă a diferitelor funcții în software.

Ideea principală este crearea unui proces automatizat și de încredere, care să permită dezvoltatorului să ofere rapid utilizatorului un produs finalizat. Aceasta implică modificări continue în producție — ceea ce se numește un pipeline de livrare continuă (CD Pipeline).

Skillbox recomandă: Curs practic «Dezvoltator mobil PRO».

Vă reamintim: pentru toți cititorii „Habr” — reducere de 10.000 de ruble la înscrierea la orice curs Skillbox cu codul de promovare „Habr”.

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

Pentru gestionarea fluxului pot fi utilizate o gamă largă de instrumente, atât plătite, cât și complet gratuite. În acest articol sunt prezentate trei dintre cele mai populare soluții pentru dezvoltatori, care ar putea fi utile fiecărui programator.

Jenkins

Un server de automatizare complet autonom cu sursă deschisă. Este recomandat pentru automatizarea tuturor tipurilor de sarcini legate de compilare, testare, livrare sau desfășurare de software.

Cerințe minime pentru PC:

  • 256 MB RAM, 1 GB spațiu pe disk.

Optimal:

  • 1 GB RAM, 50 GB pe hard disk.

De asemenea, va fi necesar un software suplimentar — Java Runtime Environment (JRE) versiunea 8.

Arhitectura (calcul distribuit) arată astfel:
3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

Jenkins Server — instalarea care este responsabilă pentru găzduirea GUI, precum și organizarea și executarea întregului proces de compilare.

Jenkins Node/Slave/Build Server — dispozitive care pot fi configurate pentru a efectua sarcini de compilare în numele Master (nodul principal).

Instalare pentru Linux

Mai întâi trebuie să adăugați depozitul Jenkins în 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 binary/' | 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 pe portul implicit 8080.

Pentru a verifica funcționalitatea, trebuie să deschideți în browser adresa localhost:8080. Apoi sistemul va solicita introducerea parolei inițiale a utilizatorului cu privilegii de root. Această parolă se află în fișierul /var/lib/jenkins/secrets/initialAdminPassword.

Acum totul este pregătit pentru a lucra, putem începe să creăm fluxuri CI/CD. Interfața grafică a mediului de lucru arată astfel:

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

Punctele forte ale Jenkins:

  • scalabilitate, asigurată de arhitectura Master/Slave;
  • disponibilitatea API REST XML/JSON;
  • posibilitatea de a conecta un mare număr de extensii prin plugin-uri;
  • o comunitate activă și în continuă expansiune.

Dezavantaje:

  • lipsa unui bloc analitic;
  • interfață nu foarte prietenoasă.

TeamCity

Dezvoltare comercială de la JetBrains. Serverul are o configurare simplă și o interfață excelentă. În configurația default există un număr mare de funcții, numărul plugin-urilor disponibile este în continuă creștere.

Este necesar Java Runtime Environment (JRE) versiunea 8 pentru funcționare.

Cerințele hardware ale serverului nu sunt critice:

  • RAM — 3,2 GB;
  • procesor — dual-core, 3,2 GHz;
  • lățimea de bandă de 1 Gb/s.

Serverul permite atingerea unui nivel ridicat de performanță:

  • 60 proiecte cu 300 de configurații de compilare;
  • alocarea a 2 MB pentru jurnalul de compilare;
  • 50 agenți de compilare;
  • posibilitatea de a lucra cu 50 de utilizatori în versiunile web și 30 de utilizatori în IDE;
  • 100 conexiuni externe la SCM, de obicei Perforce și Subversion. Timpul mediu de schimbare — 120 de secunde;
  • peste 150 de modificări pe zi;
  • lucrul cu baza de date pe un singur server;
  • setările procesului de server JVM: -Xmx1100m -XX:MaxPermSize=120m.

Cerințele pentru agent sunt determinante de compilările active. Principala sarcină a serverului este de a monitoriza toți agenții conectați și de a distribui compilările din coadă acestora în funcție de cerințele de compatibilitate, comunicând rezultatele. Agenții au platforme și sisteme de operare diferite, plus un mediu preconfigurat.

Toate informațiile despre rezultatele compilării sunt stocate în baza de date. Aceasta include în primul rând istoricul și alte date asemănătoare, schimbările VCS, agenții, cozile de compilare, conturile și permisiunile utilizatorilor. În baza de date nu sunt incluse doar jurnalele de compilare și artefactele.

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

Instalare pentru Linux

Pentru instalarea manuală a TeamCity cu containerul Servlet Tomcat, trebuie să folosiți arhiva TeamCity: TeamCity .tar.gz. Descarcă de aici.

tar -xfz TeamCity.tar.gz

/bin /runAll. sh [start|stop]

La prima pornire, trebuie să selectați tipul de bază de date în care vor fi stocate datele despre compilare.

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

Configurarea default funcționează pe localhost:8111/ cu un singur agent de compilare înregistrat, care rulează pe același PC.

Punctele forte ale TeamCity:

  • configurare simplă;
  • interfață prietenoasă;
  • un număr mare de funcții integrate;
  • serviciu de suport;
  • disponibilitate API RESTful;
  • documentație decentă;
  • securitate bună.

Dezavantaje:

  • integrări limitate;
  • este un instrument plătit;
  • o comunitate mică (care, de altfel, este în creștere).

GoCD

Proiect open source, pentru instalarea și funcționarea căruia este necesar Java Runtime Environment (JRE) versiunea 8.

Cerințe de sistem:

  • RAM — 1 GB minimum, mai bine mai mult;
  • procesor — dual-core, cu frecvența de lucru a nucleului de 2 GHz;
  • hard disk — minimum 1 GB spațiu liber.

Agent:

  • RAM — minimum 128 MB, mai bine mai mult;
  • procesor — minimum 2 GHz.

Serverul facilitează funcționarea agenților și oferă o interfață prietenoasă pentru utilizator:

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

Etape/Locuri de muncă/Sarcini:

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

Instalare pentru Linux

echo “deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

curl 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|status|restart]

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

Din default, GoCd funcționează pe localhost:8153.

Punctele forte ale GoCd:

  • cod sursă deschis;
  • instalare și configurare simple;
  • documentație bună;

  • interfață excelentă pentru utilizatori:

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

  • posibilitatea de a vizualiza pas cu pas drumul desfășurării GoCD într-o singură viziune:

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

  • o prezentare excelentă a structurii conductei:

3 instrumente populare pentru organizarea livrării continue (Continuous Deployment)

  • GoCD optimizează fluxul de lucru CD în cele mai solicitate medii cloud, inclusiv Docker, AWS;
  • instrumentul permite diagnosticarea problemelor în conductă, având funcționalitatea de a urmări fiecare modificare de la commit la desfășurare în timp real.

Dezavantaje:

  • este nevoie de cel puțin un agent;
  • nu există consolă pentru a vizualiza toate sarcinile realizate;
  • pentru a executa fiecare comandă, trebuie să creați câte o sarcină pentru configurația conductei;
  • pentru instalarea pluginului, fișierul .jar trebuie mutat în /plugins/external și serverul trebuie repornit;
  • o comunitate relativ mică.

Ca rezultat

Acestea sunt doar trei instrumente, de fapt există mult mai multe. Alegeți cu dificultate, așa că trebuie acordată o atenție suplimentară aspectelor adiționale.

Codul sursă deschis al instrumentului oferă posibilitatea de a înțelege ce reprezintă acesta, plus adăugarea mai rapidă a unor funcții noi. Dar, dacă ceva nu funcționează, 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 mai importantă decât orice altceva, merită să lucrați cu un instrument local. Dacă nu, alegerea unei soluții SaaS este o opțiune bună.

Și, în final: pentru a asigura un proces cu adevărat eficient de desfășurare continuă, este necesar să stabilim criterii ale căror specificații vor permite restrângerea alegerii instrumentelor disponibile.

Skillbox recomandă:

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster