O modelo de implantação de entrega contínua
Você conheceu as muitas desvantagens da "implantação épica" como um modelo de entrega de software, mas saber o que não funciona bem é apenas metade do caminho. Nesta unidade, você descobrirá a alternativa a esse método monolítico e como ele pode aumentar ainda mais a sua meta de confiabilidade aprimorada.
O que é a entrega contínua?
A entrega contínua é um método pelo qual você pode disponibilizar alterações de software para uso de um modo mais rápido, menos tenso, menos arriscado e mais reproduzível. Em vez de fazer cada implantação de software ou atualizar um evento épico, a entrega contínua procura transformá-la em uma experiência rápida, rotineira e previsível que ocorre sob demanda.
Frequência da implantação: com um modelo de entrega contínua, as implantações ocorrem com frequência. Muitas vezes, elas podem ser mensais, semanais, diárias e, até mesmo, a cada hora. O segredo é que você implanta alterações secundárias e mais focalizadas, com mais frequência.
Iniciadas pelo commit do código: em vez de serem agendadas com muita antecedência, as implantações ocorrem conforme é feito o commit do código. Esse código pode ser um software, uma infraestrutura ou, até mesmo, itens como configurações de software.
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 dos 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: é ideal ter um registro histórico das atividades de implantação e conseguir reconciliar seu ambiente de produção a qualquer momento especificado. 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 que você pode alcançar usando práticas de DevOps como essas para implantar soluções de software.
1ª meta: reduzir a tensão envolvida na implantação de serviços e aumentar a confiabilidade desses serviços
Essa é uma vitória para todos: além de aumentar a satisfação com o trabalho reduzindo a tensão envolvida em implantações de software e de infraestrutura, você também aumenta a satisfação com o trabalho e a satisfação do usuário final tornando seus sistemas mais confiáveis. Devido a esse impacto positivo sobre a experiência do cliente, tecnicamente, essa é realmente uma vitória para todos.
2ª meta: 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 no código com impacto na receita. Você sabe exatamente qual é o problema e como codificar a correção. Quanto tempo levará para colocar esse código em produção? De quantas strings você precisará efetuar pull? Como você testará o código? Com as práticas de DevOps, você pode fazer commit do código, almoçar e receber uma notificação informando que o problema foi resolvido antes de retornar à sua mesa.
3ª meta: reduzir o tempo entre ter uma ideia e entregar um software utilizável
Isso é muito semelhante à meta anterior, mas em vez de implementar alterações, estamos falando sobre inovação pura. Quanto tempo levará para que você agilize a inovação? Com esse modelo de implantação, você pode integrar um novo conceito a um sistema de produção e ter a confiança de que a inovação adicionada não atrapalhará o sistema atual de modo algum. Com essa confiança, você pode entregar rapidamente o novo recurso.
Resultados da implantação
As metas discutidas nesta unidade não são apenas aspirações teóricas, são alcançáveis. Veja a seguir algumas estatísticas do Relatório de 2019 sobre o estado acelerado de DevOps elaborado pela DORA (DevOps Research and Assessment) e pelo Google Cloud DevOps e SRE. Nele, foi descoberto que as empresas de DevOps "de alto desempenho":
- Têm 208 vezes mais implantações.
- São 106 vezes mais rápidas do commit à implantação.
- Têm uma taxa de falha de alteração 7 vezes mais baixa.
- Têm um tempo de recuperação de incidentes 2.604 vezes mais rápido.
Tudo isso leva a um aumento da receita e a uma comercialização mais rápida.
Esses números validam a ideia de que as práticas de implantação são importantes.