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

imagem

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 idéia principal é criar um processo automatizado confiável que permita que o desenvolvedor forneça rapidamente ao usuário um produto acabado. Ao mesmo tempo, são feitas mudanças constantes na produção - isso é chamado de pipeline de entrega contínua (CD Pipeline).

A Skillbox recomenda: Curso prático "Mobile Developer PRO" .

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



Para controlar o fluxo, você pode usar uma ampla gama de ferramentas, entre as quais são pagas e totalmente gratuitas. Este artigo descreve as três soluções mais populares entre os desenvolvedores que podem ser úteis para todos os programadores.

Jenkins


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

Requisitos mínimos do PC:
  • 256 MB de RAM, 1 GB de espaço no arquivo.

Ótimo:
  • 1 GB de RAM, 50 GB de espaço em disco rígido.

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

A arquitetura (computação distribuída) é a seguinte:


Jenkins Server - uma instalação responsável pela hospedagem da GUI, além da organização e execução de todo o assembly.

Servidor Nó / Escravo / Compilação Jenkins - dispositivos que podem ser configurados para executar trabalhos de montagem em nome do Mestre (o nó principal).

Instalação 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 binary /' | sudo tee -a /etc/apt/sources.list.d/je

Atualize o repositório de pacotes:

atualização do sudo apt

Instale o Jenkins:

sudo apt instala jenkins

Depois disso, o Jenkins estará disponível no sistema pela porta 8080 padrão.

Para verificar a funcionalidade, abra o endereço localhost : 8080 no navegador. Em seguida, o sistema solicitará que você digite a senha inicial do usuário com direitos de root. Essa senha está localizada no arquivo / var / lib / jenkins / secrets / initialAdminPassword.

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





Pontos fortes de Jenkins:
  • escalabilidade fornecida pela arquitetura Master / Slave;
  • a presença da API REST XML / JSON;
  • a capacidade de conectar um grande número de extensões graças a plugins;
  • Uma comunidade ativa e em constante evolução.

Contras:
  • falta de unidade analítica;
  • interface não muito conveniente.

Teamcity


Desenvolvimento comercial da JetBrains. O servidor é bom para configuração simples e excelente interface. Há um grande número de funções na configuração padrão; o número de plugins disponíveis está aumentando constantemente.

Este conteúdo requer o Java Runtime Environment (JRE) versão 8.

Os requisitos do servidor para hardware não são críticos:
  • RAM - 3,2 GB;
  • processador - núcleo duplo, 3,2 GHz;
  • canal de comunicação com largura de banda de 1 Gb / s.

O servidor permite alcançar alto desempenho no trabalho:
  • 60 projetos com 300 configurações de montagem;
  • alocação de 2 MB no log de montagem;
  • 50 agentes de construção;
  • a capacidade de trabalhar 50 usuários na versão web e 30 usuários no IDE;
  • 100 conexões SLE externas, geralmente Perforce e Subversion. O tempo médio de troca é de 120 segundos;
  • mais de 150 modificações por dia;
  • trabalhar com o banco de dados em um servidor;
  • Configurações de processo do servidor JVM: -Xmx1100m -XX: MaxPermSize = 120m.

Os requisitos do agente são determinados executando assemblies. A principal tarefa do servidor é rastrear todos os agentes conectados e distribuir assemblies da fila entre esses agentes com base nos requisitos de compatibilidade, com os resultados relatados. Os agentes têm várias plataformas e sistemas operacionais, além de um ambiente pré-configurado.

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



Instalação Linux

Para instalar manualmente o TeamCity com o contêiner de servlet Tomcat, use o arquivo do TeamCity: TeamCity .tar.gz. Você pode baixá- lo aqui .

tar -xfz TeamCity.tar.gz

/ bin / runAll. sh [iniciar | parar]

Na primeira inicialização, você precisa selecionar o tipo de banco de dados no qual os dados da montagem serão armazenados.



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

Pontos fortes do TeamCity:
  • configuração simples;
  • interface conveniente;
  • um grande número de funções internas;
  • serviço de suporte;
  • Existe uma API RESTful;
  • boa documentação;
  • boa segurança.

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

Gocd


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

Exigências do sistema:
  • RAM - mínimo de 1 GB, melhor mais;
  • processador - núcleo duplo, com uma frequência de núcleo 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 fornece agentes e fornece uma interface conveniente para o usuário:



Etapas / Trabalhos / Tarefas:



Instalação Linux

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

enrolar download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-repository ppa: openjdk-r / ppa

atualização apt-get

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 [iniciar | parar | status | reiniciar]

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

Pontos fortes do GoCd:
  • código aberto
  • instalação e configuração simples;
  • boa documentação;

  • ótima interface de usuário:



  • Possibilidade de exibição passo a passo do caminho de implantação do GoCD em uma exibição:



  • excelente exibição da estrutura do transportador:



  • O GoCD otimiza o fluxo de trabalho do CD nos ambientes em nuvem mais populares, incluindo Docker, AWS;
  • a ferramenta possibilita a correção de falhas no pipeline, para as quais há um rastreamento de cada alteração de uma confirmação para implantação no modo em tempo real.

Contras:
  • pelo menos um agente é necessário;
  • 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 plug-in, você precisa mover o arquivo .jar para <localização do servidor> / plugins / external e reiniciar o servidor;
  • comunidade relativamente pequena.

Como conclusão


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

O código-fonte aberto da ferramenta torna possível entender o que é, além de ser mais rápido adicionar novas funções. Mas se algo não funcionar, você precisará confiar apenas em si mesmo e na ajuda da comunidade. As ferramentas pagas fornecem suporte que às vezes pode ser crítico.

Se a segurança é mais importante, você deve trabalhar com uma ferramenta local. Caso contrário, a escolha de uma solução SaaS é uma boa opção.

E a última: para garantir um processo verdadeiramente eficaz de implantação contínua, é necessário formular critérios cuja especificidade tornará possível restringir o leque de opções de ferramentas disponíveis.

A Skillbox recomenda:

Source: https://habr.com/ru/post/pt455130/


All Articles