Referência: o que é Continuous Delivery

Anteriormente, nós dissemos Sobre Continuous Integration (CI). Vamos continuar com Continuous Delivery. Este é um conjunto de métodos de desenvolvimento de software. Ele ajuda a garantir que o código esteja pronto para implantação.

Referência: o que é Continuous Delivery
/ Pixabay / bluebudgie / PT

Histórico

A expressão continuous delivery pôde ser vista ainda no manifesto ágil de 2001 no início da lista de princípios fundamentais: "Prioridade — resolver as necessidades do cliente através da entrega contínua de software atualizado."

Em 2010, Jez Humble e David Farley publicaram um livro sobre Continuous Delivery. Conforme a intenção dos autores, CD complementa a abordagem Continuous Integration 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 praticamente comum. Segundo uma pesquisa, realizada entre mais de 600 desenvolvedores e gerentes de TI em 2014, 97% dos líderes técnicos e 84% dos programadores estavam familiarizados com Continuous Delivery.

Atualmente, essa abordagem continua sendo uma das mais populares. De acordo com uma pesquisa de 2018, que envolveu a comunidade de profissionais de TI DevOps e Jenkins Community, usa metade dos mais de mil entrevistados.

Como funciona o Continuous Delivery

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

Um exemplo de processo de Continuous Delivery é o seguinte:

Referência: o que é Continuous Delivery

Se a automação das duas primeiras etapas é responsabilidade da abordagem Continuous Integration, as seguintes duas são responsabilidade do Continuous Delivery. A estabilidade do processo é garantida, em parte, por sistemas de gerenciamento de configurações. Eles monitoram mudanças na infraestrutura, bancos de dados e dependências. A própria implantação pode ser automatizada ou realizada manualmente.

Os seguintes requisitos são impostos ao processo:

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

Em CD, geralmente se aplica code review, e para coletar opiniões dos clientes — o princípio de dark launching. Uma nova funcionalidade é lançada inicialmente para um pequeno segmento de usuários — a experiência deles com o produto ajuda a identificar falhas e bugs que não foram notados durante os testes internos.

Qual é a vantagem

Continuous Delivery ajuda a simplificar a implementação de código, o que impacta positivamente na produtividade e reduz a probabilidade de burnout emocional dos funcionários. No final, isso também reduz os custos gerais de desenvolvimento. Por exemplo, o 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 CD resolvem problemas de segurança da informação 50% mais rápido, em comparação com aquelas que não utilizam a abordagem. Em certa medida, essa diferença pode ser explicada pelo uso de ferramentas de automação de processos.

Outro ponto positivo — aceleração na liberação de versões. Em um estúdio de desenvolvimento na Finlândia, a entrega contínua ajudou a aumentar a velocidade de compilação de código em 25%.

Dificuldades potenciais

O primeiro e principal problema — a necessidade de reestruturar processos habituais. Para demonstrar os benefícios da nova abordagem, é aconselhável migrar para o CD gradualmente, começando com aplicativos menos trabalhosos.

O segundo problema potencial — o grande número de ramificações de código. Uma consequência da "ramificação" são os conflitos frequentes e as perdas significativas de tempo. Uma possível solução — a abordagem no branches.

. Em particular, em algumas empresas, as principais dificuldades ocorrem nos testes — isso consome muito tempo. Os resultados dos testes frequentemente precisam ser analisados manualmente, mas uma possível solução pode ser a paralelização dos testes nas primeiras etapas de implementação do CD.

Além disso, é necessário treinar os funcionários para usar as novas ferramentas — uma capacitação preliminar economizará esforço e tempo dos desenvolvedores.

Referência: o que é Continuous Delivery
/ Flickr / h.ger1969 / CC BY-SA

Ferramentas

Vamos listar algumas ferramentas abertas para Continuous Delivery:

  • GoCD — servidor para entrega contínua em Java e JRuby on Rails. Permite controlar todo o processo de entrega do aplicativo: build—test—release. O instrumento é distribuído sob a licença Apache 2.0. No site oficial, você pode encontrar um guia de configuração.
  • Capistrano — um framework para criar scripts que automatizam a implantação de aplicativos em Ruby, Java ou PHP. O Capistrano pode 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 CI Integrity.
  • Gradle — uma ferramenta multiplataforma que automatiza todo o ciclo de desenvolvimento de aplicativos. O Gradle funciona com Java, Python, C/C++, Scala, entre outros. Tem integração com Eclipse, IntelliJ e Jenkins.
  • Drone — uma plataforma para CD escrita em Go. O Drone pode ser implementado on-premise ou na nuvem. A ferramenta é construída com base em contêineres e usa arquivos YAML para gerenciá-los.
  • Spinnaker — uma plataforma para entrega contínua de código em sistemas multi-nuvem. Desenvolvida na Netflix, os engenheiros do Google tiveram um papel importante no desenvolvimento da ferramenta. As instruções para instalação você encontrará no site oficial.

O que ler em nosso blog corporativo:

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster