Anteriormente,
falamos sobre integração contínua (IC). Continue com Entrega contínua. Este é um conjunto de métodos de desenvolvimento de software. Isso ajuda a garantir que o código esteja pronto para implantação.
/ Pixabay / bluebudgie / PLA história
A combinação de entrega contínua pode ser vista no
manifesto ágil de 2001, no início da lista de princípios básicos: "Prioridade é a solução de problemas do cliente usando o fornecimento contínuo de software relevante".
Em 2010, Jez Humble e David Farley lançaram um
livro sobre Entrega Contínua. Segundo os autores, o CD complementa a abordagem de
integração contínua e facilita a preparação do código para implantação.
Após a publicação do livro, a abordagem começou a ganhar popularidade e em apenas alguns anos tornou-se quase universalmente aceita. De acordo com uma
pesquisa entre mais de 600 desenvolvedores e gerentes de TI em 2014, 97% dos gerentes técnicos e 84% dos programadores estavam familiarizados com a Entrega Contínua.
Agora, essa abordagem continua sendo uma das mais populares. De acordo com um estudo de 2018 envolvendo a comunidade de TI da comunidade DevOps e Jenkins
, metade dos mais de mil entrevistados o usa.
Como funciona a entrega contínua
A base do CD é a disponibilidade do código para implantação. Para realizar essa tarefa, é usada a automação do processo de preparação do software para liberação. Deve ser padrão para vários ambientes de desenvolvimento, o que o ajudará a encontrar rapidamente os pontos fracos e a otimizá-los. Por exemplo, acelere os testes.
Um exemplo do processo de Entrega Contínua é o seguinte:

Se a abordagem de Integração Contínua for responsável pela automação dos dois primeiros estágios, pelos próximos dois - Entrega Contínua. A estabilidade do processo é garantida, entre outras coisas, devido aos sistemas de
gerenciamento de configuração . Eles monitoram alterações na infraestrutura, bancos de dados e dependências. A implantação propriamente dita pode ser automatizada ou manualmente.
O processo possui os seguintes requisitos:
- Disponibilidade de informações sobre a disponibilidade para entrar no ambiente de produção e a disponibilidade para liberação imediata (as ferramentas do CD testam o código e permitem avaliar o efeito das alterações na liberação).
- Responsabilidade geral pelo produto final. A equipe do produto - gerentes, desenvolvedores, testadores - pensa no resultado, e não apenas em sua área de responsabilidade (o resultado é uma versão de trabalho, disponível para os usuários do produto).
Um CD geralmente usa a
revisão de código , e o princípio do
lançamento sombrio é usado para coletar opiniões dos clientes. Primeiro, um novo recurso é lançado para um pequeno segmento de usuários - sua experiência com o produto ajuda a encontrar falhas e bugs que não foram notados durante os testes internos.
Qual o benefício
A Entrega contínua ajuda a simplificar a implantação do código, o que afeta positivamente a produtividade e reduz a probabilidade de esgotamento dos funcionários. Por fim, isso reduz os custos gerais de desenvolvimento. Por exemplo, um CD ajudou uma das equipes da HP a
reduzir esses custos em 40%.
Além disso, de acordo com um estudo de 2016 (página 28 do
documento ), as empresas que implementaram CDs são 50% mais rápidas na solução de problemas de SI, em comparação com aquelas que não usam a abordagem. Até certo ponto, essa diferença pode ser explicada pelo trabalho das ferramentas de automação de processos.
Outra vantagem é a aceleração dos lançamentos. No estúdio de desenvolvimento finlandês, a entrega contínua
ajudou a aumentar a velocidade de montagem do código em 25%.
Potenciais dificuldades
O primeiro e principal problema é a necessidade de reconstruir processos familiares. Para mostrar os benefícios da nova abordagem, vale a pena mudar para o CD gradualmente, começando não com as aplicações mais trabalhosas.
O segundo problema em potencial é um grande número de ramificações de código. A conseqüência da “ramificação” são conflitos frequentes e perdas subsequentes de uma grande quantidade de tempo. Uma solução possível é a abordagem
sem filiais .
Em particular, em algumas empresas, as principais dificuldades surgem com os testes - leva muito tempo. Os resultados dos testes geralmente precisam ser analisados manualmente, mas a paralelização dos testes nos estágios iniciais da implementação do CD pode ser uma solução possível.
Você também deve treinar funcionários para trabalhar com novas ferramentas - um programa educacional preliminar economizará tempo e esforço dos desenvolvedores.
/ Flickr / h.ger1969 / CC BY-SAAs ferramentas
Aqui estão algumas ferramentas abertas para entrega contínua:
- O GoCD é um servidor para entrega contínua em Java e JRuby on Rails. Permite controlar todo o processo de entrega do aplicativo: build - test - release. A ferramenta está licenciada sob Apache 2.0. No site oficial, você pode encontrar o guia de configuração .
- Capistrano - uma estrutura para criar scripts que automatizam a implantação de aplicativos em Ruby, Java ou PHP. Capistrano é capaz de executar comandos em uma máquina remota, conectando-se a ela via SSH. Trabalha com outras ferramentas de integração e entrega contínuas, como o servidor Integrity CI.
- Gradle é uma ferramenta multiplataforma que automatiza todo o ciclo de desenvolvimento de aplicativos. Gradle trabalha com Java, Python, C / C ++, Scala, etc. Há integração com Eclipse, IntelliJ e Jenkins.
- Drone é uma plataforma Go CD. O drone pode ser implantado no local ou na nuvem. A ferramenta é criada com base em contêineres e usa arquivos YAML para gerenciá-los.
- O Spinnaker é uma plataforma para entrega contínua de código em sistemas com várias nuvens. Desenvolvido pela Netflix, os engenheiros do Google tiveram um papel importante no desenvolvimento da ferramenta. As instruções de instalação podem ser encontradas no site oficial .
O que ler em nosso blog corporativo: