3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

JÀtkuv juurutamine on tarkvaraarenduse erimeetod, mis vÔimaldab kiiresti, ohutult ja tÔhusalt rakendada erinevaid funktsioone tarkvarasse.

Peamine idee on luua usaldusvÀÀrne automatiseeritud protsess, mis lubab arendajal kiiresti kasutajale valmistoote esitada. Sellega tehakse pidevaid muudatusi tootmisprotsessis — seda nimetatakse pideva kohaletoimetamise konveieriks (CD Pipeline).

Skillbox soovitab: Praktiline kursus «Mobiilne arendaja PRO».

Tuletame meelde: kĂ”igile «Habr» lugejatele – 10 000 rubla allahindlus igale Skillboxi kursusele, kasutades sooduskoodi «Habr».

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

Voogude juhtimiseks saab kasutada laia valikut tööriistu, sealhulgas tasulisi ja tÀiesti tasuta lahendusi. Selles artiklis tutvustatakse kolme populaarseimat arendajate seas kasutatavat lahendust, mis vÔivad olla kasulikud igale programmeerijale.

Jenkinsile

TĂ€ielik autonoomne automatiseerimise server avatud lĂ€htekoodiga. Soovitame seda kasutada, et automatiseerida kĂ”iki ĂŒlesandeid, mis on seotud tarkvara kokkupanemise, testimise, kohaletoimetamise vĂ”i juurutamisega.

Minimaalsed nÔudmised arvutile:

  • 256 MB RAM-i, 1 GB kettaruumi.

Optimaalselt:

  • 1 GB RAM-i, 50 GB kĂ”vakettaruumi.

Tööks on vajalik ka lisatarkvara - Java Runtime Environment (JRE) versioon 8.

Arhitektuur (jaotatud arvutused) nÀeb vÀlja jÀrgmine:
3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

Jenkins Server - installatsioon, mis vastutab GUI majutamise, samuti kogu kokkupaneku korraldamise ja tÀitmise eest.

Jenkins Node/JÀreltöötaja/Ehitusserver - seadmed, mida saab seadistada tööde tÀitmiseks kokkupanekuks Master'i (peamooduli) nimel.

Installatsioon Linuxile

Alustuseks tuleb lisada Jenkins repostiitrium 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

Uuendada pakettide reposiiti:

sudo apt update

Paigaldada Jenkins:

sudo apt install jenkins

PĂ€rast seda on Jenkins sĂŒsteemis saadaval vaikimisi porti 8080 kaudu.

Töökorras kontrollimiseks tuleb brauseris avada aadress localhost:8080. SeejĂ€rel palub sĂŒsteem sisestada algse root-Ă”igustega kasutaja parooli. See parool asub failis /var/lib/jenkins/secrets/initialAdminPassword.

NĂŒĂŒd on kĂ”ik valmis tööks, saab alustada CI/CD voogude loomisega. Graafiline kasutajaliidese keskkond nĂ€eb vĂ€lja jĂ€rgmine:

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

Jenkins'i tugevused:

  • skaalautuvus, mida tagab Master/Slave arhitektuur;
  • REST XML/JSON API olemasolu;
  • vĂ”imalus lisada palju laiendusi pluginate abil;
  • aktiivne ja pidevalt arenev kogukond.

Miinused:

  • puudub analĂŒĂŒtiline plokk;
  • liigselt ebamugav liides.

TeamCity

Kaubanduslik arendus ettevÔttelt JetBrains. Serveril on hea lihtne seadistus ja suurepÀrane liides. Vaikimisi konfiguratsioonis on palju funktsioone ning saadaval olevate pluginade arv kasvab pidevalt.

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

Serveri riistvaranÔuded pole kriitilised:

  • RAM — 3,2 GB;
  • protsessor — kahetuumaline, 3,2 GHz;
  • ĂŒhenduskanali lĂ€bilaskevĂ”ime 1 Gbps.

Server vÔimaldab saavutada kÔrget jÔudlust töös:

  • 60 projekti, 300 koostamisconfiguratsiooni;
  • 2 MB eraldamine koostamislogile;
  • 50 koostamisagenti;
  • vĂ”imalus töötada 50 kasutajal veebiversioonis ja 30 kasutajal IDE-s;
  • 100 ĂŒhendust vĂ€lise VCS-iga, tavaliselt Perforce ja Subversion. Keskmine muudatuste aeg — 120 sekundit;
  • ĂŒle 150 modifikatsiooni pĂ€evas;
  • töö andmebaasiga ĂŒhel serveril;
  • JVM serveriprotsessi seaded: -Xmx1100m -XX:MaxPermSize=120m.

Agendi nĂ”uded on tingitud töötavatest koostamistest. Serveri pĂ”hieesmĂ€rk on jĂ€lgida kĂ”iki ĂŒhendatud agente ja jaotada koostamised jĂ€rjekorrast nende agentide vahel ĂŒhilduvusnĂ”uete alusel, edastades tulemused. Agente kasutavad erinevad platvormid ja operatsioonisĂŒsteemid, pluss eelnevalt konfigureeritud keskkond.

Kogu teave koostamise tulemustest salvestatakse andmebaasi. See sisaldab peamiselt ajalugu ja muid sarnaseid andmeid, VCSi muudatusi, agente, koostamisjÀrjekordi, kasutajakontosid ja Ôigusi. Andmebaasi ei kuulu siiski koostamislogid ja artefaktid.

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

Installatsioon Linuxile

TeamCity kÀsitsi installimiseks Tomcat servleti konteineriga tuleb kasutada TeamCity arhiivi: TeamCity .tar.gz. Laadige alla seda saab siit.

tar -xfz TeamCity.tar.gz

/bin /runAll. sh [start|stop]

Esimese kĂ€ivitamise ajal tuleb valida andmebaasi tĂŒĂŒp, kus salvestatakse koostamise andmed.

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

Vaikimisi konfiguratsioon töötab aadressil localhost:8111/ ĂŒhe registreeritud koostamisagendiga, mis töötab samas arvutis.

TeamCity tugevused:

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

Miinused:

  • piiratud integreerimine;
  • see on tasuline tööriist;
  • vĂ€ike kogukond (kuigi see kasvab).

GoCD

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

SĂŒsteemi nĂ”uded:

  • RAM — vĂ€hemalt 1 GB, parem rohkem;
  • protsessor — kahetuumaline, minimaalne tuuma töökiirus 2 GHz;
  • kĂ”vaketas — vĂ€hemalt 1 GB vaba ruumi.

Agendi:

  • RAM — vĂ€hemalt 128 MB, parem rohkem;
  • protsessor — vĂ€hemalt 2 GHz.

Server hooldab agente ja pakub kasutajasÔbralikku liidest:

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

Etapid/Tööd/Ülesanded:

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

Installatsioon 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 installatsioon ja seadistamine;
  • hea dokumentatsioon;

  • suurepĂ€rane kasutajaliides:

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

  • vĂ”imalus kuvada GoCD rakendamise teed ĂŒhes vaates:

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

  • suurepĂ€rane torujuhtme struktuuri kuvamine:

3 populaarset tööriista pideva arenguprotsessi korraldamiseks (Continuous Deployment)

  • GoCD optimeerib CD töövoogusid kĂ”ige nĂ”udlikumates pilvekeskkondades, sealhulgas Docker, AWS;
  • tööriist vĂ”imaldab konveierite tĂ”rgete parandamist, pakkudes reaalajas jĂ€lgimist iga muudatuse jaoks alates commit'ist kuni rakendamiseni.

Miinused:

  • vajalik vĂ€hemalt ĂŒks agent;
  • kĂ”ikide tĂ€idetud ĂŒlesannete kuvamiseks pole konsooli;
  • iga kĂ€su tĂ€itmiseks tuleb luua konveieri konfiguratsioonile ĂŒks ĂŒlesanne;
  • plugina installimiseks tuleb .jar-fail liigutada /plugins/external ja server taaskĂ€ivitada;
  • suhteliselt vĂ€ike kogukond.

VĂ€ljundina

Need on vaid kolm tööriista, tegelikult on neid palju rohkem. Valimine on keeruline, seega on oluline pöörata tÀhelepanu tÀiendavatele aspektidele.

Tööriista avatud lÀhtekood vÔimaldab mÔista, mis see endast kujutab, lisaks on kiiremini uusi funktsioone lisada. Kuid kui midagi ei tööta, tuleb loota ainult endale ja kogukonna abile. Tasulised tööriistad pakuvad tuge, mis vÔib mÔnikord olla kriitiliselt tÀrke.

Kui turvalisus on kÔige olulisem, tuleks töötada kohaliku tööriistaga. Kui mitte, siis on SaaS-lahenduse valik hea variant.

Ja viimaseks: tÔhusa pideva vÀljatöötamise protsessi tagamiseks tuleb kehtestada kriteeriumid, mille spetsiifika aitab kitsendada saadaval olevate tööriistade valikut.

Skillbox soovitab:

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster