3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

Continuous Deployment ass eng speziell Approche an der Softwareentwécklung déi benotzt gëtt fir séier, sécher an effizient verschidde Funktiounen a Software ëmzesetzen.

D'Haaptidee ass en zouverléissege automatiséierte Prozess ze kreéieren deen den Entwéckler erlaabt de fäerdege Produkt séier un de Benotzer ze liwweren. Zur selwechter Zäit gi konstant Ännerungen an der Produktioun gemaach - dëst gëtt eng kontinuéierlech Liwwerung Pipeline (CD Pipeline) genannt.

Skillbox recommandéiert: Praktesch Cours "Mobilentwéckler PRO".

Mir erënneren Iech: fir all Habr Lieser - eng Remise vun 10 Rubel wann Dir Iech an all Skillbox Cours aschreift mat dem Habr Promo Code.

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

Fir de Flux ze kontrolléieren, kënnt Dir eng breet Palette vun Tools benotzen, souwuel bezuelt a komplett gratis. Dësen Artikel beschreift dräi vun de populäersten Léisungen ënner Entwéckler, déi fir all Programméierer nëtzlech kënne sinn.

Jenkins

Voll selbstänneg Open Source Automatisatiounsserver. Et ass derwäert mat ze schaffen fir all Zort vun Aufgaben am Zesummenhang mam Bauen, Testen, Versand oder Ofbau vun Software ze automatiséieren.

Minimum PC Ufuerderunge:

  • 256 MB RAM, 1 GB Dateiraum.

Optimal:

  • 1 GB RAM, 50 GB Festplack.

Fir ze schaffen, braucht Dir och zousätzlech Software - Java Runtime Environment (JRE) Versioun 8.

D'Architektur (verdeelt Informatik) gesäit esou aus:
3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

Jenkins Server ass eng Installatioun déi verantwortlech ass fir GUI Hosting, souwéi d'Organisatioun an d'Ausféierung vum ganze Build.

Jenkins Node / Sklave / Build Server - Apparater déi konfiguréiert kënne ginn fir Bauaarbechten am Numm vum Master (Master Node) ze maachen.

Installatioun fir Linux

Als éischt musst Dir de Jenkins Repository an de System addéieren:

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

Update Package Repository:

sudo apt update

Installéiert Jenkins:

sudo apt installéieren jenkins

Duerno wäert Jenkins am System iwwer de Standardport 8080 verfügbar sinn.

Fir d'Funktionalitéit ze kontrolléieren, musst Dir d'Adress am Browser opmaachen localhost:8080. De System freet Iech dann dat initialt Passwuert fir de Root Benotzer anzeginn. Dëst Passwuert ass an der Datei /var/lib/jenkins/secrets/initialAdminPassword.

Elo ass alles prett fir ze goen, Dir kënnt ufänken CI / CD Flows ze kreéieren. Déi grafesch Interface vun der Workbench gesäit esou aus:

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

Jenkins Stäerkten:

  • Skalierbarkeet vun der Master / Sklave Architektur geliwwert;
  • Disponibilitéit vun REST XML / JSON API;
  • d'Kapazitéit fir eng grouss Zuel vun Extensiounen ze verbannen dank Plugins;
  • aktiv a stänneg evoluéierend Gemeinschaft.

Muecht:

  • et gëtt keng analytesch Spär;
  • net ganz User-frëndlech Interface.

TeamCity

Kommerziell Entwécklung vu JetBrains. De Server ass gutt mat engem einfachen Setup an enger exzellenter Interface. D'Standardkonfiguratioun huet eng grouss Zuel vu Funktiounen, an d'Zuel vun verfügbare Plugins ass stänneg erop.

Verlaangt Java Runtime Environment (JRE) Versioun 8.

D'Server Hardware Ufuerderunge sinn net kritesch:

  • RAM - 3,2 GB;
  • Prozessor - Dual-Core, 3,2 GHz;
  • Kommunikatiounskanal mat enger Kapazitéit vun 1 Gb/s.

De Server erlaabt Iech héich Leeschtung z'erreechen:

  • 60 Projete mat 300 Baukonfiguratiounen;
  • 2 MB Allokatioun fir Build Log;
  • 50 bauen Agenten;
  • d'Fäegkeet fir mat 50 Benotzer an der Webversioun an 30 Benotzer an der IDE ze schaffen;
  • 100 Verbindungen vun externen VCS, normalerweis Perforce an Subversion. Déi duerchschnëttlech Ännerungszäit ass 120 Sekonnen;
  • méi wéi 150 Ännerungen pro Dag;
  • Aarbecht mat der Datebank op engem Server;
  • JVM Server Prozess Astellunge: -Xmx1100m -XX:MaxPermSize = 120m.

Agent Ufuerderunge baséieren op Lafen Versammlungen. D'Haaptaufgab vum Server ass all verbonne Agenten ze iwwerwaachen an d'Wartesch Versammlungen un dës Agenten ze verdeelen baséiert op Kompatibilitéitsufuerderungen, d'Resultater ze berichten. Agenten kommen a ville Plattformen a Betribssystemer, plus e pre-konfiguréiert Ëmfeld.

All Informatioun iwwer d'Bauresultater gëtt an der Datebank gespäichert. Haaptsächlech ass dëst Geschicht an aner ähnlech Donnéeën, VCS Ännerungen, Agenten, Schlaangen bauen, Benotzerkonten a Permissiounen. D'Datebank enthält net nëmmen Build Logbicher an Artefakte.

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

Installatioun fir Linux

Fir TeamCity manuell mat engem Tomcat Servlet Container z'installéieren, sollt Dir den TeamCity Archiv benotzen: TeamCity .tar.gz. Download Dir kënnt et vun hei kréien.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [start|stoppen]

Wann Dir fir d'éischt ufänkt, musst Dir d'Zort vun der Datebank auswielen an där d'Versammlungsdaten gespäichert ginn.

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

D'Standardkonfiguratioun leeft weider localhost:8111/ mat engem registréierte Build Agent deen um selwechte PC leeft.

TeamCity seng Stäerkten:

  • einfache Setup;
  • userfrëndlech Interface;
  • eng grouss Zuel vu gebaut-an Funktiounen;
  • Ënnerstëtzung;
  • et gëtt e RESTful API;
  • gutt Dokumentatioun;
  • gutt Sécherheet.

Muecht:

  • limitéiert Integratioun;
  • Dëst ass e bezuelten Tool;
  • eng kleng Gemeng (déi awer wiisst).

GoCD

En Open Source Projet deen Java Runtime Environment (JRE) Versioun 8 fir Installatioun an Operatioun erfuerdert.

System Ufuerderunge:

  • RAM - 1 GB Minimum, méi ass besser;
  • Prozessor - Dual-Core, mat enger Kär Frequenz vun 2 GHz;
  • Festplack - op d'mannst 1 GB fräi Plaz.

Agent:

  • RAM - op d'mannst 128 MB, am léifsten méi;
  • Prozessor - op d'mannst 2 GHz.

De Server garantéiert d'Operatioun vun den Agenten a bitt e prakteschen Interface fir de Benotzer:

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

Etappen / Jobs / Aufgaben:

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

Installatioun fir Linux

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

esouvill 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|restart]

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

Par défaut leeft de GoCd weider localhost: 8153.

GoCd seng Stäerkten:

  • Open Source;
  • einfach Installatioun an Configuratioun;
  • gutt Dokumentatioun;

  • Great User Interface:

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

  • Fäegkeet fir Schrëtt-fir-Schrëtt GoCD Deployment Wee an enger Vue ze weisen:

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

  • excellent Affichage vun der Pipeline Struktur:

3 populär Tools fir kontinuéierlech Deployment ze organiséieren (Continuous Deployment)

  • GoCD optiméiert den CD-Workflow an de populäersten Cloud-Ëmfeld inklusiv Docker, AWS;
  • d'Instrument mécht et méiglech Problemer an der Pipeline ze korrigéieren, fir déi all Changement vun der Verpflichtung an der Installatioun an Echtzäit verfollegt gëtt.

Muecht:

  • op d'mannst een Agent ass néideg;
  • et gëtt keng Konsole fir all ofgeschloss Aufgaben ze weisen;
  • fir all Kommando auszeféieren, musst Dir eng Aufgab fir d'Pipelinekonfiguratioun erstellen;
  • Fir de Plugin z'installéieren, musst Dir d'.jar Datei réckelen /Plugins/extern an de Server nei starten;
  • relativ kleng Communautéit.

Als Conclusioun

Dëst sinn nëmmen dräi Tools, tatsächlech ginn et vill méi. Et ass schwéier ze wielen, also musst Dir definitiv op zousätzlech Aspekter oppassen.

Den Open Source Code vum Tool mécht et méiglech ze verstoen wat et ass, plus nei Features méi séier derbäi. Awer wann eppes net funktionnéiert, da musst Dir nëmmen op Iech selwer an d'Hëllef vun der Gemeinschaft vertrauen. Bezuelt Tools bidden Ënnerstëtzung déi heiansdo kritesch ka sinn.

Wann Sécherheet Är Haaptprioritéit ass, ass et derwäert mat engem lokalen Tool ze schaffen. Wann net, dann ass eng SaaS Léisung ze wielen eng gutt Optioun.

A schlussendlech, fir e wierklech effektive kontinuéierlechen Deploymentprozess ze garantéieren, musst Dir Critèren formuléieren, deenen hir Spezifizitéiten Iech erlaben d'Gamme vu verfügbaren Tools ze enk.

Skillbox recommandéiert:

Source: will.com

Setzt e Commentaire