3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

Continuous Deployment er en særlig tilgang inden for softwareudvikling, der bruges til hurtigt, sikkert og effektivt at implementere forskellige funktioner i software.

Hovedideen er at skabe en pålidelig automatiseret proces, der gør det muligt for udvikleren hurtigt at levere det færdige produkt til brugeren. Samtidig sker der konstante ændringer i produktionen - det kaldes en kontinuerlig leveringspipeline (CD Pipeline).

Skillbox anbefaler: Praktisk kursus "Mobiludvikler PRO".

Påmindelse: for alle læsere af "Habr" - en rabat på 10 rubler ved tilmelding til ethvert Skillbox-kursus ved hjælp af "Habr"-kampagnekoden.

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

For at styre flowet kan du bruge en lang række værktøjer, herunder både betalt og helt gratis. Denne artikel beskriver tre af de mest populære løsninger blandt udviklere, som kan være nyttige for enhver programmør.

Jenkins

Fuldstændig selvstændig open source automatiseringsserver. Det er værd at arbejde med at automatisere alle slags opgaver relateret til bygning, test, forsendelse eller implementering af software.

Minimum pc-krav:

  • 256 MB RAM, 1 GB filplads.

Optimal:

  • 1 GB RAM, 50 GB harddisk.

For at fungere skal du også bruge ekstra software - Java Runtime Environment (JRE) version 8.

Arkitekturen (distribueret computing) ser sådan ud:
3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

Jenkins Server er en installation, der er ansvarlig for GUI-hosting, samt organisering og eksekvering af hele buildet.

Jenkins Node/Slave/Build Server - enheder, der kan konfigureres til at udføre byggearbejde på vegne af Master (masternode).

Installation til Linux

Først skal du tilføje 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

Opdater pakkelager:

sudo apt opdatering

Installer Jenkins:

sudo apt installere jenkins

Herefter vil Jenkins være tilgængelig i systemet via standardporten 8080.

For at tjekke funktionaliteten skal du åbne adressen i browseren localhost:8080. Systemet vil derefter bede dig om at indtaste den oprindelige adgangskode for root-brugeren. Denne adgangskode er placeret i filen /var/lib/jenkins/secrets/initialAdminPassword.

Nu er alt klar til at gå, du kan begynde at oprette CI/CD-flows. Den grafiske grænseflade på arbejdsbænken ser sådan ud:

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

Jenkins styrker:

  • skalerbarhed leveret af Master/Slave-arkitekturen;
  • tilgængelighed af REST XML/JSON API;
  • evnen til at forbinde et stort antal udvidelser takket være plugins;
  • et aktivt samfund i konstant udvikling.

Ulemper:

  • der er ingen analytisk blokering;
  • ikke særlig brugervenlig grænseflade.

TeamCity

Kommerciel udvikling fra JetBrains. Serveren er god med enkel opsætning og en fremragende grænseflade. Standardkonfigurationen har et stort antal funktioner, og antallet af tilgængelige plugins er konstant stigende.

Kræver Java Runtime Environment (JRE) version 8.

Serverhardwarekravene er ikke-kritiske:

  • RAM - 3,2 GB;
  • processor - dual-core, 3,2 GHz;
  • kommunikationskanal med en kapacitet på 1 Gb/s.

Serveren giver dig mulighed for at opnå høj ydeevne:

  • 60 projekter med 300 byggekonfigurationer;
  • 2 MB tildeling til byggelog;
  • 50 byggemidler;
  • evnen til at arbejde med 50 brugere i webversionen og 30 brugere i IDE;
  • 100 forbindelser af ekstern VCS, normalt Perforce og Subversion. Den gennemsnitlige ændringstid er 120 sekunder;
  • mere end 150 ændringer pr. dag;
  • arbejde med databasen på én server;
  • JVM-serverprocesindstillinger: -Xmx1100m -XX:MaxPermSize=120m.

