3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

Continuous Deployment är ett speciellt tillvägagångssätt inom mjukvaruutveckling som används för att snabbt, säkert och effektivt implementera olika funktioner i mjukvara.

Huvudidén är att skapa en pålitlig automatiserad process som gör att utvecklaren snabbt kan leverera den färdiga produkten till användaren. Samtidigt görs ständiga förändringar i produktionen - detta kallas en kontinuerlig leveranspipeline (CD Pipeline).

Skillbox rekommenderar: Praktisk kurs "Mobilutvecklare PRO".

Påminnelse: för alla läsare av "Habr" - en rabatt på 10 000 rubel när du anmäler dig till någon Skillbox-kurs med hjälp av "Habr"-kampanjkoden.

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

För att kontrollera flödet kan du använda ett brett utbud av verktyg, inklusive både betalda och helt gratis. Den här artikeln beskriver tre av de mest populära lösningarna bland utvecklare som kan vara användbara för alla programmerare.

Jenkins

Helt fristående automationsserver med öppen källkod. Det är värt att arbeta med för att automatisera alla typer av uppgifter relaterade till att bygga, testa, frakta eller distribuera programvara.

Minsta PC-krav:

  • 256 MB RAM, 1 GB filutrymme.

Optimal:

  • 1 GB RAM, 50 GB hårddisk.

För att fungera behöver du även ytterligare programvara - Java Runtime Environment (JRE) version 8.

Arkitekturen (distribuerad datoranvändning) ser ut så här:
3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

Jenkins Server är en installation som ansvarar för GUI-värd, samt för att organisera och utföra hela bygget.

Jenkins Node/Slave/Build Server - enheter som kan konfigureras för att utföra byggarbete på uppdrag av Mastern (huvudnoden).

Installation för Linux

Först måste du lägga till Jenkins repository till 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

Uppdatera paketförrådet:

sudo apt uppdatera

Installera Jenkins:

sudo apt installera jenkins

Efter detta kommer Jenkins att vara tillgänglig i systemet via standardporten 8080.

För att kontrollera funktionalitet måste du öppna adressen i webbläsaren lokalvärd:8080. Systemet kommer då att uppmana dig att ange det ursprungliga lösenordet för root-användaren. Detta lösenord finns i filen /var/lib/jenkins/secrets/initialAdminPassword.

Nu är allt klart, du kan börja skapa CI/CD-flöden. Det grafiska gränssnittet för arbetsbänken ser ut så här:

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

Jenkins styrkor:

  • skalbarhet tillhandahållen av Master/Slave-arkitekturen;
  • tillgänglighet av REST XML/JSON API;
  • möjligheten att ansluta ett stort antal tillägg tack vare plugins;
  • ett aktivt och ständigt utvecklande samhälle.

Nackdelar:

  • det finns inget analytiskt block;
  • inte särskilt användarvänligt gränssnitt.

TeamCity

Kommersiell utveckling från JetBrains. Servern är bra med enkel installation och ett utmärkt gränssnitt. Standardkonfigurationen har ett stort antal funktioner, och antalet tillgängliga plugins ökar hela tiden.

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

Serverns hårdvarukrav är icke-kritiska:

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

Servern låter dig uppnå hög prestanda:

  • 60 projekt med 300 byggkonfigurationer;
  • 2 MB tilldelning för bygglogg;
  • 50 byggmedel;
  • förmågan att arbeta med 50 användare i webbversionen och 30 användare i IDE;
  • 100 anslutningar av extern VCS, vanligtvis Perforce och Subversion. Den genomsnittliga ändringstiden är 120 sekunder;
  • mer än 150 ändringar per dag;
  • arbeta med databasen på en server;
  • JVM-serverprocessinställningar: -Xmx1100m -XX:MaxPermSize=120m.

Agentkrav baseras på körande sammanställningar. Serverns huvuduppgift är att övervaka alla anslutna agenter och distribuera köförsamlingar till dessa agenter baserat på kompatibilitetskrav, och rapportera resultaten. Agenter finns i en mängd olika plattformar och operativsystem, plus en förkonfigurerad miljö.

All information om byggresultaten lagras i databasen. Detta är främst historik och andra liknande data, VCS-ändringar, agenter, byggköer, användarkonton och behörigheter. Databasen inkluderar inte bara byggloggar och artefakter.

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

Installation för Linux

För att manuellt installera TeamCity med en Tomcat-servletbehållare bör du använda TeamCity-arkivet: TeamCity .tar.gz. Ladda ner du kan få det härifrån.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [start|stopp]

När du först startar måste du välja vilken typ av databas i vilken sammansättningsdata ska lagras.

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

Standardkonfigurationen körs på lokalvärd:8111/ med en registrerad byggagent som körs på samma dator.

TeamCitys styrkor:

  • enkel installation;
  • användarvänligt gränssnitt;
  • ett stort antal inbyggda funktioner;
  • Support Service;
  • det finns ett RESTful API;
  • bra dokumentation;
  • bra säkerhet.

Nackdelar:

  • begränsad integration;
  • Detta är ett betalverktyg;
  • ett litet samhälle (som dock växer).

GoCD

Ett projekt med öppen källkod som kräver Java Runtime Environment (JRE) version 8 för installation och drift.

Systemkrav:

  • RAM - 1 GB minimum, mer är bättre;
  • processor - dual-core, med en kärnfrekvens på 2 GHz;
  • hårddisk - minst 1 GB ledigt utrymme.

Ombud:

  • RAM - minst 128 MB, mer är bättre;
  • processor - minst 2 GHz.

Servern säkerställer driften av agenter och tillhandahåller ett bekvämt gränssnitt för användaren:

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

Stadier/jobb/uppgifter:

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

Installation för Linux

eko "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 körs GoCd på lokalvärd: 8153.

GoCds styrkor:

  • öppen källa;
  • enkel installation och konfiguration;
  • bra dokumentation;

  • Bra användargränssnitt:

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

  • förmåga att visa steg-för-steg GoCD-distributionsväg i en vy:

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

  • utmärkt visning av pipelinestrukturen:

3 populära verktyg för att organisera kontinuerlig driftsättning (Kontinuerlig distribution)

  • GoCD optimerar CD-arbetsflödet i de mest populära molnmiljöerna inklusive Docker, AWS;
  • verktyget gör det möjligt att korrigera problem i pipeline, för vilka det finns spårning av varje förändring från commit till implementering i realtid.

Nackdelar:

  • minst en agent behövs;
  • det finns ingen konsol för att visa alla slutförda uppgifter;
  • för att utföra varje kommando måste du skapa en uppgift för pipelinekonfigurationen;
  • För att installera plugin-programmet måste du flytta .jar-filen till /plugins/external och starta om servern;
  • relativt litet samhälle.

Som slutsats

Det här är bara tre verktyg, det finns faktiskt många fler. Det är svårt att välja, så du måste definitivt vara uppmärksam på ytterligare aspekter.

Verktygets öppna källkod gör det möjligt att förstå vad det är, plus lägga till nya funktioner snabbare. Men om något inte fungerar måste du bara lita på dig själv och samhällets hjälp. Betalverktyg ger stöd som ibland kan vara kritiskt.

Om säkerhet är din högsta prioritet är det värt att arbeta med ett lokalt verktyg. Om inte är det ett bra alternativ att välja en SaaS-lösning.

Och slutligen, för att säkerställa en verkligt effektiv kontinuerlig driftsättningsprocess, måste du formulera kriterier vars detaljer gör att du kan begränsa utbudet av tillgängliga verktyg.

Skillbox rekommenderar:

Källa: will.com

Lägg en kommentar