3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

Continuous Deployment (shpërndarje e vazhdueshme) është një qasje e veçantë në zhvillimin e softuerit, e cila aplikohet për të implementuar shpejt, sigurt dhe me efikasitet funksione të ndryshme në softuer.

Ideja kryesore Ă«shtĂ« krijimi i njĂ« procesi tĂ« besueshĂ«m automatik, i cili lejon zhvilluesin tĂ« ofrojĂ« shpejt njĂ« produkt tĂ« gatshĂ«m pĂ«r pĂ«rdoruesin. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, bĂ«hen ndryshime tĂ« vazhdueshme nĂ« prodhim — kjo quhet linja e shpĂ«rndarjes sĂ« vazhdueshme (CD Pipeline).

Skillbox rekomandon: Kurs praktik «Mobil developer PRO».

KujtojmĂ«: pĂ«r tĂ« gjithĂ« lexuesit e «Habra» — zbritje prej 10,000 rublesh pĂ«r regjistrimin nĂ« çdo kurs Skillbox me kodin promovues «Habr».

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

Për menaxhimin e fluksit, mund të përdoren një gamë e gjerë mjetesh, midis të cilave ka si ato me pagesë ashtu edhe plotësisht të lira. Në këtë artikull përshkruhen tre zgjidhjet më të popullarizuara mes zhvilluesve, të cilat mund të jenë të dobishme për çdo programues.

Jenkins

Një server plotësisht autonom për automatizimin me burim të hapur. Ai duhet të përdoret për automatizimin e çdo lloj detyre që lidhet me ndërtimin, testimin, dërgimin ose shpërndarjen e softuerit.

Kërkesat minimale për PC:

  • 256 MB RAM, 1 GB hapĂ«sire disku.

Optimumi:

  • 1 GB RAM, 50 GB nĂ« diskun e ngurtĂ«.

PĂ«r funksionimin e tij, kĂ«rkohet gjithashtu softuer shtesĂ« — Java Runtime Environment (JRE) versione 8.

Arkitektura (llogaritjet e shpërndara) duket si më poshtë:
3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

Jenkins Server — instalimi, i cili pĂ«rgjigjet pĂ«r hostimin e GUI-sĂ«, si dhe organizimin dhe ekzekutimin e gjithĂ« ndĂ«rtimit.

Jenkins Node/Slave/Build Server — pajisje qĂ« mund tĂ« konfigurohen pĂ«r tĂ« kryer punĂ«t e ndĂ«rtimit nĂ« emĂ«r tĂ« Master (nĂ« krye).

Instalimi për Linux

Së pari, duhet të shtoni repositorin 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

Për të përditësuar repositorin e pakove:

sudo apt update

Për të instaluar Jenkins:

sudo apt install jenkins

Pas kësaj, Jenkins do të jetë i aksesueshëm në sistem në portin e paracaktuar 8080.

Për të kontrolluar funksionimin, duhet të hapni në shfletues adresën localhost:8080. Pastaj, sistemi do të ofrojë të vendosni fjalëkalimin fillestar të përdoruesit me të drejta root. Ky fjalëkalim ndodhet në skedarin /var/lib/jenkins/secrets/initialAdminPassword.

Tani gjithçka është gati për punë, mund të filloni krijimin e proceseve CI/CD. Ndërfaqja grafike e ambientit të punës duket si më poshtë:

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

Pikat e forta të Jenkins:

  • shkallĂ«zimi qĂ« ofrohet nga arkitektura Master/Slave;
  • prania e API REST XML/JSON;
  • mundĂ«sia e lidhjes sĂ« njĂ« numri tĂ« madh tĂ« zgjatjeve pĂ«rmes shtesave;
  • njĂ« komunitet aktiv dhe qĂ« zhvillohet vazhdimisht.

Disavantazhet:

  • mungesa e njĂ« moduli analitik;
  • ndĂ«rfaqja jo shumĂ« e lehtĂ« pĂ«r t'u pĂ«rdorur.

TeamCity

Zhvillim komercial nga kompania JetBrains. Serveri është i mirë me konfigurimin e thjeshtë dhe një ndërfaqe të shkëlqyer. Në konfigurimin e parazgjedhur ka një numër të madh funksionesh, duke u rritur vazhdimisht numri i shtesave të disponueshme.

Për punë nevojitet Java Runtime Environment (JRE) versioni 8.

Kërkesat e serverit për harduerin nuk janë kritike:

  • RAM - 3,2 GB;
  • procesori - dy bĂ«rthamor, 3,2 GHz;
  • kanali i komunikimit me kapacitet prej 1 Gb/s.

Serveri lejon arritjen e një performancë të lartë në punë:

  • 60 projekte me 300 konfigurime ndĂ«rtimi;
  • ndarja e 2 MB pĂ«r ditarin e ndĂ«rtimit;
  • 50 agjentĂ« ndĂ«rtimi;
  • mundĂ«sia e punĂ«s pĂ«r 50 pĂ«rdorues nĂ« versionin web dhe 30 pĂ«rdorues nĂ« IDE;
  • 100 lidhje me sistemin e jashtĂ«m tĂ« menaxhimit tĂ« kodit, zakonisht Perforce dhe Subversion. Koha mesatarisht pĂ«r ndryshime - 120 sekonda;
  • mĂ« shumĂ« se 150 modifikime nĂ« ditĂ«;
  • punĂ« me DB nĂ« njĂ« server;
  • konfigurat e procesit tĂ« serverit JVM: -Xmx1100m -XX:MaxPermSize=120m.

