3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

Continuous Deployment is een bijzondere aanpak in softwareontwikkeling die wordt gebruikt om snel, veilig en efficiënt verschillende functies in software te implementeren.

Het belangrijkste idee is om een ​​betrouwbaar geautomatiseerd proces te creëren waarmee de ontwikkelaar het eindproduct snel aan de gebruiker kan leveren. Tegelijkertijd worden er voortdurend wijzigingen aangebracht in de productie - dit wordt een continue leveringspijplijn (CD Pipeline) genoemd.

Skillbox beveelt aan: Praktische cursus "Mobiele ontwikkelaar PRO".

Herinnering: voor alle lezers van "Habr" - een korting van 10 roebel bij inschrijving voor een Skillbox-cursus met behulp van de promotiecode "Habr".

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

Om de stroom onder controle te houden, kunt u een breed scala aan tools gebruiken, zowel betaald als volledig gratis. Dit artikel beschrijft drie van de meest populaire oplossingen onder ontwikkelaars die voor elke programmeur nuttig kunnen zijn.

Jenkins

Volledig op zichzelf staande open source automatiseringsserver. Het is de moeite waard om mee te werken om allerlei taken te automatiseren die verband houden met het bouwen, testen, verzenden of implementeren van software.

Minimale pc-vereisten:

  • 256 MB RAM, 1 GB bestandsruimte.

Optimaal:

  • 1 GB RAM, 50 GB harde schijf.

Om te werken heb je ook aanvullende software nodig: Java Runtime Environment (JRE) versie 8.

De architectuur (distributed computing) ziet er als volgt uit:
3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

Jenkins Server is een installatie die verantwoordelijk is voor GUI-hosting en voor het organiseren en uitvoeren van de gehele build.

Jenkins Node/Slave/Build Server - apparaten die kunnen worden geconfigureerd om buildwerk uit te voeren namens de Master (masternode).

Installatie voor Linux

Eerst moet u de Jenkins-repository aan het systeem toevoegen:

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

Pakketrepository bijwerken:

sudo apt update

Jenkins installeren:

sudo apt installeer jenkins

Hierna zal Jenkins beschikbaar zijn in het systeem via de standaardpoort 8080.

Om de functionaliteit te controleren, moet u het adres in de browser openen localhost:8080. Het systeem vraagt ​​u vervolgens om het initiële wachtwoord voor de rootgebruiker in te voeren. Dit wachtwoord bevindt zich in het bestand /var/lib/jenkins/secrets/initialAdminPassword.

Nu alles gereed is, kunt u beginnen met het maken van CI/CD-stromen. De grafische interface van de werkbank ziet er als volgt uit:

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

Jenkins-sterke punten:

  • schaalbaarheid geboden door de Master/Slave-architectuur;
  • beschikbaarheid van REST XML/JSON API;
  • de mogelijkheid om een ​​groot aantal extensies aan te sluiten dankzij plug-ins;
  • actieve en voortdurend evoluerende gemeenschap.

Tegens:

  • er is geen analytisch blok;
  • niet erg gebruiksvriendelijke interface.

TeamCity

Commerciële ontwikkeling van JetBrains. De server is goed met een eenvoudige installatie en een uitstekende interface. De standaardconfiguratie heeft een groot aantal functies en het aantal beschikbare plug-ins neemt voortdurend toe.

Vereist Java Runtime Environment (JRE) versie 8.

De serverhardwarevereisten zijn niet-kritisch:

  • RAM-geheugen - 3,2 GB;
  • processor - dual-core, 3,2 GHz;
  • communicatiekanaal met een capaciteit van 1 Gb/s.

Met de server kunt u hoge prestaties bereiken:

  • 60 projecten met 300 buildconfiguraties;
  • 2 MB toewijzing voor buildlogboek;
  • 50 bouwagenten;
  • de mogelijkheid om te werken met 50 gebruikers in de webversie en 30 gebruikers in de IDE;
  • 100 aansluitingen van externe VCS, meestal Perforce en Subversion. De gemiddelde wisseltijd bedraagt ​​120 seconden;
  • meer dan 150 wijzigingen per dag;
  • werken met de database op één server;
  • JVM-serverprocesinstellingen: -Xmx1100m -XX:MaxPermSize=120m.

