3 eines populars per organitzar el desplegament continu (desplegament continu)

3 eines populars per organitzar el desplegament continu (desplegament continu)

El desplegament continu és un enfocament especial en el desenvolupament de programari que s'utilitza per implementar de manera ràpida, segura i eficient diverses funcions del programari.

La idea principal és crear un procés automatitzat fiable que permeti al desenvolupador lliurar ràpidament el producte acabat a l'usuari. Al mateix temps, es fan canvis constants a la producció: això s'anomena canalització de lliurament continu (CD Pipeline).

Skillbox recomana: Curs pràctic "Desenvolupador mòbil PRO".

Recordem: per a tots els lectors de "Habr": un descompte de 10 rubles en inscriure's a qualsevol curs de Skillbox amb el codi promocional "Habr".

3 eines populars per organitzar el desplegament continu (desplegament continu)

Per controlar el flux, podeu utilitzar una àmplia gamma d'eines, tant de pagament com totalment gratuïtes. Aquest article descriu tres de les solucions més populars entre els desenvolupadors que poden ser útils per a tots els programadors.

Jenkins

Servidor d'automatització de codi obert totalment autònom. Val la pena treballar-hi per automatitzar tot tipus de tasques relacionades amb la creació, prova, enviament o desplegament de programari.

Requisits mínims d'ordinador:

  • 256 MB de RAM, 1 GB d'espai per a fitxers.

òptim:

  • 1 GB de RAM, 50 GB de disc dur.

Per funcionar, també necessitareu programari addicional: Java Runtime Environment (JRE) versió 8.

L'arquitectura (informàtica distribuïda) té aquest aspecte:
3 eines populars per organitzar el desplegament continu (desplegament continu)

Jenkins Server és una instal·lació responsable de l'allotjament de la GUI, així com d'organitzar i executar tota la compilació.

Jenkins Node/Slave/Build Server: dispositius que es poden configurar per realitzar treballs de construcció en nom del mestre (node ​​principal).

Instal·lació per a Linux

Primer heu d'afegir el repositori Jenkins al sistema:

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

Actualitza el repositori de paquets:

sudo apt update

Instal·leu Jenkins:

sudo apt install jenkins

Després d'això, Jenkins estarà disponible al sistema mitjançant el port predeterminat 8080.

Per comprovar la funcionalitat, heu d'obrir l'adreça al navegador localhost:8080. Aleshores, el sistema us demanarà que introduïu la contrasenya inicial per a l'usuari root. Aquesta contrasenya es troba al fitxer /var/lib/jenkins/secrets/initialAdminPassword.

Ara tot està a punt per començar, podeu començar a crear fluxos CI/CD. La interfície gràfica del banc de treball té aquest aspecte:

3 eines populars per organitzar el desplegament continu (desplegament continu)

3 eines populars per organitzar el desplegament continu (desplegament continu)

Punts forts de Jenkins:

  • escalabilitat proporcionada per l'arquitectura Master/Slave;
  • disponibilitat de l'API REST XML/JSON;
  • la possibilitat de connectar un gran nombre d'extensions gràcies als connectors;
  • comunitat activa i en constant evolució.

Contres:

  • no hi ha cap bloc analític;
  • interfície poc fàcil d'utilitzar.

TeamCity

Desenvolupament comercial de JetBrains. El servidor és bo amb una configuració senzilla i una interfície excel·lent. La configuració predeterminada té un gran nombre de funcions i el nombre de connectors disponibles augmenta constantment.

Requereix Java Runtime Environment (JRE) versió 8.

Els requisits de maquinari del servidor no són crítics:

  • RAM - 3,2 GB;
  • processador - doble nucli, 3,2 GHz;
  • canal de comunicació amb una capacitat d'1 Gb/s.

El servidor us permet aconseguir un alt rendiment:

  • 60 projectes amb 300 configuracions de construcció;
  • Assignació de 2 MB per al registre de compilació;
  • 50 agents de construcció;
  • la capacitat de treballar amb 50 usuaris a la versió web i 30 usuaris a l'IDE;
  • 100 connexions de VCS externs, normalment Perforce i Subversion. El temps mitjà de canvi és de 120 segons;
  • més de 150 modificacions per dia;
  • treballar amb la base de dades en un servidor;
  • Configuració del procés del servidor JVM: -Xmx1100m -XX:MaxPermSize=120m.

Els requisits de l'agent es basen en l'execució de muntatges. La tasca principal del servidor és supervisar tots els agents connectats i distribuir els conjunts en cua a aquests agents en funció dels requisits de compatibilitat, informant dels resultats. Els agents vénen en una varietat de plataformes i sistemes operatius, a més d'un entorn preconfigurat.

Tota la informació sobre els resultats de la compilació s'emmagatzema a la base de dades. Principalment es tracta d'historial i altres dades similars, canvis de VCS, agents, cues de creació, comptes d'usuari i permisos. La base de dades no inclou només registres de compilació i artefactes.

3 eines populars per organitzar el desplegament continu (desplegament continu)

Instal·lació per a Linux

Per instal·lar manualment TeamCity amb un contenidor de servlets Tomcat, hauríeu d'utilitzar l'arxiu de TeamCity: TeamCity .tar.gz. descarregar pots aconseguir-ho des d'aquí.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [iniciar|aturar]

Quan inicieu per primera vegada, heu de seleccionar el tipus de base de dades en què s'emmagatzemaran les dades del conjunt.

3 eines populars per organitzar el desplegament continu (desplegament continu)

La configuració predeterminada s'executa localhost:8111/ amb un agent de compilació registrat que s'executa al mateix ordinador.

Punts forts de TeamCity:

  • configuració fàcil;
  • interfície fàcil d'utilitzar;
  • un gran nombre de funcions integrades;
  • Servei de suport;
  • hi ha una API RESTful;
  • bona documentació;
  • bona seguretat.

Contres:

  • integració limitada;
  • Aquesta és una eina de pagament;
  • una comunitat petita (que, però, està creixent).

GoCD

Un projecte de codi obert que requereix Java Runtime Environment (JRE) versió 8 per a la instal·lació i el funcionament.

Requisits del sistema:

  • RAM - 1 GB com a mínim, més és millor;
  • processador - doble nucli, amb una freqüència de nucli de 2 GHz;
  • disc dur: almenys 1 GB d'espai lliure.

Agent:

  • RAM: almenys 128 MB, més és millor;
  • processador: almenys 2 GHz.

El servidor garanteix el funcionament dels agents i proporciona una interfície còmoda per a l'usuari:

3 eines populars per organitzar el desplegament continu (desplegament continu)

Etapes/Ocupació/Tasques:

3 eines populars per organitzar el desplegament continu (desplegament continu)

Instal·lació per a Linux

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

ris descarregar.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 [inici|aturar|estat|reiniciar]

/etc/init.d/go-agent [inici|atura|estat|reinici]

De manera predeterminada, GoCd s'executa localhost: 8153.

Punts forts de GoCd:

  • codi obert;
  • instal·lació i configuració senzilles;
  • bona documentació;

  • Gran interfície d'usuari:

3 eines populars per organitzar el desplegament continu (desplegament continu)

  • capacitat de mostrar pas a pas el camí de desplegament de GoCD en una vista:

3 eines populars per organitzar el desplegament continu (desplegament continu)

  • excel·lent visualització de l'estructura de la canonada:

3 eines populars per organitzar el desplegament continu (desplegament continu)

  • GoCD optimitza el flux de treball de CD als entorns de núvol més populars, com ara Docker, AWS;
  • l'eina permet corregir problemes en el pipeline, per als quals hi ha un seguiment de cada canvi des de la confirmació fins al desplegament en temps real.

Contres:

  • es necessita almenys un agent;
  • no hi ha cap consola per mostrar totes les tasques realitzades;
  • per executar cada comanda, heu de crear una tasca per a la configuració de la canalització;
  • Per instal·lar el connector, heu de moure el fitxer .jar a /plugins/external i reinicieu el servidor;
  • comunitat relativament petita.

Com a conclusió

Aquestes són només tres eines, de fet n'hi ha moltes més. És difícil triar, així que definitivament cal parar atenció a aspectes addicionals.

El codi font obert de l'eina permet entendre què és, a més d'afegir noves funcions més ràpidament. Però si alguna cosa no funciona, només heu de confiar en vosaltres mateixos i en l'ajuda de la comunitat. Les eines de pagament ofereixen un suport que de vegades pot ser fonamental.

Si la seguretat és la vostra prioritat, val la pena treballar amb una eina local. Si no, triar una solució SaaS és una bona opció.

I, finalment, per tal d'assegurar un procés de desplegament continu veritablement eficaç, cal que formuleu uns criteris les particularitats dels quals us permetran reduir el ventall d'eines disponibles.

Skillbox recomana:

Font: www.habr.com

Afegeix comentari