Ajuda: o que é Entrega Contínua

Anteriormente, nós contado sobre Integração Contínua (CI). Vamos continuar com a Entrega Contínua. Este é um conjunto de métodos de desenvolvimento de software. Isso ajuda a garantir que seu código esteja pronto para implantação.

Ajuda: o que é Entrega Contínua
/Pixabay/ periquito azul / PL

história

A frase entrega contínua pode ser vista em manifesto ágil de 2001 no início da lista de princípios básicos: “A prioridade é resolver os problemas dos clientes através da entrega contínua de software atualizado”.

Em 2010, Jez Humble e David Farley lançaram livro por Entrega Contínua. Segundo os autores, o CD complementa a abordagem Integração contínua e permite simplificar 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 pesquisa, realizado 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 DevOps e Jenkins Community, usa metade dos mais de mil entrevistados.

Como funciona a Entrega Contínua?

A base do CD é a prontidão do código para implantação. Para realizar esta tarefa, é utilizada a automação do processo de preparação de software para lançamento. Deve ser padrão em diferentes ambientes de desenvolvimento, o que ajudará a encontrar rapidamente pontos fracos e a otimizá-los. Por exemplo, acelere os testes.

Um exemplo de processo de Entrega Contínua é assim:

Ajuda: o que é Entrega Contínua

Se a abordagem de Integração Contínua é responsável por automatizar as duas primeiras etapas, então a Entrega Contínua é responsável pelas duas seguintes. A estabilidade do processo é garantida, entre outras coisas, por sistemas gerenciamento de configurações. Eles monitoram mudanças na infraestrutura, bancos de dados e dependências. A implantação em si pode ser automatizada ou feita manualmente.

Os seguintes requisitos são impostos ao processo:

  • Disponibilidade de informações sobre prontidão para entrada no ambiente de produção e prontidão para lançamento imediato (as ferramentas de CD testam o código e permitem avaliar o efeito das mudanças no lançamento).
  • Responsabilidade geral pelo produto final. A equipe do produto – gerentes, desenvolvedores, testadores – pensa no resultado, e não apenas na sua área de responsabilidade (o resultado é uma versão funcional que fica disponível para os usuários do produto).

Em CDs geralmente é usado revisão de códigoe para coletar opiniões dos clientes - o princípio lançamento escuro. Um novo recurso é lançado pela primeira vez para um pequeno segmento de usuários - sua experiência de interação com o produto ajuda a encontrar deficiências e bugs que não foram percebidos durante os testes internos.

Qual é o benefício

A Entrega Contínua ajuda a simplificar a implantação de código, o que tem um impacto positivo na produtividade e reduz a probabilidade de esgotamento dos funcionários. Em última análise, isso reduz os custos gerais de desenvolvimento. Por exemplo, CD ajudou uma das equipes da HP reduzir tais custos em 40%.

Além disso, de acordo com um estudo de 2016 (página 28 documento) - empresas que implementaram CD resolvem problemas de segurança da informação 50% mais rápido do que aquelas que não utilizam a abordagem. Até certo ponto, esta diferença pode ser explicada pelo desempenho das ferramentas de automação de processos.

Outra vantagem é a aceleração dos lançamentos. Entrega contínua no estúdio de desenvolvimento finlandês ajudou aumente a velocidade de montagem do código em 25%.

Dificuldades Potenciais

O primeiro e principal problema é a necessidade de reconstruir processos familiares. Para mostrar os benefícios da nova abordagem, vale a pena mudar gradualmente para o CD, começando não pelas aplicações mais trabalhosas.

O segundo problema potencial é o grande número de ramificações de código. A consequência da “ramificação” são conflitos frequentes e perda adicional de uma grande quantidade de tempo. Solução possível - abordagem sem ramos.

Em particular, em algumas empresas as principais dificuldades surgem com os testes - demoram muito. Os resultados dos testes muitas vezes precisam ser analisados ​​manualmente, mas uma solução possível pode ser paralelizar os testes nos estágios iniciais da implementação do CD.

Você também deve treinar os funcionários para trabalhar com novas ferramentas - um programa educacional preliminar economizará tempo e esforço dos desenvolvedores.

Ajuda: o que é Entrega Contínua
/flickr/ h.ger1969 / CC BY-SA

Ferramentas

Aqui estão algumas ferramentas abertas para entrega contínua:

  • GoCDGenericName — servidor para entrega contínua em Java e JRuby on Rails. Permite que você controle todo o processo de entrega do aplicativo: construção – teste – lançamento. A ferramenta é distribuída sob a licença Apache 2.0. Você pode encontrá-lo no site oficial guia de Configuração.
  • Capistrano — uma estrutura para criação de scripts que automatizam a implantação de aplicações em Ruby, Java ou PHP. Capistrano é capaz de executar comandos em uma máquina remota conectando-se a ela via SSH. Funciona 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 aplicações. Gradle funciona com Java, Python, C/C++, Scala, etc. Há integração com Eclipse, IntelliJ e Jenkins.
  • Zangão - Plataforma de CD em linguagem Go. O drone pode ser implantado no local ou na nuvem. A ferramenta é construída sobre contêineres e usa arquivos YAML para gerenciá-los.
  • Bujarrona — uma plataforma para entrega contínua de código em sistemas multinuvem. Desenvolvido pela Netflix, os engenheiros do Google desempenharam um papel importante no desenvolvimento da ferramenta. Instruções de instalação encontre no site oficial.

O que ler em nosso blog corporativo:

Fonte: habr.com

Adicionar um comentário