Agentvereisten zijn gebaseerd op actieve assemblages. De hoofdtaak van de server is het monitoren van alle verbonden agenten en het distribueren van in de wachtrij geplaatste assemblages naar deze agenten op basis van compatibiliteitsvereisten, en het rapporteren van de resultaten. Agents zijn verkrijgbaar op verschillende platforms en besturingssystemen, plus een vooraf geconfigureerde omgeving.

Alle informatie over de buildresultaten wordt opgeslagen in de database. Dit zijn voornamelijk geschiedenis en andere soortgelijke gegevens, VCS-wijzigingen, agenten, build-wachtrijen, gebruikersaccounts en machtigingen. De database bevat niet alleen buildlogboeken en artefacten.

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

Installatie voor Linux

Om TeamCity handmatig te installeren met een Tomcat-servletcontainer, moet u het TeamCity-archief gebruiken: TeamCity .tar.gz. Downloaden je kunt het hier vandaan halen.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [start|stop]

Wanneer u voor het eerst start, moet u het type database selecteren waarin de assemblagegegevens worden opgeslagen.

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

De standaardconfiguratie wordt uitgevoerd localhost:8111/ met één geregistreerde build-agent die op dezelfde pc draait.

De sterke punten van TeamCity:

  • eenvoudige installatie;
  • gebruikersvriendelijke interface;
  • een groot aantal ingebouwde functies;
  • steun;
  • er is een RESTful API;
  • goede documentatie;
  • goede beveiliging.

Tegens:

  • beperkte integratie;
  • Dit is een betaalde tool;
  • een kleine gemeenschap (die echter groeit).

GoCD

Een open source-project waarvoor Java Runtime Environment (JRE) versie 8 vereist is voor installatie en bediening.

Systeemvereisten:

  • RAM - minimaal 1 GB, meer is beter;
  • processor - dual-core, met een kernfrequentie van 2 GHz;
  • harde schijf - minimaal 1 GB vrije ruimte.

Tussenpersoon:

  • RAM - minimaal 128 MB, meer is beter;
  • processor - minimaal 2 GHz.

De server zorgt voor de werking van agenten en biedt een handige interface voor de gebruiker:

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

Fasen/banen/taken:

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

Installatie voor Linux

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

krullen download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key toevoegen -
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|herstart]

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

Standaard draait GoCd localhost: 8153.

De sterke punten van GoCd:

  • open source;
  • eenvoudige installatie en configuratie;
  • goede documentatie;

  • Geweldige gebruikersinterface:

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

  • mogelijkheid om het stapsgewijze GoCD-implementatiepad in één weergave weer te geven:

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

  • uitstekende weergave van de pijpleidingstructuur:

3 populaire tools voor het organiseren van continue implementatie (Continuous Deployment)

  • GoCD optimaliseert de cd-workflow in de meest populaire cloudomgevingen, waaronder Docker, AWS;
  • De tool maakt het mogelijk om problemen in de pijplijn te corrigeren, waarbij elke verandering, van commit tot implementatie, in realtime wordt gevolgd.

Tegens:

  • er is minimaal één agent nodig;
  • er is geen console om alle voltooide taken weer te geven;
  • om elke opdracht uit te voeren, moet u één taak maken voor de pijplijnconfiguratie;
  • Om de plug-in te installeren, moet u het .jar-bestand verplaatsen naar /plugins/external en start de server opnieuw op;
  • relatief kleine gemeenschap.

Als conclusie

Dit zijn slechts drie hulpmiddelen; er zijn er zelfs nog veel meer. Het is moeilijk om te kiezen, dus je moet zeker aandacht besteden aan aanvullende aspecten.

De open source-code van de tool maakt het mogelijk om te begrijpen wat het is, en om sneller nieuwe functies toe te voegen. Maar als iets niet werkt, ben je alleen op jezelf en de hulp van de gemeenschap aangewezen. Betaalde tools bieden ondersteuning die soms van cruciaal belang kan zijn.

Als beveiliging uw topprioriteit is, is het de moeite waard om met een lokale tool te werken. Zo niet, dan is kiezen voor een SaaS-oplossing een goede optie.

En ten slotte moet u, om een ​​werkelijk effectief, continu implementatieproces te garanderen, criteria opstellen waarvan de specifieke kenmerken u in staat stellen de reeks beschikbare tools te beperken.

Skillbox beveelt aan:

Bron: www.habr.com

Voeg een reactie