3 ferramentas populares para organizar a implantación continua (Impregación continua)

3 ferramentas populares para organizar a implantación continua (Impregación continua)

A implantación continua é un enfoque especial no desenvolvemento de software que se usa para implementar de forma rápida, segura e eficiente varias funcións no software.

A idea principal é crear un proceso automatizado fiable que permita ao programador entregar rapidamente o produto acabado ao usuario. Ao mesmo tempo, realízanse cambios constantes na produción: isto denomínase canalización de entrega continua (CD Pipeline).

Skillbox recomenda: Curso práctico "Desenvolvedor móbil PRO".

Recordámolo: para todos os lectores de "Habr" - un desconto de 10 rublos ao inscribirse en calquera curso de Skillbox usando o código promocional "Habr".

3 ferramentas populares para organizar a implantación continua (Impregación continua)

Para controlar o fluxo, pode utilizar unha ampla gama de ferramentas, incluíndo tanto de pago como totalmente gratuítos. Este artigo describe tres das solucións máis populares entre os desenvolvedores que poden ser útiles para todos os programadores.

Jenkins

Servidor de automatización de código aberto totalmente autónomo. Paga a pena traballar para automatizar todo tipo de tarefas relacionadas coa construción, proba, envío ou implantación de software.

Requisitos mínimos de PC:

  • 256 MB de RAM, 1 GB de espazo para ficheiros.

Óptimo:

  • 1 GB de RAM, 50 GB de disco duro.

Para funcionar, tamén necesitará software adicional: Java Runtime Environment (JRE) versión 8.

A arquitectura (computación distribuída) ten o seguinte aspecto:
3 ferramentas populares para organizar a implantación continua (Impregación continua)

Jenkins Server é unha instalación que se encarga do hospedaxe da GUI, así como de organizar e executar toda a compilación.

Jenkins Node/Slave/Build Server: dispositivos que se poden configurar para realizar traballos de construción en nome do mestre (nodo principal).

Instalación para Linux

Primeiro cómpre engadir o repositorio de Jenkins ao 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 binario/' | sudo tee -a /etc/apt/sources.list.d/je

Actualizar o repositorio de paquetes:

sudo apt update

Instalar Jenkins:

sudo apt instalar jenkins

Despois diso, Jenkins estará dispoñible no sistema a través do porto predeterminado 8080.

Para comprobar a funcionalidade, cómpre abrir o enderezo no navegador localhost: 8080. A continuación, o sistema pediralle que introduza o contrasinal inicial para o usuario root. Este contrasinal atópase no ficheiro /var/lib/jenkins/secrets/initialAdminPassword.

Agora todo está listo para funcionar, podes comezar a crear fluxos CI/CD. A interface gráfica do banco de traballo ten o seguinte aspecto:

3 ferramentas populares para organizar a implantación continua (Impregación continua)

3 ferramentas populares para organizar a implantación continua (Impregación continua)

Fortalezas de Jenkins:

  • escalabilidade proporcionada pola arquitectura Master/Slave;
  • dispoñibilidade da API REST XML/JSON;
  • a posibilidade de conectar un gran número de extensións grazas a complementos;
  • comunidade activa e en constante evolución.

Contras:

  • non hai un bloque analítico;
  • interface non moi amigable.

TeamCity

Desenvolvemento comercial de JetBrains. O servidor é bo cunha configuración sinxela e unha interface excelente. A configuración predeterminada ten un gran número de funcións e o número de complementos dispoñibles aumenta constantemente.

Require Java Runtime Environment (JRE) versión 8.

Os requisitos de hardware do servidor non son críticos:

  • RAM - 3,2 GB;
  • procesador - dobre núcleo, 3,2 GHz;
  • canle de comunicación cunha capacidade de 1 Gb/s.

O servidor permítelle acadar un alto rendemento:

  • 60 proxectos con 300 configuracións de compilación;
  • asignar 2 MB para o rexistro de compilación;
  • 50 axentes de construción;
  • a capacidade de traballar con 50 usuarios na versión web e 30 usuarios no IDE;
  • 100 conexións de VCS externos, normalmente Perforce e Subversion. O tempo medio de cambio é de 120 segundos;
  • máis de 150 modificacións ao día;
  • traballar coa base de datos nun servidor;
  • Configuración do proceso do servidor JVM: -Xmx1100m -XX:MaxPermSize=120m.

