3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

Deurlopende Ontplooiing is 'n spesiale benadering in sagteware-ontwikkeling wat gebruik word om vinnig, veilig en doeltreffend verskeie funksies in sagteware te implementeer.

Die hoofgedagte is om 'n betroubare outomatiese proses te skep wat die ontwikkelaar in staat stel om die voltooide produk vinnig aan die gebruiker te lewer. Terselfdertyd word konstante veranderinge aan produksie aangebring - dit word 'n deurlopende afleweringspyplyn (CD Pipeline) genoem.

Skillbox beveel aan: Praktiese kursus "Mobiele ontwikkelaar PRO".

Ons herinner: vir alle lesers van "Habr" - 'n afslag van 10 000 roebels wanneer u inskryf vir enige Skillbox-kursus met behulp van die "Habr"-promosiekode.

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

Om die vloei te beheer, kan jy 'n wye reeks instrumente gebruik, insluitend betaal en heeltemal gratis. Hierdie artikel beskryf drie van die gewildste oplossings onder ontwikkelaars wat nuttig kan wees vir elke programmeerder.

Jenkins

Ten volle selfstandige oopbron-outomatiseringsbediener. Dit is die moeite werd om mee te werk om allerhande take te outomatiseer wat verband hou met die bou, toets, versending of die implementering van sagteware.

Minimum rekenaarvereistes:

  • 256 MB RAM, 1 GB lêerspasie.

Optimaal:

  • 1 GB RAM, 50 GB hardeskyf.

Om te werk, sal jy ook addisionele sagteware benodig - Java Runtime Environment (JRE) weergawe 8.

Die argitektuur (verspreide rekenaar) lyk soos volg:
3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

Jenkins Server is 'n installasie wat verantwoordelik is vir GUI-gasheer, sowel as die organisering en uitvoering van die hele bou.

Jenkins Node/Slave/Build Server - toestelle wat gekonfigureer kan word om bouwerk namens die Meester (hoofnodus) uit te voer.

Installasie vir Linux

Eerstens moet u die Jenkins-bewaarplek by die stelsel voeg:

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

Dateer pakketbewaarplek op:

sudo apt update

Installeer Jenkins:

sudo apt installeer jenkins

Hierna sal Jenkins beskikbaar wees in die stelsel via die verstekpoort 8080.

Om funksionaliteit na te gaan, moet jy die adres in die blaaier oopmaak localhost:8080. Die stelsel sal jou dan vra om die aanvanklike wagwoord vir die wortelgebruiker in te voer. Hierdie wagwoord is geleë in die lêer /var/lib/jenkins/secrets/initialAdminPassword.

Nou is alles gereed om te gaan, jy kan begin om CI/CD-vloei te skep. Die grafiese koppelvlak van die werkbank lyk soos volg:

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

Jenkins Sterkpunte:

  • skaalbaarheid verskaf deur die Meester/Slaaf-argitektuur;
  • beskikbaarheid van REST XML/JSON API;
  • die vermoë om 'n groot aantal uitbreidings te koppel danksy plugins;
  • aktiewe en voortdurend ontwikkelende gemeenskap.

Nadele:

  • daar is geen analitiese blok nie;
  • nie baie gebruikersvriendelike koppelvlak nie.

TeamCity

Kommersiële ontwikkeling van JetBrains. Die bediener is goed met eenvoudige opstelling en 'n uitstekende koppelvlak. Die verstekkonfigurasie het 'n groot aantal funksies, en die aantal beskikbare inproppe neem voortdurend toe.

Vereis Java Runtime Environment (JRE) weergawe 8.

Die bediener hardeware vereistes is nie-kritiek:

  • RAM - 3,2 GB;
  • verwerker - dubbelkern, 3,2 GHz;
  • kommunikasiekanaal met 'n kapasiteit van 1 Gb/s.

Die bediener laat jou toe om hoë werkverrigting te behaal:

  • 60 projekte met 300 bou-konfigurasies;
  • 2 MB-toekenning vir boulogboek;
  • 50 bou-agente;
  • die vermoë om met 50 gebruikers in die webweergawe en 30 gebruikers in die IDE te werk;
  • 100 verbindings van eksterne VCS, gewoonlik Perforce en Subversion. Die gemiddelde veranderingstyd is 120 sekondes;
  • meer as 150 wysigings per dag;
  • werk met die databasis op een bediener;
  • JVM bediener proses instellings: -Xmx1100m -XX:MaxPermSize=120m.

Agentvereistes is gebaseer op lopende samestellings. Die hooftaak van die bediener is om alle gekoppelde agente te monitor en tou-samestellings na hierdie agente te versprei op grond van versoenbaarheidsvereistes, en die resultate te rapporteer. Agente kom in 'n verskeidenheid platforms en bedryfstelsels, plus 'n vooraf-gekonfigureerde omgewing.

Alle inligting oor die bouresultate word in die databasis gestoor. Dit is hoofsaaklik geskiedenis en ander soortgelyke data, VCS-veranderinge, agente, bourye, gebruikersrekeninge en toestemmings. Die databasis bevat nie net boulogboeke en artefakte nie.

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

Installasie vir Linux

Om TeamCity handmatig met 'n Tomcat-servlethouer te installeer, moet jy die TeamCity-argief gebruik: TeamCity .tar.gz. Aflaai jy kan dit van hier af kry.

teer -xfz TeamCity.tar.gz

/bin/runAll. sh [begin|stop]

Wanneer jy die eerste keer begin, moet jy die tipe databasis kies waarin die samestellingdata gestoor sal word.

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

Die verstek konfigurasie loop op localhost:8111/ met een geregistreerde bouagent wat op dieselfde rekenaar loop.

TeamCity se sterkpunte:

  • eenvoudige opstelling;
  • gebruikersvriendelike koppelvlak;
  • 'n groot aantal ingeboude funksies;
  • Ondersteuningsdiens;
  • daar is 'n RUSTIGE API;
  • goeie dokumentasie;
  • goeie sekuriteit.

Nadele:

  • beperkte integrasie;
  • Dit is 'n betaalde hulpmiddel;
  • 'n klein gemeenskap (wat egter groei).

GoCD

'n Oopbronprojek wat Java Runtime Environment (JRE) weergawe 8 vir installasie en bedryf vereis.

Stelselvereistes:

  • RAM - 1 GB minimum, meer is beter;
  • verwerker - dubbelkern, met 'n kernfrekwensie van 2 GHz;
  • hardeskyf - ten minste 1 GB vrye spasie.

Agent:

  • RAM - ten minste 128 MB, meer is beter;
  • verwerker - ten minste 2 GHz.

Die bediener verseker die werking van agente en bied 'n gerieflike koppelvlak vir die gebruiker:

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

Stadiums/Jobs/Take:

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

Installasie vir Linux

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

krul download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key voeg -
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 [begin|stop|status|herbegin]

/etc/init.d/go-agent [begin|stop|status|herbegin]

GoCd loop standaard aan localhost: 8153.

GoCd se sterkpunte:

  • oop bron;
  • eenvoudige installasie en konfigurasie;
  • goeie dokumentasie;

  • Fantastiese gebruikerskoppelvlak:

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

  • vermoë om stap-vir-stap GoCD-ontplooiingspad in een aansig te wys:

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

  • uitstekende vertoning van die pyplynstruktuur:

3 gewilde gereedskap om deurlopende ontplooiing te organiseer (Deurlopende ontplooiing)

  • GoCD optimaliseer die CD-werkvloei in die gewildste wolkomgewings, insluitend Docker, AWS;
  • die instrument maak dit moontlik om probleme in die pyplyn reg te stel, waarvoor daar elke verandering van toewyding tot ontplooiing in reële tyd dopgehou word.

Nadele:

  • ten minste een agent word benodig;
  • daar is geen konsole om alle voltooide take te vertoon nie;
  • om elke opdrag uit te voer, moet jy een taak vir die pyplynkonfigurasie skep;
  • Om die inprop te installeer moet jy die .jar-lêer na skuif /plugins/external en herbegin die bediener;
  • relatief klein gemeenskap.

As gevolgtrekking

Dit is net drie instrumente, in werklikheid is daar baie meer. Dit is moeilik om te kies, so jy moet beslis aandag gee aan bykomende aspekte.

Die oopbronkode van die instrument maak dit moontlik om te verstaan ​​wat dit is, en voeg nuwe kenmerke vinniger by. Maar as iets nie werk nie, dan moet jy net op jouself en die hulp van die gemeenskap staatmaak. Betaalde gereedskap bied ondersteuning wat soms krities kan wees.

As sekuriteit jou topprioriteit is, is dit die moeite werd om met 'n plaaslike hulpmiddel te werk. Indien nie, dan is die keuse van 'n SaaS-oplossing 'n goeie opsie.

En laastens, om 'n werklik effektiewe deurlopende ontplooiingsproses te verseker, moet jy kriteria formuleer waarvan die besonderhede jou sal toelaat om die reeks beskikbare gereedskap te beperk.

Skillbox beveel aan:

Bron: will.com

Voeg 'n opmerking