3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

Continuous Deployment er en spesiell tilnærming innen programvareutvikling som brukes til raskt, sikkert og effektivt å implementere ulike funksjoner i programvare.

Hovedideen er å lage en pålitelig automatisert prosess som lar utvikleren raskt levere det ferdige produktet til brukeren. Samtidig gjøres det stadige endringer i produksjonen - dette kalles en kontinuerlig leveringspipeline (CD Pipeline).

Skillbox anbefaler: Praktisk kurs "Mobilutvikler PRO".

Vi minner om: for alle lesere av "Habr" - en rabatt på 10 000 rubler når du melder deg på et hvilket som helst Skillbox-kurs ved å bruke kampanjekoden "Habr".

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

For å kontrollere flyten kan du bruke en lang rekke verktøy, inkludert både betalte og helt gratis. Denne artikkelen beskriver tre av de mest populære løsningene blant utviklere som kan være nyttige for enhver programmerer.

Jenkins

Fullstendig selvstendig åpen kildekode-automatiseringsserver. Det er verdt å jobbe med for å automatisere alle slags oppgaver knyttet til bygging, testing, frakt eller distribusjon av programvare.

Minimumskrav til PC:

  • 256 MB RAM, 1 GB filplass.

Optimal:

  • 1 GB RAM, 50 GB harddisk.

For å fungere trenger du også tilleggsprogramvare - Java Runtime Environment (JRE) versjon 8.

Arkitekturen (distribuert databehandling) ser slik ut:
3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

Jenkins Server er en installasjon som er ansvarlig for GUI-hosting, samt organisering og utførelse av hele bygget.

Jenkins Node/Slave/Build Server - enheter som kan konfigureres til å utføre byggearbeid på vegne av Master (masternode).

Installasjon for Linux

Først må du legge til Jenkins-depotet til systemet:

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

Oppdater pakkelager:

sudo apt oppdatering

Installer Jenkins:

sudo apt installer jenkins

Etter dette vil Jenkins være tilgjengelig i systemet via standardporten 8080.

For å sjekke funksjonalitet må du åpne adressen i nettleseren localhost:8080. Systemet vil da be deg om å angi det første passordet for root-brukeren. Dette passordet ligger i filen /var/lib/jenkins/secrets/initialAdminPassword.

Nå er alt klart til bruk, du kan begynne å lage CI/CD-flyter. Det grafiske grensesnittet til arbeidsbenken ser slik ut:

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

Jenkins styrker:

  • skalerbarhet levert av Master/Slave-arkitekturen;
  • tilgjengeligheten av REST XML/JSON API;
  • muligheten til å koble til et stort antall utvidelser takket være plugins;
  • aktivt og stadig utviklende samfunn.

Cons:

  • det er ingen analytisk blokkering;
  • ikke veldig brukervennlig grensesnitt.

TeamCity

Kommersiell utvikling fra JetBrains. Serveren er god med enkelt oppsett og et utmerket grensesnitt. Standardkonfigurasjonen har et stort antall funksjoner, og antallet tilgjengelige plugins øker stadig.

Krever Java Runtime Environment (JRE) versjon 8.

Servermaskinvarekravene er ikke-kritiske:

  • RAM - 3,2 GB;
  • prosessor - dual-core, 3,2 GHz;
  • kommunikasjonskanal med en kapasitet på 1 Gb/s.

Serveren lar deg oppnå høy ytelse:

  • 60 prosjekter med 300 byggekonfigurasjoner;
  • 2 MB tildeling for byggelogg;
  • 50 byggemidler;
  • muligheten til å jobbe med 50 brukere i webversjonen og 30 brukere i IDE;
  • 100 tilkoblinger av ekstern VCS, vanligvis Perforce og Subversion. Gjennomsnittlig endringstid er 120 sekunder;
  • mer enn 150 modifikasjoner per dag;
  • arbeide med databasen på én server;
  • JVM-serverprosessinnstillinger: -Xmx1100m -XX:MaxPermSize=120m.