Kërkesat për agjentin përllogariten nga ndërtimet që po funksionojnë. Detyra kryesore e serverit është të monitorojë të gjithë agjentët e lidhur dhe të ndajë ndërtimet nga radhët te këta agjentë në bazë të kërkesave të pajtueshmërisë, me raportimin e rezultateve. Agjentët kanë platforma dhe sisteme operative të ndryshme, plus një ambient të konfiguruar paraprakisht.

Të gjitha informacionet në lidhje me rezultatet e ndërtimit ruhen në bazën e të dhënave. Para së gjithash, kjo është historia dhe të dhëna të tjera të ngjashme, ndryshimet e VCS, agjentët, radhët e ndërtimit, llogaritë dhe lejet e përdoruesve. Në bazë nuk përfshihen vetëm ditarët e ndërtimit dhe artefaktet.

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

Instalimi për Linux

Për instalimin manual të TeamCity me konteinerin e servlerit Tomcat duhet të përdorni arkivin TeamCity: TeamCity .tar.gz. Mund ta shkarkoni nga këtu.

tar -xfz TeamCity.tar.gz

/bin /runAll. sh [start|stop]

Në nisjen e parë, duhet të zgjidhni llojin e DB-së në të cilën do të ruhen të dhënat për ndërtimin.

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

Konfigurimi i paracaktuar punon në localhost:8111/ me një agjent ndihmës të regjistruar, i cili është aktiv në të njëjtin PC.

Pikat e forta të TeamCity:

  • konfigurim i thjeshtĂ«;
  • interface e pĂ«rshtatshme;
  • numĂ«r i madh funksionesh tĂ« integruara;
  • shĂ«rbim pĂ«r mbĂ«shtetje;
  • ka njĂ« API RESTful;
  • dokumentacion i pranueshĂ«m;
  • siguri e mirĂ«.

Disavantazhet:

  • integrim i kufizuar;
  • Ă«shtĂ« njĂ« mjet me pagesĂ«;
  • komunitet i vogĂ«l (i cili megjithatĂ« Ă«shtĂ« nĂ« rritje).

GoCD

Projekt me burim të hapur, për instalimin dhe funksionimin e të cilit kërkohet Java Runtime Environment (JRE) versioni 8.

Kërkesat sistemore:

  • RAM — minimumi 1 GB, mĂ« mirĂ« mĂ« shumĂ«;
  • procesori — me dy bĂ«rthama, me shpejtĂ«si operimi 2 GHz;
  • disku i fortĂ« — minimumi 1 GB hapĂ«sirĂ« tĂ« lirĂ«.

Agjenti:

  • RAM — minimumi 128 MB, mĂ« mirĂ« mĂ« shumĂ«;
  • procesori — minimumi 2 GHz.

Serveri siguron funksionimin e agentëve dhe ofron një interface të përshtatshme për përdoruesin:

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

Etapa / Punët / Detyrat:

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

Instalimi për 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]

Në parazgjedhje, GoCD punon në localhost:8153.

Pikat e forta të GoCD:

  • burim tĂ« hapur;
  • instalimi dhe konfigurimi i lehtĂ«;
  • dokumentacion i mirĂ«;

  • interface e shkĂ«lqyer pĂ«r pĂ«rdoruesit:

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

  • mundĂ«sia e shfaqjes hap pas hapi tĂ« rrugĂ«s sĂ« shpĂ«rndarjes GoCD nĂ« njĂ« pamje:

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

  • shfaqje e shkĂ«lqyer e strukturĂ«s sĂ« tubacionit:

3 mjete të njohura për organizimin e vazhdueshëm të shpërndarjes (Continuous Deployment)

  • GoCD optimizon procesin CD nĂ« mjediset mĂ« tĂ« kĂ«rkuara tĂ« cloud, duke pĂ«rfshirĂ« Docker, AWS;
  • mjeti ofron mundĂ«sinĂ« pĂ«r tĂ« saktĂ«suar defektet nĂ« tubacion, pĂ«r tĂ« cilin ka ndjekje tĂ« çdo ndryshimi nga komiti deri nĂ« shpĂ«rndarje nĂ« kohĂ« reale.

Disavantazhet:

  • duhet tĂ« ketĂ« tĂ« paktĂ«n njĂ« agjent;
  • nuk ka njĂ« konsol pĂ«r shfaqjen e tĂ« gjitha detyrave tĂ« kryera;
  • pĂ«r tĂ« kryer çdo komandĂ«, duhet krijuar njĂ« detyrĂ« tĂ« vetme nĂ« konfigurimin e tubacionit;
  • pĂ«r instalimin e plugin-it, nevojitet tĂ« zhvendosim skedarin .jar nĂ« /plugins/external dhe tĂ« rizgjojmĂ« serverin;
  • komunitet relativisht i vogĂ«l.

Si një përfundim

Këto janë vetëm tri mjete, në të vërtetë ka shumë më tepër. Zgjedhja është e vështirë, prandaj është e nevojshme të kushtoni vëmendje ndaj aspekteve të tjera.

Kod i hapur i mjetit ofron mundësinë të kuptohet se çfarë përfaqëson, duke lejuar gjithashtu shtimin më të shpejtë të funksioneve të reja. Por, nëse diçka nuk funksionon, do të duhet të mbështetesh vetëm te vetvetja dhe ndihmën e komunitetit. Mjetet e paguara ofrojnë mbështetje që mund të jetë kritikisht e rëndësishme ndonjëherë.

Nëse siguria është më e rëndësishme se gjithçka, është më mirë të punosh me një mjet lokal. Nëse jo, atëherë zgjedhja e një zgjidhjeje SaaS është një opsion i mirë.

E fundit: për të siguruar një proces të vërtetë efikas të implementimit të vazhdueshëm, duhet të formulohet kriteret, spesifikiteti i të cilave do të lejojë të ngushtohet lista e mjeteve të disponueshme.

Skillbox rekomandon:

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster