3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

A implantação contínua é uma abordagem especial no desenvolvimento de software usada para implementar de forma rápida, segura e eficiente várias funções no software.

A ideia principal é criar um processo automatizado confiável que permita ao desenvolvedor entregar rapidamente o produto acabado ao usuário. Ao mesmo tempo, mudanças constantes são feitas na produção - isso é chamado de pipeline de entrega contínua (CD Pipeline).

A Skillbox recomenda: curso prático "Desenvolvedor móvel PRO".

Lembramos: para todos os leitores de "Habr" - um desconto de 10 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

Para controlar o fluxo, você pode usar uma ampla gama de ferramentas, tanto pagas quanto totalmente gratuitas. Este artigo descreve três das soluções mais populares entre os desenvolvedores que podem ser úteis para qualquer programador.

Jenkins

Servidor de automação de código aberto totalmente independente. Vale a pena trabalhar para automatizar todos os tipos de tarefas relacionadas à construção, teste, envio ou implantação de software.

Requisitos mínimos do PC:

  • 256 MB de RAM, 1 GB de espaço para arquivo.

Ótimo:

  • 1 GB de RAM, disco rígido de 50 GB.

Para funcionar, você também precisará de software adicional - Java Runtime Environment (JRE) versão 8.

A arquitetura (computação distribuída) é assim:
3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

Jenkins Server é uma instalação responsável pela hospedagem da GUI, bem como pela organização e execução de toda a compilação.

Jenkins Node/Slave/Build Server - dispositivos que podem ser configurados para executar trabalho de construção em nome do Master (nó mestre).

Instalação para Linux

Primeiro você precisa adicionar o repositório 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 binário/' | sudo tee -a /etc/apt/sources.list.d/je

Atualizar repositório de pacotes:

sudo apt update

Instale o Jenkins:

sudo apt instalar jenkins

Depois disso, o Jenkins estará disponível no sistema através da porta padrão 8080.

Para verificar a funcionalidade, você precisa abrir o endereço no navegador localhost:8080. O sistema solicitará que você insira a senha inicial do usuário root. Esta senha está localizada no arquivo /var/lib/jenkins/secrets/initialAdminPassword.

Agora que tudo está pronto, você pode começar a criar fluxos de CI/CD. A interface gráfica do ambiente de trabalho é assim:

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

Pontos fortes de Jenkins:

  • escalabilidade proporcionada pela arquitetura Master/Slave;
  • disponibilidade de API REST XML/JSON;
  • a capacidade de conectar um grande número de extensões graças a plugins;
  • comunidade ativa e em constante evolução.

Contras:

  • não há bloqueio analítico;
  • interface não muito amigável.

TeamCity

Desenvolvimento comercial da JetBrains. O servidor é bom, com configuração simples e uma interface excelente. A configuração padrão possui um grande número de funções e o número de plugins disponíveis está aumentando constantemente.

Requer Java Runtime Environment (JRE) versão 8.

Os requisitos de hardware do servidor não são críticos:

  • RAM - 3,2 GB;
  • processador - dual-core, 3,2 GHz;
  • canal de comunicação com capacidade de 1 Gb/s.

O servidor permite alcançar alto desempenho:

  • 60 projetos com 300 configurações de build;
  • Alocação de 2 MB para log de construção;
  • 50 agentes de construção;
  • a capacidade de trabalhar com 50 usuários na versão web e 30 usuários no IDE;
  • 100 conexões de VCS externos, geralmente Perforce e Subversion. O tempo médio de mudança é de 120 segundos;
  • mais de 150 modificações por dia;
  • trabalhar com o banco de dados em um servidor;
  • Configurações do processo do servidor JVM: -Xmx1100m -XX:MaxPermSize=120m.

Os requisitos do agente são baseados na execução de assemblies. A principal tarefa do servidor é monitorar todos os agentes conectados e distribuir assemblies enfileirados para esses agentes com base nos requisitos de compatibilidade, reportando os resultados. Os agentes vêm em diversas plataformas e sistemas operacionais, além de um ambiente pré-configurado.

