Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Etengabeko hedapena softwarearen garapenaren ikuspegi berezi bat da, softwarean hainbat funtzio azkar, seguru eta eraginkortasunez ezartzeko erabiltzen dena.

Ideia nagusia prozesu automatizatu fidagarri bat sortzea da, garatzaileak erabiltzaileari amaitutako produktua azkar entregatzeko aukera ematen diona. Aldi berean, etengabeko aldaketak egiten dira ekoizpenean - etengabeko entrega kanalizazioa (CD Pipeline) deritzo.

Skillbox-ek gomendatzen du: Ikastaro praktikoa "Mobile Developer PRO".

Gogoratzen dugu: "Habr" irakurle guztientzat - 10 errubloko deskontua "Habr" promozio-kodea erabiliz Skillbox-eko edozein ikastarotan izena ematean.

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Fluxua kontrolatzeko, tresna sorta zabala erabil dezakezu, ordainpekoak eta guztiz doakoak barne. Artikulu honek programatzaile guztientzat erabilgarriak izan daitezkeen garatzaileen artean hiru soluzio ezagunenak deskribatzen ditu.

Jenkins

Kode irekiko automatizazio zerbitzari guztiz autonomoa. Merezi du lan egitea softwarea eraiki, probatu, bidaltzea edo zabaltzearekin lotutako mota guztietako zereginak automatizatzeko.

PCaren gutxieneko eskakizunak:

  • 256 MB RAM, 1 GB fitxategi espazioa.

Optimoa:

  • 1 GB RAM, 50 GB disko gogorra.

Lan egiteko, software osagarria ere beharko duzu - Java Runtime Environment (JRE) 8. bertsioa.

Arkitektura (konputazio banatua) honelakoa da:
Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Jenkins Server GUI hostingaz arduratzen den instalazio bat da, baita eraikuntza osoa antolatzeaz eta exekutatzen duena ere.

Jenkins Nodo/Esklabo/Eraiki zerbitzaria - Maisuaren (nodo nagusia) izenean eraikuntza lanak egiteko konfigura daitezkeen gailuak.

Linuxerako instalazioa

Lehenik eta behin Jenkins biltegia gehitu behar duzu sistemara:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable bitarra/' | sudo tee -a /etc/apt/sources.list.d/je

Eguneratu paketeen biltegia:

sudo apt update

Instalatu Jenkins:

sudo apt install jenkins

Horren ondoren, Jenkins sisteman eskuragarri egongo da 8080 ataka lehenetsiaren bidez.

Funtzionalitatea egiaztatzeko, helbidea arakatzailean ireki behar duzu localhost:8080. Ondoren, sistemak root erabiltzailearen hasierako pasahitza idazteko eskatuko dizu. Pasahitz hau /var/lib/jenkins/secrets/initialAdminPassword fitxategian dago.

Orain dena prest dago, CI/CD fluxuak sortzen has zaitezke. Lan mahaiaren interfaze grafikoa honelakoa da:

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Jenkinsen indarguneak:

  • Master/Slave arkitekturak eskaintzen duen eskalagarritasuna;
  • REST XML/JSON APIaren erabilgarritasuna;
  • pluginei esker luzapen ugari konektatzeko gaitasuna;
  • komunitate aktiboa eta etengabe garatzen ari dena.

Cons:

  • ez dago bloke analitikorik;
  • ez oso erabilerraza den interfazea.

TeamCity

JetBrains-en garapen komertziala. Zerbitzaria ona da konfigurazio sinplearekin eta interfaze bikainarekin. Lehenetsitako konfigurazioak funtzio ugari ditu, eta eskuragarri dauden pluginen kopurua etengabe handitzen ari da.

Java Runtime Environment (JRE) 8. bertsioa behar du.

Zerbitzariaren hardware-eskakizunak ez dira kritikoak:

  • RAM - 3,2 GB;
  • prozesadorea - nukleo bikoitza, 3,2 GHz;
  • 1 Gb/s-ko gaitasuna duen komunikazio kanala.

Zerbitzariak errendimendu handia lortzeko aukera ematen du:

  • 60 proiektu 300 eraikuntza konfiguraziorekin;
  • 2 MB esleipena eraikitze-erregistrorako;
  • 50 eraikuntza eragile;
  • web bertsioan 50 erabiltzailerekin eta IDEan 30 erabiltzailerekin lan egiteko gaitasuna;
  • 100 kanpoko VCS konexioak, normalean Perforce eta Subversion. Batez besteko aldaketa-denbora 120 segundokoa da;
  • egunean 150 aldaketa baino gehiago;
  • datu-basearekin zerbitzari batean lan egitea;
  • JVM zerbitzariaren prozesu ezarpenak: -Xmx1100m -XX: MaxPermSize=120m.

Agenteen eskakizunak exekutatzen diren muntaietan oinarritzen dira. Zerbitzariaren zeregin nagusia da konektatutako agente guztiak kontrolatzea eta agente horiei ilaran dauden muntaiak banatzea bateragarritasun-baldintzen arabera, emaitzen berri emanez. Agenteak hainbat plataforma eta sistema eragiletan datoz, baita aurrez konfiguratutako ingurune batean ere.

