O modelo de implantação de entrega contínua
- 4 minutos
Você aprendeu sobre as muitas desvantagens do "implantação épica" como 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 aumentar sua meta de confiabilidade aprimorada.
Também vale a pena distinguir dois termos relacionados que, às vezes, são usados de forma intercambiável:
- Entrega contínua: cada alteração aprovada em testes automatizados está pronta para ser implantada na produção, mas a versão real para produção é fechada por uma aprovação manual.
- Implantação contínua: cada alteração que passa em testes automatizados é liberada automaticamente para produção, sem portão manual.
Ambos dependem dos mesmos fundamentos (integração frequente, testes automatizados, pipelines repetíveis). Este módulo se concentra nesses fundamentos compartilhados.
O que é a entrega contínua?
A entrega contínua é um método pelo qual cada alteração em sua base de código é mantida liberável de maneira mais rápida, menos estressante, menos arriscada e mais reproduzível. Em vez de tornar cada implantação de software ou atualizar um evento épico, a entrega contínua o transforma em uma experiência rápida, rotineira e previsível que acontece sob demanda.
Frequência de implantação: com um modelo de entrega contínua, as implantações ocorrem com frequência. A cadência pode ser mensal, semanal, diária ou até mesmo de hora em hora. A chave é que você implanta alterações menores e mais focadas, com mais frequência.
Acionado por commit de código: em vez de aguardar uma janela de lançamento agendada com muita antecedência, o pipeline de entrega é iniciado quando o código é enviado. Esse código pode ser um software, uma infraestrutura ou, até mesmo, itens como configurações de software. Cada alteração é então criada, testada e mantida pronta para lançamento. Dependendo dos controles da sua organização, a promoção para produção ainda pode ocorrer mais tarde, após uma aprovação.
Teste automatizado: você pode usar testes automatizados integrados não apenas para testar o código, mas também para fornecer comentários rápidos sobre os resultados desses testes. São esses comentários rápidos que permitem fazer iterações e se recuperar rapidamente de testes com falha.
Depois que o código for testado, você poderá testar a implantação, de ponta a ponta, em uma série de ambientes preparados, como teste, QA etc. A distribuição das suas implantações por meio desses ambientes torna-se uma parte integrada da experiência de implantação.
Registros históricos: além de desejar um registro histórico de atividades de implantação, você também deseja ser capaz de reconciliar seu ambiente de produção a qualquer momento. Você deseja entender a implantação que criou o ambiente de produção atual. Com esse conhecimento, você pode rastrear itens como configurações, resultados de testes e o próprio código até a pull request individual que disparou a implantação.
Metas de implantação
Agora que você sabe como a entrega contínua funciona, considere as metas de entrega contínua e outras práticas de DevOps que ajudam você a alcançar ao implantar soluções de software.
Meta 1: Reduzir a tensão envolvida na implantação de serviços e aumentar a confiabilidade desses serviços
Reduzir o estresse das implantações de software e infraestrutura melhora a experiência diária dos engenheiros que as executam. O aumento resultante da confiabilidade também beneficia os usuários finais, que veem menos quedas e interrupções.
Meta 2: Reduzir o tempo entre o momento em que você sabe que uma alteração é necessária e quando essa alteração é implantada em produção
Por exemplo, suponha que você tenha identificado um defeito de código que afeta a receita e saiba exatamente como corrigi-lo. Com práticas de DevOps maduras, o caminho da confirmação para a produção é curto e previsível. A alteração é criada, testada automaticamente nos ambientes relevantes e preparada para lançamento em poucos minutos. Assim que a aprovação necessária for concedida, ele pode ser promovido para produção em vez de ser mantido para uma janela de lançamento futura.
Meta 3: reduzir o tempo entre ter uma ideia e fornecer software utilizável
Essa meta é semelhante à anterior, mas se concentra na inovação em vez de correções. Quanto tempo leva para você agir sobre uma nova idéia? Com esse modelo de implantação, você pode integrar um novo conceito a um sistema de produção com a confiança de que a adição não interromperá ou dificultará o sistema atual. Essa confiança permite que você forneça novos recursos rapidamente.
Resultados da implantação
As metas discutidas nesta unidade não são apenas aspirações teóricas, são mensuráveis. Desde 2014, a equipe de Pesquisa e Avaliação do DevOps (DORA) publica pesquisas anuais do State of DevOps sobre o desempenho da entrega de software. Nos últimos anos, esse trabalho foi publicado como o relatório Accelerate State of DevOps. O modelo DORA atual rastreia cinco métricas de entrega:
- Frequência de implantação
- Alterar o tempo de entrega
- Alterar a taxa de falha
- Tempo de recuperação de implantação com falha
- Taxa de retrabalho da implantação
Ano após ano, a pesquisa mostra que as equipes de alto desempenho fornecem alterações com mais frequência, passam da confirmação para a produção mais rapidamente, recuperam-se de implantações com falha mais cedo e gastam menos tempo corrigindo problemas relacionados à implantação. Para obter as definições de pesquisa e métrica mais recentes, consulte as métricas de entrega de software do DORA.
Esses resultados validam a ideia de que as práticas de implantação importam.