Todas as informações sobre os resultados da construção são armazenadas no banco de dados. Principalmente, trata-se de histórico e outros dados semelhantes, alterações de VCS, agentes, filas de construção, contas de usuário e permissões. O banco de dados não inclui apenas logs de construção e artefatos.

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

Instalação para Linux

Para instalar manualmente o TeamCity com um contêiner de servlet Tomcat, você deve usar o arquivo TeamCity: TeamCity .tar.gz. Download Você pode obtê-lo aqui.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [iniciar|parar]

Ao iniciar, você precisa selecionar o tipo de banco de dados no qual os dados da montagem serão armazenados.

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

A configuração padrão é executada em localhost:8111/ com um agente de compilação registrado em execução no mesmo PC.

Pontos fortes do TeamCity:

  • fácil configuração;
  • interface amigável;
  • um grande número de funções integradas;
  • Apoio, suporte;
  • existe uma API RESTful;
  • boa documentação;
  • boa segurança.

Contras:

  • integração limitada;
  • Esta é uma ferramenta paga;
  • uma pequena comunidade (que, no entanto, está crescendo).

GoCDGenericName

Um projeto de código aberto que requer Java Runtime Environment (JRE) versão 8 para instalação e operação.

Requisitos do sistema:

  • RAM – mínimo de 1 GB, quanto mais, melhor;
  • processador - dual-core, com frequência central de 2 GHz;
  • disco rígido - pelo menos 1 GB de espaço livre.

Agente:

  • RAM - pelo menos 128 MB, de preferência mais;
  • processador - pelo menos 2 GHz.

O servidor garante a operação dos agentes e fornece uma interface conveniente para o usuário:

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

Etapas/Trabalhos/Tarefas:

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

Instalação para Linux

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

enrolar download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key adicionar -
add-apt-repositório 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 [iniciar|parar|status|reiniciar]

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

Por padrão, o GoCd é executado em localhost: 8153.

Pontos fortes do GoCd:

  • Código aberto;
  • instalação e configuração simples;
  • boa documentação;

  • Ótima interface de usuário:

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

  • capacidade de mostrar o caminho de implantação passo a passo do GoCD em uma visualização:

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

  • excelente exibição da estrutura do pipeline:

3 ferramentas populares para organizar implantação contínua (Implantação Contínua)

  • GoCD otimiza o fluxo de trabalho de CD nos ambientes de nuvem mais populares, incluindo Docker, AWS;
  • a ferramenta permite corrigir problemas no pipeline, para o qual há acompanhamento de cada alteração desde o commit até a implantação em tempo real.

Contras:

  • é necessário pelo menos um agente;
  • não há console para exibir todas as tarefas concluídas;
  • para executar cada comando, você precisa criar uma tarefa para a configuração do pipeline;
  • Para instalar o plugin você precisa mover o arquivo .jar para /plugins/external e reinicie o servidor;
  • comunidade relativamente pequena.

Como uma conclusão

Estas são apenas três ferramentas; na verdade, existem muitas mais. É difícil escolher, então você definitivamente precisa prestar atenção a aspectos adicionais.

O código-fonte aberto da ferramenta permite entender o que ela é, além de adicionar novos recursos com mais rapidez. Mas se algo não funcionar, você terá que contar apenas com você mesmo e com a ajuda da comunidade. Ferramentas pagas fornecem suporte que às vezes pode ser crítico.

Se a segurança é sua prioridade, vale a pena trabalhar com uma ferramenta local. Caso contrário, escolher uma solução SaaS é uma boa opção.

E, por último, para garantir um processo de implantação contínua verdadeiramente eficaz, é necessário formular critérios cujas especificidades permitirão restringir a gama de ferramentas disponíveis.

A Skillbox recomenda:

Fonte: habr.com

Adicionar um comentário