Agentkrav er baseret på kørende forsamlinger. Serverens hovedopgave er at overvåge alle tilsluttede agenter og distribuere assemblies i kø til disse agenter baseret på kompatibilitetskrav og rapportere resultaterne. Agenter kommer i en række forskellige platforme og operativsystemer plus et forudkonfigureret miljø.

Al information om byggeresultaterne gemmes i databasen. Dette er primært historie og andre lignende data, VCS-ændringer, agenter, build-køer, brugerkonti og tilladelser. Databasen inkluderer ikke kun byggelogfiler og artefakter.

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

Installation til Linux

For manuelt at installere TeamCity med en Tomcat-servletbeholder, skal du bruge TeamCity-arkivet: TeamCity .tar.gz. Hent du kan få det herfra.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [start|stop]

Når du starter første gang, skal du vælge den type database, som samlingsdataene skal gemmes i.

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

Standardkonfigurationen kører på localhost:8111/ med én registreret build-agent, der kører på den samme pc.

TeamCitys styrker:

  • nem opsætning
  • brugervenlig grænseflade;
  • et stort antal indbyggede funktioner;
  • support;
  • der er en RESTful API;
  • god dokumentation;
  • god sikkerhed.

Ulemper:

  • begrænset integration;
  • Dette er et betalt værktøj;
  • et lille samfund (som dog er i vækst).

GoCD

Et open source-projekt, der kræver Java Runtime Environment (JRE) version 8 til installation og drift.

Systemkrav:

  • RAM - 1 GB minimum, mere er bedre;
  • processor - dual-core, med en kernefrekvens på 2 GHz;
  • harddisk - mindst 1 GB ledig plads.

Agent:

  • RAM - mindst 128 MB, mere er bedre;
  • processor - mindst 2 GHz.

Serveren sikrer driften af ​​agenter og giver en praktisk grænseflade for brugeren:

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

Stadier/Jobs/Opgaver:

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

Installation til Linux

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

krølle 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|genstart]

/etc/init.d/go-agent [start|stop|status|genstart]

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

GoCds styrker:

  • åben kildekode;
  • enkel installation og konfiguration;
  • god dokumentation;

  • Fantastisk brugergrænseflade:

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

  • evne til at vise trin-for-trin GoCD-implementeringssti i én visning:

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

  • fremragende visning af pipelinestrukturen:

3 populære værktøjer til at organisere kontinuerlig implementering (Continuous Deployment)

  • GoCD optimerer CD-arbejdsgangen i de mest populære cloud-miljøer, herunder Docker, AWS;
  • værktøjet gør det muligt at rette op på problemer i pipelinen, for hvilke der er sporing af hver ændring fra commit til implementering i realtid.

Ulemper:

  • mindst én agent er nødvendig;
  • der er ingen konsol til at vise alle afsluttede opgaver;
  • for at udføre hver kommando skal du oprette én opgave til pipeline-konfigurationen;
  • For at installere plugin'et skal du flytte .jar-filen til /plugins/external og genstart serveren;
  • relativt lille samfund.

Som konklusion

Det er kun tre værktøjer, faktisk er der mange flere. Det er svært at vælge, så du skal helt sikkert være opmærksom på yderligere aspekter.

Værktøjets åbne kildekode gør det muligt at forstå, hvad det er, plus tilføje nye funktioner hurtigere. Men hvis noget ikke virker, så skal du kun stole på dig selv og fællesskabets hjælp. Betalt værktøjer giver support, der nogle gange kan være kritisk.

Hvis sikkerhed er din topprioritet, er det værd at arbejde med et lokalt værktøj. Hvis ikke, så er det en god mulighed at vælge en SaaS-løsning.

Og til sidst, for at sikre en virkelig effektiv kontinuerlig implementeringsproces, skal du formulere kriterier, hvis detaljer vil give dig mulighed for at indsnævre rækken af ​​tilgængelige værktøjer.

Skillbox anbefaler:

Kilde: www.habr.com

Tilføj en kommentar