Os requisitos do axente baséanse na execución de conxuntos. A principal tarefa do servidor é supervisar todos os axentes conectados e distribuír as montaxes en cola a estes axentes en función dos requisitos de compatibilidade, informando dos resultados. Os axentes veñen nunha variedade de plataformas e sistemas operativos, ademais dun ambiente preconfigurado.

Toda a información sobre os resultados da compilación gárdase na base de datos. Principalmente isto é o historial e outros datos similares, os cambios de VCS, os axentes, as colas de creación, as contas de usuario e os permisos. A base de datos non inclúe só rexistros de compilación e artefactos.

3 ferramentas populares para organizar a implantación continua (Impregación continua)

Instalación para Linux

Para instalar TeamCity manualmente cun contedor de servlets Tomcat, debes usar o arquivo TeamCity: TeamCity .tar.gz. Descargar podes conseguilo dende aquí.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [iniciar|parar]

Cando comeza por primeira vez, cómpre seleccionar o tipo de base de datos na que se almacenarán os datos da montaxe.

3 ferramentas populares para organizar a implantación continua (Impregación continua)

A configuración predeterminada execútase localhost:8111/ cun axente de compilación rexistrado funcionando no mesmo PC.

Puntos fortes de TeamCity:

  • configuración sinxela;
  • interface amigable;
  • un gran número de funcións integradas;
  • Servizo de apoio;
  • hai unha API RESTful;
  • boa documentación;
  • boa seguridade.

Contras:

  • integración limitada;
  • Esta é unha ferramenta de pago;
  • unha pequena comunidade (que, con todo, está a medrar).

GoCD

Un proxecto de código aberto que require Java Runtime Environment (JRE) versión 8 para a súa instalación e funcionamento.

Requisitos do sistema:

  • RAM - 1 GB mínimo, máis é mellor;
  • procesador - dobre núcleo, cunha frecuencia de núcleo de 2 GHz;
  • disco duro: polo menos 1 GB de espazo libre.

Axente:

  • RAM - polo menos 128 MB, preferiblemente máis;
  • procesador - polo menos 2 GHz.

O servidor garante o funcionamento dos axentes e proporciona unha interface cómoda para o usuario:

3 ferramentas populares para organizar a implantación continua (Impregación continua)

Etapas/Traballos/Tarefas:

3 ferramentas populares para organizar a implantación continua (Impregación continua)

Instalación para Linux

eco "deb descargar.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

enrolar descargar.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 [inicio|parar|estado|reiniciar]

/etc/init.d/go-agent [iniciar|parar|estado|reiniciar]

De forma predeterminada, GoCd funciona localhost: 8153.

Puntos fortes de GoCd:

  • código aberto;
  • instalación e configuración sinxelas;
  • boa documentación;

  • Excelente interface de usuario:

3 ferramentas populares para organizar a implantación continua (Impregación continua)

  • capacidade de mostrar paso a paso o camiño de implantación de GoCD nunha soa vista:

3 ferramentas populares para organizar a implantación continua (Impregación continua)

  • excelente visualización da estrutura do gasoduto:

3 ferramentas populares para organizar a implantación continua (Impregación continua)

  • GoCD optimiza o fluxo de traballo de CD nos ambientes de nube máis populares, incluíndo Docker, AWS;
  • a ferramenta permite corrixir os problemas en proceso, para o que hai un seguimento de cada cambio desde o compromiso ata a implantación en tempo real.

Contras:

  • necesítase polo menos un axente;
  • non hai unha consola para mostrar todas as tarefas completadas;
  • para executar cada comando, cómpre crear unha tarefa para a configuración da canalización;
  • Para instalar o complemento, cómpre mover o ficheiro .jar a /plugins/external e reinicie o servidor;
  • comunidade relativamente pequena.

Como conclusión

Son só tres ferramentas, de feito hai moitas máis. É difícil escoller, polo que definitivamente debes prestar atención a aspectos adicionais.

O código fonte aberto da ferramenta permite comprender o que é, ademais de engadir novas funcións máis rápido. Pero se algo non funciona, entón tes que confiar só en ti mesmo e na axuda da comunidade. As ferramentas de pago proporcionan soporte que ás veces pode ser crítico.

Se a seguridade é a túa principal prioridade, paga a pena traballar cunha ferramenta local. Se non, entón escoller unha solución SaaS é unha boa opción.

E, por último, para garantir un proceso de implantación continuo verdadeiramente eficaz, cómpre crear criterios cuxos detalles permitan reducir o abano de ferramentas dispoñibles.

Skillbox recomenda:

Fonte: www.habr.com

Engadir un comentario