3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

Vendosja e vazhdueshme është një qasje e veçantë në zhvillimin e softuerit që përdoret për të zbatuar shpejt, në mënyrë të sigurt dhe efikase funksione të ndryshme në softuer.

Ideja kryesore është krijimi i një procesi të automatizuar të besueshëm që i lejon zhvilluesit të dorëzojë shpejt produktin e përfunduar tek përdoruesi. Në të njëjtën kohë, bëhen ndryshime të vazhdueshme në prodhim - kjo quhet një tubacion i vazhdueshëm i shpërndarjes (CD Pipeline).

Skillbox rekomandon: Kurse praktike "Zhvilluesi i celularit PRO".

Kujtojmë: për të gjithë lexuesit e "Habr" - një zbritje prej 10 rubla kur regjistroheni në çdo kurs Skillbox duke përdorur kodin promovues "Habr".

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

Për të kontrolluar rrjedhën, mund të përdorni një gamë të gjerë mjetesh, duke përfshirë të dyja me pagesë dhe plotësisht falas. Ky artikull përshkruan tre nga zgjidhjet më të njohura midis zhvilluesve që mund të jenë të dobishme për çdo programues.

Jenkins

Server automatizimi me burim të hapur plotësisht i pavarur. Ia vlen të punosh me të për të automatizuar të gjitha llojet e detyrave që lidhen me ndërtimin, testimin, dërgimin ose vendosjen e softuerit.

Kërkesat minimale për PC:

  • 256 MB RAM, 1 GB hapësirë ​​skedari.

Optimale:

  • 1 GB RAM, 50 GB hard disk.

Për të punuar, do t'ju duhet gjithashtu softuer shtesë - Java Runtime Environment (JRE) versioni 8.

Arkitektura (llogaritja e shpërndarë) duket si kjo:
3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

Serveri Jenkins është një instalim që është përgjegjës për pritjen e GUI, 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ë ndërtimi në emër të Masterit (nyja kryesore).

Instalimi për Linux

Së pari ju duhet të shtoni depon e 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 binare/' | sudo tee -a /etc/apt/sources.list.d/je

Përditëso depon e paketave:

sudo apt update

Instaloni Jenkins:

sudo apt instaloni jenkins

Pas kësaj, Jenkins do të jetë i disponueshëm në sistem nëpërmjet portit të paracaktuar 8080.

Për të kontrolluar funksionalitetin, duhet të hapni adresën në shfletues localhost:8080. Më pas sistemi do t'ju kërkojë të vendosni fjalëkalimin fillestar për përdoruesin rrënjë. Ky fjalëkalim ndodhet në skedarin /var/lib/jenkins/secrets/initialAdminPassword.

Tani gjithçka është gati për të shkuar, mund të filloni të krijoni flukse CI/CD. Ndërfaqja grafike e tavolinës së punës duket si kjo:

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

Përparësitë e Jenkins:

  • shkallëzueshmëria e ofruar nga arkitektura Master/Slave;
  • disponueshmëria e REST XML/JSON API;
  • aftësia për të lidhur një numër të madh shtesash falë shtojcave;
  • komunitet aktiv dhe vazhdimisht në zhvillim.

Cons:

  • nuk ka bllok analitik;
  • ndërfaqe jo shumë miqësore për përdoruesit.

TeamCity

Zhvillimi komercial nga JetBrains. Serveri është i mirë me konfigurim të thjeshtë dhe një ndërfaqe të shkëlqyer. Konfigurimi i paracaktuar ka një numër të madh funksionesh dhe numri i shtojcave të disponueshme po rritet vazhdimisht.

Kërkon Java Runtime Environment (JRE) version 8.

Kërkesat e harduerit të serverit nuk janë kritike:

  • RAM - 3,2 GB;
  • procesor - me dy bërthama, 3,2 GHz;
  • kanal komunikimi me kapacitet 1 Gb/s.

Serveri ju lejon të arrini performancë të lartë:

  • 60 projekte me 300 konfigurime ndërtimi;
  • Alokimi 2 MB për regjistrin e ndërtimit;
  • 50 agjentë ndërtimi;
  • aftësia për të punuar me 50 përdorues në versionin ueb dhe 30 përdorues në IDE;
  • 100 lidhje të VCS të jashtme, zakonisht Perforce dhe Subversion. Koha mesatare e ndryshimit është 120 sekonda;
  • më shumë se 150 modifikime në ditë;
  • duke punuar me bazën e të dhënave në një server;
  • Cilësimet e procesit të serverit JVM: -Xmx1100m -XX:MaxPermSize=120m.

Kërkesat e agjentit bazohen në funksionimin e asambleve. Detyra kryesore e serverit është të monitorojë të gjithë agjentët e lidhur dhe të shpërndajë asambletë në radhë tek këta agjentë bazuar në kërkesat e përputhshmërisë, duke raportuar rezultatet. Agjentët vijnë në një sërë platformash dhe sistemesh operative, plus një mjedis të para-konfiguruar.

