3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

Continuous Deployment (deployim i vazhdueshëm) është një qasje e veçantë në zhvillimin e softuerit që përdoret për të implementuar shpejt, sigurt dhe efikasisht funksione të ndryshme në software.

Ideja kryesore është krijimi i një procesi automatizimi të besueshëm që lejon zhvilluesin të ofrojë shpejt produktin e gatshëm për përdoruesin. Ndryshimet e vazhdueshme bëhen në prodhim - ky proces quhet konvejeri i dorëzimit të vazhdueshëm (CD Pipeline).

Skillbox rekomandon: Kurs praktik «Programues i celularëve PRO».

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

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

Për të menaxhuar fluksin, mund të përdoren një gamë e gjerë mjetesh, përfshirë si ato me pagesë, ashtu edhe ato krejtësisht falas. Në këtë artikull përshkruhen tre nga zgjidhjet më të njohura mes zhvilluesve që mund të jenë të dobishme për çdo programues.

Jenkins

Një server i plotë autonom i automatizimit me burim të hapur. Ai duhet përdorur për të automatizuar të gjitha llojet e detyrave që lidhen me ndërtimin, testimin, dorëzimin ose implementimin e softuerit.

Kërkesat minimale për PC:

  • 256 MB RAM, 1 GB hapĂ«sirĂ« nĂ« skedarin.

Optimalisht:

  • 1 GB RAM, 50 GB nĂ« hard disk.

PĂ«r funksionimin, do tĂ« nevojitet gjithashtu njĂ« program shtesĂ« — Java Runtime Environment (JRE) versioni 8.

Arkitektura (kompjuterë të shpërndarë) duket si në vijim:
3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

Jenkins Server — instalimi qĂ« Ă«shtĂ« pĂ«rgjegjĂ«s pĂ«r pritjen e GUI-sĂ«, si dhe organizimin dhe ekzekutimin e tĂ« gjithĂ« ndĂ«rtimit.

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

Instalimi për Linux

Fillimisht, duhet të shtoni rrethin 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ërditësoni repository-në e paketave:

sudo apt update

Instaloni Jenkins:

sudo apt install jenkins

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

Për të verifikuar funksionimin, duhet të hapni në shfletues adresën localhost:8080. Më pas, sistemi do të ofrojë për të vendosur fjalëkalimin fillestar të përdoruesit me të drejtat root. Ky fjalëkalim ndodhet në skedarin /var/lib/jenkins/secrets/initialAdminPassword.

Tani gjithçka është gati për të punuar, mund të filloni krijimin e kanaleve CI/CD. Ndërfaqja grafike e mjedisit të punës duket si në vijim:

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

Pikat e forta të Jenkins:

  • shkallĂ«zueshmĂ«ria e siguruar nga arkitektura Master/Slave;
  • prania e REST XML/JSON API;
  • mundĂ«sia pĂ«r tĂ« lidhur numĂ«r tĂ« madh tĂ« zgjerimeve pĂ«rmes plugins;
  • njĂ« komunitet aktiv dhe vazhdimisht nĂ« zhvillim.

Disavantazhet:

  • mungon njĂ« bllok analitik;
  • njĂ« ndĂ«rfaqe jo shumĂ« miqĂ«sore.

TeamCity

Zhvillim komercial nga kompania JetBrains. Serveri ka konfigurim të thjeshtë dhe një ndërfaqe të shkëlqyer. Në konfigurimin default ka një numër të madh funksionesh dhe numri i plugins-ve të disponueshme vazhdimisht rritet.

Për funksionimin e tij kërkohet Java Runtime Environment (JRE) versioni 8.

Kërkesat për server për harduerin nuk janë kritike:

  • RAM — 3.2 GB;
  • procesori — dy-nĂ«-nĂ«-tĂ«, 3.2 GHz;
  • kanali i komunikimit me kapacitet 1 Gb/s.

Serveri lejon arritjen e performancës së lartë në punë:

  • 60 projekte me 300 konfigurime ndĂ«rtimi;
  • shkĂ«putje prej 2 MB pĂ«r logun e ndĂ«rtimit;
  • 50 agjentĂ« ndĂ«rtimi;
  • mundĂ«sia e punĂ«s me 50 pĂ«rdorues nĂ« versionin web dhe 30 pĂ«rdorues nĂ« IDE;
  • 100 lidhje me njĂ« SQL tĂ« jashtĂ«m, zakonisht Perforce dhe Subversion. Koha mesatare e ndryshimeve — 120 sekonda;
  • mĂ« shumĂ« se 150 modifikime nĂ« ditĂ«;
  • punĂ« me DB nĂ« njĂ« server;
  • konfigurimet e procesit server JVM: -Xmx1100m -XX:MaxPermSize=120m.

Kërkesat për agjentin përcaktohen nga ndërtimet në punë. Detyra kryesore e serverit është të ndjekë të gjitha agjentët e lidhur dhe të distribuirë ndërtimet nga radhët te këta agjentë bazuar në kërkesat e pajtueshmërisë, duke raportuar rezultatet. Agjentët kanë platforma dhe sisteme operative të ndryshme, përveç një ambienti të paracaktuar.

Të gjitha informacionet mbi rezultatet e ndërtimit ruhen në një bazë të dhënash. 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 të drejtat e përdoruesve. Në bazë nuk përfshihen vetëm regjistrat e ndërtimit dhe artefaktet.

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

Instalimi për Linux

Për instalim manual të TeamCity me kontejnerin e servletit Tomcat duhet të përdoret arkivi TeamCity: TeamCity .tar.gz. Shkarko atë këtu.

tar -xfz TeamCity.tar.gz

/bin /runAll. sh [start|stop]

Me fillimin e parë, duhet të zgjidhni llojin e DB-së ku do të ruhet informacioni mbi ndërtimin.

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

Konfigurimi i paracaktuar punon në localhost:8111/ me një agjent ndërtimi të regjistruar, i cili ekzekutohet në atë PC-në e njëjtë.

Pikat e forta të TeamCity:

  • konfigurim i lehtĂ«;
  • ndĂ«rfaqe e shpejtĂ«;
  • numĂ«r i madh funksionesh tĂ« integruara;
  • shĂ«rbim mbĂ«shtetje;
  • ka API RESTful;
  • dokumentacion i mirĂ«;
  • mbrojtje e mirĂ«.

Disavantazhet:

  • integrare e kufizuar;
  • ky Ă«shtĂ« njĂ« mjet me pagesĂ«;
  • komunitet tĂ« vogĂ«l (nĂ« tĂ« vĂ«rtetĂ« po rritet).

GoCD

projekt me kod të hapur, i cili kërkon Java Runtime Environment (JRE) version 8 për instalim dhe funksionim.

Kërkesat sistemore:

  • RAM - minimumi 1 GB, mĂ« mirĂ« mĂ« shumĂ«;
  • procesor - dy-fijor, me frekuencĂ« 2 GHz;
  • diskun e fortĂ« - minimumi 1 GB hapĂ«sirĂ« tĂ« lirĂ«.

Agjenti:

  • RAM - minimumi 128 MB, mĂ« mirĂ« mĂ« shumĂ«;
  • procesor - minimumi 2 GHz.

Serveri siguron funksonimin e agjentëve dhe ofron një ndërfaqe të përshtatshme për përdoruesin:

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

Stages/Jobs/Tasks:

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (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]

Për default, GoCd funksionon në localhost:8153.

Pikat e forta të GoCd:

  • kod i hapur;
  • instalimi dhe konfigurimi i lehtĂ«;
  • dokumentim i mirĂ«;

  • ndĂ«rfaqe e shkĂ«lqyer e pĂ«rdoruesit:

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

  • mundĂ«sia pĂ«r tĂ« treguar hap pas hapi rrugĂ«n e implementimit tĂ« GoCD nĂ« njĂ« pamje:

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

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

3 mjete popullore për organizimin e shpërndarjes së vazhdueshme (Continuous Deployment)

  • GoCD optimizon procesin CD nĂ« ambientet mĂ« tĂ« kĂ«rkuara tĂ« cloud, pĂ«rfshirĂ« Docker, AWS;
  • Pajisja ofron mundĂ«sinĂ« pĂ«r tĂ« rregulluar defektet nĂ« konvjer, pĂ«r tĂ« cilin ka ndjekje tĂ« çdo ndryshimi nga komiti deri nĂ« shpĂ«rndarje nĂ« modalitetin realtime.

Disavantazhet:

  • nevojitet tĂ« paktĂ«n njĂ« agjent;
  • nuk ka konsol pĂ«r tĂ« shfaqur tĂ« gjitha detyrat e kryera;
  • pĂ«r tĂ« ekzekutuar çdo komandĂ«, çdoherĂ« duhet tĂ« krijohet njĂ« detyrĂ« pĂ«r konfigurimin e konvjerit;
  • pĂ«r tĂ« instaluar plugin-in, duhet tĂ« transferoni skedarin .jar nĂ« /plugins/external dhe tĂ« rinisni serverin;
  • komunitet relativisht i vogĂ«l.

Si përfundim

Këto janë vetëm tre mjete, në të vërtetë ka shumë më tepër. Zgjedhja është e vështirë, prandaj është e domosdoshme të kushtohet vëmendje për aspekte të tjera.

Kodi i hapur i mjeteve ofron mundësinë për të kuptuar se çfarë përfaqëson, si dhe për të shtuar më shpejt funksione të reja. Por nëse diçka nuk funksionon, duhet të mbështetesh vetëm te vetja dhe ndihma e komunitetit. Mjetet paguese ofrojnë mbështetje, e cila ndonjëherë mund të jetë kritikisht e rëndësishme.

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

Dhe në fund: për të siguruar një proces të vërtetë efektiv të shpërndarjes së vazhdueshme, është e nevojshme të formulohet një grup kriteresh, specifikimi i të cilave do t'i japë mundësi ngushtimit të zgjedhjes së mjeteve të disponueshme.

Skillbox rekomandon:

Burimi: habr.com

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