3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

Pidev pideploymine (Continuous Deployment) on tark arengusuund, mida rakendatakse tarkvaraarenduses, et kiiresti, turvaliselt ja tõhusalt uusi funktsioone REST API-sse integreerida.

Peamine idee on luua usaldusväärne automatiseeritud protsess, mis võimaldab arendajal kiiresti pakkuda kasutajale valmis toodet. Protsessis tehakse pidevaid muudatusi tootmises - seda nimetatakse pideva kohaletoimetamise protsessiks (CD Pipeline).

Skillbox soovitab: Praktiline kursus «Mobiilne arendaja PRO».

Tuletame meelde: kõigile «Habra» lugejatele — 10 000 rubla soodustus, kui registreerite end Skillboxi mis tahes kursusele promokoodi «Habr» abil.

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

Protsesside juhtimiseks saab kasutada laia tööriistade valikut, sealhulgas nii tasulisi kui ka täiesti tasuta lahendusi. Käesolevas artiklis tutvustatakse kolme arendajate seas kõige populaarsemat lahendust, mis võivad iga arendaja jaoks kasulikud olla.

Jenkins

Täielikult autonoomne avatud lähtekoodiga automatiseerimise server. Seda tasub kasutada kõigi ülesannete automatiseerimiseks, mis on seotud tarkvara kokkupaneku, testimise, tarnimise või juurutamisega.

Minimaalsed nõuded arvutile:

  • 256 MB RAM-i, 1 GB salvestusruumi.

Optimaalne:

  • 1 GB RAM-i, 50 GB kõvakettal.

Tööks vajate ka täiendavat tarkvara - Java Runtime Environment (JRE) versioon 8.

Arhitektuur (jaotatud arvutused) näeb välja järgmiselt:
3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

Jenkins Server - installatsioon, mis vastutab GUI-hostimise ning kogu koostamise korraldamise ja teostamise eest.

Jenkins Node/Slave/Build Server - seadmed, mida saab seadistada koostamisülesannete täitmiseks Master (peanoodi) nimel.

Paigaldamine Linuxile

Esmalt tuleb lisada Jenkins'i hoidla süsteemi:

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

Uuendage pakettide hoidlat:

sudo apt update

Installige Jenkins:

sudo apt install jenkins

Pärast seda on Jenkins süsteemis saadaval vaikimisi pordil 8080.

Töökorras kontrollimiseks avage brauseris aadress localhost:8080. Seejärel palub süsteem sisestada algse juurkasutaja parooli. See parool asub failis /var/lib/jenkins/secrets/initialAdminPassword.

Nüüd on kõik tööks valmis, saate alustada CI/CD voogude loomisega. Graafiline kasutajaliides töökeskkonnast näeb välja järgmiselt:

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

Jenkins'i tugevused:

  • skaleerimisvõime, mida tagab Master/Slave arhitektuur;
  • REST XML/JSON API olemasolu;
  • võimalus ühendada suurt hulka laiendusi tänu pluginadele;
  • aktiivne ja pidevalt arenev kogukond.

Miinused:

  • analüütilise bloki puudumine;
  • mitte eriti mugav liides.

TeamCity

JetBrains'i kaubanduslik arendus. Server on hea lihtsa seadistamise ja suurepärase liidese poolest. Vaikimisi konfiguratsioonis on palju funktsioone ja saadaval olevate pluginade arv suureneb pidevalt.

Töötamiseks on vajalik Java Runtime Environment (JRE) versioon 8.

Serveri riistvara nõuded ei ole kriitilised:

  • RAM — 3,2 GB;
  • protsessor — kaks tuuma, 3,2 GHz;
  • ühenduskanal, mille läbilaskevõime on 1 Gb/s.

Server võimaldab saavutada kõrget tööefektiivsust:

  • 60 projekti 300 ehituskonfiguratsiooniga;
  • 2 MB eraldamine ehituse logile;
  • 50 ehitusagenti;
  • võimalus 50 kasutajaga veebiversioonis ja 30 kasutajaga IDE-s;
  • 100 ühendust välise SCV-ga, tavaliselt Perforce ja Subversion. Keskmine muudatuste aeg — 120 sekundit;
  • üle 150 muudatuse päevas;
  • töö andmebaasiga ühel serveril;
  • serveri protsessi JVM seaded: -Xmx1100m -XX:MaxPermSize=120m.

Agendi nõudmised sõltuvad töökindlatest kogumitest. Serveri peamine ülesanne on jälgida kõiki ühendatud agente ja jagada kogumid järjekorrast nende agentide vahel vastavalt ühilduvuse nõuetele, edastades tulemused. Agendid töötavad erinevatel platvormidel ja operatsioonisüsteemidel ning neil on eelnevalt konfigureeritud keskkond.

Kogu kogumise tulemusi puudutav teave salvestatakse andmebaasi. Esiteks on see ajalugu ja muud sarnased andmed, VCS muudatused, agendid, kogumise järjekorrad, kasutajakontod ja õigused. Andmebaasi ei kuulu ainult kogumise logid ja artefaktid.

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

Paigaldamine Linuxile

TeamCity käsitsi installimiseks Tomcat servlet konteineri abil tuleks kasutada TeamCity arhiivi: TeamCity .tar.gz. Laadige see alla siit.

tar -xfz TeamCity.tar.gz

/bin /runAll. sh [start|stop]

Esimese käivitamise ajal tuleb valida andmebaasi tüüp, milles hoitakse kogumise andmeid.

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

Vaikimisi konfiguratsioon töötab aadressil localhost:8111/ ühe registreeritud kogumise agentiga, mis töötab samal arvutil.

TeamCity tugevused:

  • lihtne seadistamine;
  • kasutajasõbralik liides;
  • palju sisseehitatud funktsioone;
  • toetusteenus;
  • on olemas RESTful API;
  • hea dokumentatsioon;
  • hea kaitse.

Miinused:

  • piiratud integreerimine;
  • see on tasuline tööriist;
  • väike kogukond (mis, siiski, kasvab).

GoCD

Avatud lähtekoodiga projekt, mille installimiseks ja töötamiseks on vajalik Java Runtime Environment (JRE) versioon 8.

Süsteeminõuded:

  • RAM - vähemalt 1 GB, parem rohkem;
  • protsessor - kahetuumaline, tuuma töökiirus 2 GHz;
  • kõvaketas - vähemalt 1 GB vaba ruumi.

Agent:

  • RAM - vähemalt 128 MB, parem rohkem;
  • protsessor - vähemalt 2 GHz.

Server tagab agentide töö ja pakub kasutajale mugavat liidest:

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

Etapid/Tööd/Ülesanded:

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

Paigaldamine Linuxile

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]

Vaikimisi töötab GoCd localhost:8153.

GoCd tugevused:

  • avatud lähtekood;
  • lihtne installimine ja seadistamine;
  • hea dokumentatsioon;

  • suurepärane kasutajaliides:

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

  • võimalus samm-sammult kuvada GoCD juurutamise teed ühes vaates:

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

  • suurepärane torujuhtme struktuuri kuvamine:

3 populaarset tööriista pidevaks juurutamiseks (Continuous Deployment)

  • GoCD optimeerib CI/CD töövoo kõige nõutumates pilvekeskkondades, sealhulgas Docker, AWS;
  • Tööriist võimaldab parandada vooliku tõrkeid, mille jaoks jälgitakse iga muudatust commiti ja juurutamise vahel reaalajas.

Miinused:

  • Vajalik on vähemalt üks agent;
  • Ei ole konsooli, et kuvada kõiki täidetud ülesandeid;
  • Iga käsu täitmiseks tuleb luua üks ülesanne vooliku konfiguratsioonile;
  • Plugina installimiseks tuleb viia .jar-fail /plugins/external ja taaskäivitada server;
  • Suhteliselt väike kogukond.

Väljundina

Need on vaid kolm tööriista, tegelikult on neid palju rohkem. Valiku tegemine on keeruline, seetõttu on oluline pöörata tähelepanu ka muudele aspektidele.

Tööriista avatud allikakood annab võimaluse mõista, mis see endast kujutab, ning kiirem uute funktsioonide lisamine. Kuid kui midagi ei tööta, tuleb loota vaid enda ja kogukonna abi peale. Tasulised tööriistad pakuvad tuge, mis võib osutuda kriitiliselt oluliseks.

Kui turvalisus on kõige olulisem, tasub kasutada kohalikke tööriistu. Kui see pole nii oluline, siis SaaS-lahenduse valimine on hea variant.

Viimane asi: tõeliselt efektiivse pideva juurutamise protsessi tagamiseks tuleb välja töötada kriteeriumid, mille spetsiifika võimaldab kitsendada saadaval olevate tööriistade valikut.

Skillbox soovitab:

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster