3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

Ang Padayon nga Deployment usa ka espesyal nga pamaagi sa pagpalambo sa software nga gigamit sa madali, luwas ug episyente nga pagpatuman sa nagkalain-laing mga gimbuhaton sa software.

Ang nag-unang ideya mao ang paghimo sa usa ka kasaligan nga automated nga proseso nga nagtugot sa developer sa paghatud dayon sa nahuman nga produkto ngadto sa user. Sa parehas nga oras, kanunay nga pagbag-o ang gihimo sa produksiyon - gitawag kini nga padayon nga pipeline sa pagpadala (CD Pipeline).

Girekomenda sa Skillbox: Praktikal nga kurso "Mobile Developer PRO".

Gipahinumduman namon ikaw: alang sa tanan nga mga magbabasa sa "Habr" - usa ka diskwento sa 10 nga mga rubles kung nagpalista sa bisan unsang kurso sa Skillbox gamit ang code sa promosyon nga "Habr".

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

Aron makontrol ang dagan, mahimo nimong gamiton ang daghang mga himan, lakip ang bayad ug hingpit nga libre. Kini nga artikulo naghulagway sa tulo sa labing popular nga mga solusyon sa mga developers nga mahimong mapuslanon sa matag programmer.

Jenkins

Bug-os nga self-contained nga open source automation server. Angayan sa pagtrabaho aron ma-automate ang tanang matang sa mga buluhaton nga may kalabutan sa pagtukod, pagsulay, pagpadala, o pag-deploy sa software.

Minimum nga kinahanglanon sa PC:

  • 256 MB RAM, 1 GB nga luna sa file.

Labing maayo:

  • 1 GB RAM, 50 GB nga hard drive.

Aron magtrabaho, magkinahanglan ka usab og dugang nga software - Java Runtime Environment (JRE) nga bersyon 8.

Ang arkitektura (giapod-apod nga computing) ingon niini:
3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

Ang Jenkins Server usa ka pag-install nga responsable sa pag-host sa GUI, ingon man pag-organisar ug pagpatuman sa tibuuk nga pagtukod.

Jenkins Node/Slave/Build Server - mga himan nga mahimong ma-configure aron mahimo ang trabaho sa pagtukod alang sa Agalon (master node).

Pag-instalar alang sa Linux

Una kinahanglan nimo nga idugang ang repository sa Jenkins sa sistema:

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

Pag-update sa repository sa package:

sudo apt update

I-install ang Jenkins:

sudo apt install jenkins

Pagkahuman niini, ang Jenkins mahimong magamit sa sistema pinaagi sa default port 8080.

Aron masusi ang pag-andar, kinahanglan nimo nga ablihan ang adres sa browser localhost:8080. Ang sistema unya mag-aghat kanimo sa pagsulod sa inisyal nga password alang sa root user. Kini nga password nahimutang sa file /var/lib/jenkins/secrets/initialAdminPassword.

Karon ang tanan andam na, mahimo ka magsugod sa paghimo sa mga agianan sa CI / CD. Ang graphical nga interface sa workbench ingon niini:

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

Mga Kalig-on ni Jenkins:

  • scalability nga gihatag sa Master/Slave architecture;
  • anaa sa REST XML/JSON API;
  • ang abilidad sa pagkonektar sa daghang gidaghanon sa mga extension salamat sa mga plugins;
  • aktibo ug padayon nga nag-uswag nga komunidad.

Kahinumduman:

  • walay analytical block;
  • dili kaayo user-friendly interface.

TeamCity

Komersyal nga kalamboan gikan sa JetBrains. Ang server maayo sa yano nga pag-setup ug usa ka maayo kaayo nga interface. Ang default nga pagsumpo adunay daghang mga gimbuhaton, ug ang gidaghanon sa mga magamit nga mga plugin kanunay nga nagdugang.

Nagkinahanglan og Java Runtime Environment (JRE) nga bersyon 8.

Ang mga kinahanglanon sa hardware sa server dili kritikal:

  • RAM - 3,2 GB;
  • processor - dual-core, 3,2 GHz;
  • channel sa komunikasyon nga adunay kapasidad nga 1 Gb/s.

Gitugotan ka sa server nga makab-ot ang taas nga pasundayag:

  • 60 nga mga proyekto nga adunay 300 nga mga pagtukod sa pagtukod;
  • 2 MB alokasyon alang sa pagtukod log;
  • 50 ka ahente sa pagtukod;
  • ang abilidad sa pagtrabaho uban sa 50 ka tiggamit sa web nga bersyon ug 30 ka tiggamit sa IDE;
  • 100 ka koneksyon sa external VCS, kasagaran Perforce ug Subversion. Ang kasagaran nga oras sa pagbag-o mao ang 120 segundos;
  • labaw pa sa 150 nga mga pagbag-o kada adlaw;
  • nagtrabaho kauban ang database sa usa ka server;
  • Mga setting sa proseso sa JVM server: -Xmx1100m -XX:MaxPermSize=120m.

Ang mga kinahanglanon sa ahente gibase sa nagdagan nga mga asembliya. Ang panguna nga tahas sa server mao ang pag-monitor sa tanan nga konektado nga mga ahente ug pag-apod-apod sa mga nakapila nga asembliya sa kini nga mga ahente base sa mga kinahanglanon sa pagpahiangay, pagreport sa mga resulta. Ang mga ahente moabut sa lainlaing mga platform ug operating system, lakip ang usa ka pre-configure nga palibot.