Të gjitha informacionet në lidhje me rezultatet e ndërtimit ruhen në bazën e të dhënave. Kryesisht kjo është historia dhe të dhëna të tjera të ngjashme, ndryshimet e VCS, agjentët, radhët e ndërtimit, llogaritë e përdoruesve dhe lejet. Baza e të dhënave nuk përfshin vetëm regjistrat e ndërtimit dhe objektet.

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

Instalimi për Linux

Për të instaluar manualisht TeamCity me një kontejner servlet Tomcat, duhet të përdorni arkivin TeamCity: TeamCity .tar.gz. Shkarko mund ta merrni nga këtu.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [fillimi|ndalimi]

Kur filloni për herë të parë, duhet të zgjidhni llojin e bazës së të dhënave në të cilën do të ruhen të dhënat e montimit.

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

Konfigurimi i paracaktuar funksionon localhost:8111/ me një agjent ndërtimi të regjistruar që funksionon në të njëjtin PC.

Pikat e forta të TeamCity:

  • konfigurim i lehtë;
  • user-friendly interface;
  • një numër i madh i funksioneve të integruara;
  • mbështetje;
  • ekziston një API RESTful;
  • dokumentacion i mirë;
  • siguri e mirë.

Cons:

  • integrim i kufizuar;
  • Ky është një mjet me pagesë;
  • një komunitet i vogël (i cili megjithatë po rritet).

GoCD

Një projekt me burim të hapur që kërkon Java Runtime Environment (JRE) version 8 për instalim dhe funksionim.

Kërkesat e sistemit:

  • RAM - minimumi 1 GB, më shumë është më mirë;
  • procesor - me dy bërthama, me një frekuencë bërthamore prej 2 GHz;
  • hard disk - të paktën 1 GB hapësirë ​​të lirë.

Agjenti:

  • RAM - të paktën 128 MB, më shumë është më mirë;
  • procesori - të paktën 2 GHz.

Serveri siguron funksionimin e agjentëve dhe siguron një ndërfaqe të përshtatshme për përdoruesit:

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

Fazat/Punët/Detyrat:

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

Instalimi për Linux

jehonë "deb shkarko.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

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

apt-get Azhurimi

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

/etc/init.d/go-server [fillimi|ndalimi|statusi|rifillimi]

/etc/init.d/go-agent [fillimi|ndalimi|statusi|rifillimi]

Si parazgjedhje, GoCd funksionon localhost: 8153.

Pikat e forta të GoCd:

  • burim i hapur;
  • instalim dhe konfigurim i thjeshtë;
  • dokumentacion i mirë;

  • Ndërfaqe e shkëlqyer e përdoruesit:

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

  • aftësia për të treguar hap pas hapi rrugën e vendosjes së GoCD në një pamje:

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

  • shfaqje e shkëlqyer e strukturës së tubacionit:

3 mjete të njohura për organizimin e vendosjes së vazhdueshme (Continuous Deployment)

  • GoCD optimizon rrjedhën e punës së CD-së në mjediset më të njohura të cloud, duke përfshirë Docker, AWS;
  • mjeti bën të mundur korrigjimin e problemeve në tubacion, për të cilat ka gjurmim të çdo ndryshimi nga angazhimi në vendosje në kohë reale.

Cons:

  • nevojitet të paktën një agjent;
  • nuk ka asnjë tastierë për të shfaqur të gjitha detyrat e përfunduara;
  • për të ekzekutuar secilën komandë, duhet të krijoni një detyrë për konfigurimin e tubacionit;
  • Për të instaluar shtojcën, duhet të zhvendosni skedarin .jar në /plugins/external dhe rinisni serverin;
  • komunitet relativisht i vogël.

Si perfundim

Këto janë vetëm tre mjete, në fakt ka shumë të tjera. Është e vështirë të zgjedhësh, kështu që patjetër duhet t'i kushtoni vëmendje aspekteve shtesë.

Kodi i burimit të hapur të mjetit bën të mundur për të kuptuar se çfarë është, plus shtimin e veçorive të reja më shpejt. Por nëse diçka nuk funksionon, atëherë duhet të mbështeteni vetëm tek vetja dhe ndihma e komunitetit. Mjetet me pagesë ofrojnë mbështetje që ndonjëherë mund të jetë kritike.

Nëse siguria është përparësia juaj kryesore, ia vlen të punoni me një mjet lokal. Nëse jo, atëherë zgjedhja e një zgjidhjeje SaaS është një opsion i mirë.

Dhe së fundi, për të siguruar një proces vërtet efektiv të vendosjes së vazhdueshme, duhet të formuloni kritere, specifikat e të cilave do t'ju lejojnë të ngushtoni gamën e mjeteve të disponueshme.

Skillbox rekomandon:

Burimi: www.habr.com

Shto një koment