Eraikuntzaren emaitzei buruzko informazio guztia datu-basean gordetzen da. Batez ere, historia eta antzeko beste datu batzuk, VCS aldaketak, agenteak, ilarak, erabiltzaile-kontuak eta baimenak dira. Datu-baseak ez ditu eraikuntza erregistroak eta artefaktuak soilik sartzen.

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Linuxerako instalazioa

TeamCity Tomcat servlet edukiontzi batekin eskuz instalatzeko, TeamCity artxiboa erabili behar duzu: TeamCity .tar.gz. Deskargatu hemendik lor dezakezu.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [hasi|gelditu]

Lehenengo hasten zarenean, muntaia-datuak gordeko diren datu-base mota hautatu behar duzu.

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Lehenetsitako konfigurazioa martxan da localhost:8111/ ordenagailu berean exekutatzen ari den eraikitze-agente erregistratu batekin.

TeamCity-ren indarguneak:

  • konfigurazio sinplea;
  • erabiltzaile-interfaze bizkor;
  • integratutako funtzio ugari;
  • Laguntza zerbitzua;
  • RESTful API bat dago;
  • dokumentazio ona;
  • segurtasun ona.

Cons:

  • integrazio mugatua;
  • Hau ordaindutako tresna bat da;
  • komunitate txiki bat (hazten ari dena, ordea).

GoCD

Instalatzeko eta funtzionatzeko Java Runtime Environment (JRE) 8 bertsioa behar duen kode irekiko proiektu bat.

Sistemaren eskakizunak:

  • RAM - 1 GB gutxienez, gehiago hobea da;
  • prozesadorea - nukleo bikoitza, 2 GHz-ko maiztasun nagusiarekin;
  • disko gogorra - gutxienez 1 GB libre.

Agentea:

  • RAM - gutxienez 128 MB, gehiago da hobea;
  • prozesadorea - gutxienez 2 GHz.

Zerbitzariak agenteen funtzionamendua bermatzen du eta erabiltzailearentzat interfaze erosoa eskaintzen du:

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Etapak/Lanak/Zereginak:

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

Linuxerako instalazioa

oihartzuna "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

curl download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key gehitu -
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 [hasi|gelditu|egoera|berrabiarazi]

/etc/init.d/go-agent [hasi|gelditu|egoera|berrabiarazi]

Lehenespenez, GoCd martxan dago localhost: 8153.

GoCd-ren indarguneak:

  • kode irekia;
  • instalazio eta konfigurazio sinplea;
  • dokumentazio ona;

  • Erabiltzaile interfaze bikaina:

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

  • urratsez urrats GoCD inplementatzeko bidea ikuspegi bakarrean erakusteko gaitasuna:

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

  • hodiaren egituraren erakustaldi bikaina:

Etengabeko hedapena antolatzeko 3 tresna ezagun (Etengabeko hedapena)

  • GoCD-k CDaren lan-fluxua optimizatzen du hodeiko ingurune ezagunenetan, Docker, AWS barne;
  • Tresnak kanalean dauden arazoak zuzentzea ahalbidetzen du, eta, horretarako, aldaketa guztien jarraipena egiten da denbora errealean konpromisotik inplementaziora.

Cons:

  • gutxienez agente bat behar da;
  • ez dago amaitutako zeregin guztiak bistaratzeko kontsolarik;
  • komando bakoitza exekutatzeko, kanalizazio konfiguraziorako zeregin bat sortu behar duzu;
  • Plugin-a instalatzeko .jar fitxategia mugitu behar duzu /plugins/external eta berrabiarazi zerbitzaria;
  • komunitate txiki samarra.

Ondorio gisa

Hiru tresna besterik ez dira hauek, askoz gehiago ere badaude. Zaila da aukeratzea, beraz, zalantzarik gabe, alderdi osagarriei arreta jarri behar diezu.

Tresnaren iturburu irekiko kodeari esker, zer den ulertzea ahalbidetzen du, eta funtzio berriak azkarrago gehitzen ditu. Baina zerbaitek ez badu funtzionatzen, orduan zeure buruan eta komunitatearen laguntzarekin bakarrik fidatu behar duzu. Ordainpeko tresnek batzuetan kritikoa izan daitekeen laguntza eskaintzen dute.

Segurtasuna zure lehentasun nagusia bada, merezi du tokiko tresna batekin lan egitea. Hala ez bada, SaaS irtenbide bat aukeratzea aukera ona da.

Eta, azkenik, etengabeko hedapen prozesu benetan eraginkorra bermatzeko, zeinen zehaztasunek eskuragarri dauden tresnen sorta murrizteko aukera emango duten irizpideak formulatu behar dituzu.

Skillbox-ek gomendatzen du:

Iturria: www.habr.com

Gehitu iruzkin berria