Ang tanan nga kasayuran bahin sa mga resulta sa pagtukod gitipigan sa database. Sa panguna kini mao ang kasaysayan ug uban pang susama nga datos, mga pagbag-o sa VCS, mga ahente, pagtukod og mga pila, mga account sa gumagamit ug mga pagtugot. Ang database wala maglakip lamang sa pagtukod og mga troso ug mga artifact.

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

Pag-instalar alang sa Linux

Para manwal nga i-install ang TeamCity gamit ang Tomcat servlet container, kinahanglan nimong gamiton ang TeamCity archive: TeamCity .tar.gz. Pag-download makuha nimo kini gikan dinhi.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [pagsugod|hunong]

Sa una nimong pagsugod, kinahanglan nimo nga pilion ang tipo sa database diin ang data sa asembliya itago.

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

Nagpadayon ang default nga configuration localhost:8111/ nga adunay usa ka rehistradong ahente sa pagtukod nga nagdagan sa samang PC.

Mga kalig-on sa TeamCity:

  • yano nga setup;
  • interface nga mahigalaon sa tiggamit;
  • usa ka dako nga gidaghanon sa mga built-in nga mga gimbuhaton;
  • Serbisyo sa pagsuporta;
  • adunay usa ka RESTful API;
  • maayo nga dokumentasyon;
  • maayong seguridad.

Kahinumduman:

  • limitado nga panagsama;
  • Kini usa ka bayad nga himan;
  • gamay nga komunidad (nga, bisan pa, nagtubo).

GoCD

Usa ka open source nga proyekto nga nagkinahanglan sa Java Runtime Environment (JRE) nga bersyon 8 para sa pag-instalar ug operasyon.

Mga Kinahanglanon sa System:

  • RAM - 1 GB nga minimum, mas maayo;
  • processor - dual-core, uban sa usa ka core frequency sa 2 GHz;
  • hard drive - labing menos 1 GB nga libre nga wanang.

Ahente:

  • RAM - labing menos 128 MB, mas maayo;
  • processor - labing menos 2 GHz.

Gisiguro sa server ang operasyon sa mga ahente ug naghatag usa ka kombenyente nga interface alang sa tiggamit:

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

Mga Yugto/Mga Trabaho/Mga Buluhaton:

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

Pag-instalar alang sa 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 pagdugang -
add-apt-repository ppa:openjdk-r/ppa

Apt-get update

apt-get install -y openjdk-8-jre

apt-get i-install ang 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]

Sa kasagaran ang GoCd nagdagan localhost: 8153.

Mga kalig-on sa GoCd:

  • bukas nga tinubdan;
  • yano nga pag-instalar ug pag-configure;
  • maayo nga dokumentasyon;

  • Nindot nga user interface:

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

  • abilidad sa pagpakita sa sunod-sunod nga agianan sa pag-deploy sa GoCD sa usa ka pagtan-aw:

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

  • maayo kaayo nga pagpakita sa istruktura sa pipeline:

3 popular nga mga himan alang sa pag-organisar sa padayon nga pag-deploy (Padayon nga Deployment)

  • Ang GoCD nag-optimize sa CD workflow sa pinakasikat nga cloud environment lakip ang Docker, AWS;
  • ang himan nagpaposible nga matul-id ang mga problema sa pipeline, diin adunay pagsubay sa matag pagbag-o gikan sa pagpasalig hangtod sa pag-deploy sa tinuud nga oras.

Kahinumduman:

  • labing menos usa ka ahente ang gikinahanglan;
  • walay console aron ipakita ang tanang nahuman nga mga buluhaton;
  • aron ipatuman ang matag mando, kinahanglan nimo nga maghimo usa ka buluhaton alang sa pagsumpo sa pipeline;
  • Aron ma-install ang plugin kinahanglan nimo nga ibalhin ang .jar file sa /plugins/external ug i-restart ang server;
  • medyo gamay nga komunidad.

Ingong konklusyon

Tulo lang kini nga mga himan, sa tinuud adunay daghan pa. Lisud ang pagpili, mao nga kinahanglan nimo nga hatagan pagtagad ang dugang nga mga aspeto.

Ang bukas nga gigikanan nga code sa himan nagpaposible nga masabtan kung unsa kini, dugang nga pagdugang bag-ong mga bahin nga mas paspas. Apan kung ang usa ka butang dili molihok, nan kinahanglan ka nga mosalig lamang sa imong kaugalingon ug sa tabang sa komunidad. Ang bayad nga mga himan naghatag suporta nga usahay mahimong kritikal.

Kung ang seguridad mao ang imong panguna nga prayoridad, takus nga magtrabaho sa usa ka lokal nga himan. Kung dili, nan ang pagpili sa usa ka solusyon sa SaaS usa ka maayong kapilian.

Ug sa katapusan, aron masiguro ang usa ka tinuud nga epektibo nga padayon nga proseso sa pag-deploy, kinahanglan nimo nga maghimo mga pamatasan nga ang mga espesipiko magtugot kanimo nga makit-an ang lainlain nga magamit nga mga himan.

Girekomenda sa Skillbox:

Source: www.habr.com

Idugang sa usa ka comment