O modelo de implementação de entrega contínua

Concluído

Você aprendeu sobre as muitas desvantagens da "implantação épica" como um modelo de entrega de software, mas saber o que não funciona bem é apenas metade da batalha. Nesta unidade, você aprenderá sobre a alternativa a esse método monolítico e como ele pode promover seu objetivo de maior confiabilidade.

O que é a entrega contínua?

A entrega contínua é um método a partir do qual pode tornar as alterações de software disponíveis para uma utilização mais rápida, menos complexa, com menos riscos e mais reproduzível. Em vez de transformar cada implementação ou atualização de software num evento épico, a entrega contínua esforça-se por transformá-la numa experiência previsível, de rotina e rápida que acontece a pedido.

  • Frequência de implantação: com um modelo de entrega contínua, as implantações acontecem com frequência. Isso muitas vezes pode ser mensal, semanal, diário e até mesmo horário. Essencialmente, são implementadas alterações mais pequenas e concentradas, com mais frequência.

  • Iniciado por confirmação de código: em vez de serem agendadas com muita antecedência, as implantações ocorrem à medida que o código é confirmado. Este código pode ser software, infraestruturas ou mesmo algo como as configurações de software.

  • Teste automatizado: Você pode usar o teste automatizado integrado não apenas para testar o código, mas também para fornecer feedback rápido sobre os resultados desses testes. É esse feedback rápido que permite que você itere e se recupere de testes com falha rapidamente.

    Depois que seu código tiver sido testado, você poderá testar a implantação de ponta a ponta em uma série de ambientes em estágios, como teste, controle de qualidade e assim por diante. Atualizar as suas implementações através destes ambientes torna-se numa parte integrada da experiência de implementação.

  • Registros históricos: você não só deseja um registro histórico das atividades de implantação, mas também pode reconciliar seu ambiente de produção a qualquer momento. Pretende compreender que implementação criou o seu ambiente de produção atual. Com esse conhecimento, você pode rastrear coisas como configurações, resultados de teste e o próprio código até a solicitação pull individual que disparou a implantação.

Objetivos de implementação

Agora que sabe como funciona a entrega contínua, considere os objetivos que pode alcançar ao utilizar as práticas do DevOps, como esta, para implementar soluções de software.

Objetivo 1: Reduzir o estresse envolvido com a implantação de serviços e, ao mesmo tempo, aumentar a confiabilidade desses serviços

Trata-se de uma situação em que todos ficam a ganhar; Você não apenas aumenta a satisfação no trabalho reduzindo o estresse envolvido com implantações de software e infraestrutura, mas também aumenta a satisfação no trabalho e a satisfação do usuário final, tornando seus sistemas mais confiáveis. Dado este impacto positivo na experiência do cliente, tecnicamente este é um ganha-ganha-ganha.

Objetivo 2: Reduzir o tempo entre quando você sabe que uma alteração é necessária e quando essa alteração é implantada na produção

Por exemplo, suponha que você identificou um defeito de código que afeta a receita. Sabe exatamente qual é o problema e como codificar a correção. Quanto tempo demora a colocar esse código em produção? Quantas cordas você precisa puxar? Como efetua os testes? Com as práticas de DevOps, pode consolidar código, almoçar e receber uma notificação de que o problema foi resolvido antes de regressar à sua secretária.

Objetivo 3: Reduzir o tempo entre ter uma ideia e entregar software utilizável

Isso é muito semelhante ao objetivo anterior, mas em vez de implementar mudanças, estamos falando de pura inovação. Quanto tempo demora a intervir perante a inovação? Com este modelo de implantação, você pode integrar um novo conceito em um sistema de produção e ter a confiança de que a inovação adicional não vai quebrar o sistema atual de forma alguma. Com esta confiança, pode então entregar rapidamente a nova funcionalidade.

Resultados da implementação

Os objetivos discutidos nesta unidade não são apenas aspirações teóricas, são alcançáveis. Estas são algumas estatísticas do relatório 2019 Accelerate State of DevOps Report do DevOps Research and Assessment (DORA) e Google Cloud DevOps & SRE. Nele, eles descobriram que as empresas de DevOps de "alto desempenho":

  • Tem 208x o número de implantações.
  • São 106x mais rápidos desde a confirmação até a implantação.
  • Ter uma taxa de falha de alteração 7x menor.
  • Tenha um tempo de recuperação de incidentes 2.604x mais rápido.

Tudo isso leva a um aumento de receita e a um tempo de comercialização mais rápido.

Estes números reforçam a ideia de que as práticas de implementação são importantes.