
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 .
KujtojmĂ«: pĂ«r tĂ« gjithĂ« lexuesit e "Habra" â zbritje prej 10,000 rublej pĂ«r regjistrimin nĂ« çdo kurs Skillbox me kodin promocional "Habr".

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:

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 â | sudo apt-key add â echo âdeb 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 :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:


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.

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 .
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.

Konfigurimi i paracaktuar punon në :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:

Stages/Jobs/Tasks:

Instalimi për Linux
echo âdeb /â | sudo tee /etc/apt/sources.list.d/gocd.list
curl | 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ë :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:

- mundësia për të treguar hap pas hapi rrugën e implementimit të GoCD në një pamje:

- pamje e shkëlqyer e strukturës së tubacionit:

- 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:
- Kurs praktik dyvjeçar .
- Kurs online .
- Kurs praktik njëvjeçar .
Burimi: habr.com