Agentkrav er basert på kjørende forsamlinger. Hovedoppgaven til serveren er å overvåke alle tilkoblede agenter og distribuere sammenstillinger i kø til disse agentene basert på kompatibilitetskrav, og rapportere resultatene. Agenter kommer i en rekke plattformer og operativsystemer, pluss et forhåndskonfigurert miljø.

All informasjon om byggeresultatene lagres i databasen. Primært er dette historikk og andre lignende data, VCS-endringer, agenter, byggekøer, brukerkontoer og tillatelser. Databasen inkluderer ikke bare byggelogger og artefakter.

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

Installasjon for Linux

For å manuelt installere TeamCity med en Tomcat-servletbeholder, bør du bruke TeamCity-arkivet: TeamCity .tar.gz. nedlasting du kan få det herfra.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [start|stopp]

Når du først starter, må du velge hvilken type database som sammenstillingsdataene skal lagres i.

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

Standardkonfigurasjonen kjører på localhost:8111/ med én registrert byggeagent som kjører på samme PC.

TeamCitys styrker:

  • enkelt oppsett;
  • brukervennlig grensesnitt;
  • et stort antall innebygde funksjoner;
  • støttetjeneste;
  • det er en RESTful API;
  • god dokumentasjon;
  • god sikkerhet.

Cons:

  • begrenset integrasjon;
  • Dette er et betalt verktøy;
  • et lite samfunn (som imidlertid vokser).

GoCD

Et åpen kildekode-prosjekt som krever Java Runtime Environment (JRE) versjon 8 for installasjon og drift.

Systemkrav:

  • RAM - 1 GB minimum, mer er bedre;
  • prosessor - dual-core, med en kjernefrekvens på 2 GHz;
  • harddisk - minst 1 GB ledig plass.

Middel:

  • RAM - minst 128 MB, mer er bedre;
  • prosessor - minst 2 GHz.

Serveren sikrer driften av agenter og gir et praktisk grensesnitt for brukeren:

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

Stadier/jobber/oppgaver:

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

Installasjon for Linux

ekko "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|stopp|status|omstart]

/etc/init.d/go-agent [start|stopp|status|omstart]

Som standard kjører GoCd på localhost: 8153.

GoCds styrker:

  • åpen kilde;
  • enkel installasjon og konfigurasjon;
  • god dokumentasjon;

  • Flott brukergrensesnitt:

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

  • muligheten til å vise trinn-for-trinn GoCD-distribusjonsbane i én visning:

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

  • utmerket visning av rørledningsstrukturen:

3 populære verktøy for å organisere kontinuerlig distribusjon (Continuous Deployment)

  • GoCD optimerer CD-arbeidsflyten i de mest populære skymiljøene, inkludert Docker, AWS;
  • verktøyet gjør det mulig å rette opp problemer i pipelinen, som det er sporing av hver endring fra forpliktelse til utrulling i sanntid.

Cons:

  • minst én agent er nødvendig;
  • det er ingen konsoll for å vise alle fullførte oppgaver;
  • for å utføre hver kommando, må du opprette én oppgave for rørledningskonfigurasjonen;
  • For å installere plugin-en må du flytte .jar-filen til /plugins/external og start serveren på nytt;
  • relativt lite samfunn.

Som en konklusjon

Dette er bare tre verktøy, faktisk er det mange flere. Det er vanskelig å velge, så du må definitivt ta hensyn til flere aspekter.

Den åpne kildekoden til verktøyet gjør det mulig å forstå hva det er, pluss legge til nye funksjoner raskere. Men hvis noe ikke fungerer, må du bare stole på deg selv og hjelpen fra fellesskapet. Betalt verktøy gir støtte som noen ganger kan være kritisk.

Hvis sikkerhet er din høyeste prioritet, er det verdt å jobbe med et lokalt verktøy. Hvis ikke, er det et godt alternativ å velge en SaaS-løsning.

Og til slutt, for å sikre en virkelig effektiv kontinuerlig distribusjonsprosess, må du formulere kriterier hvis spesifikasjoner vil tillate deg å begrense utvalget av tilgjengelige verktøy.

Skillbox anbefaler:

Kilde: www.habr.com

Legg til en kommentar