Uma das grandes transformações na maneira de trabalhar da TI, se sustenta em um fluxo contínuo. O que significa isso? O movimento ágil, a infraestrutura ágil e o movimento Lean tem contribuído imensamente em aumentar a qualidade das entregas da TI e aumentar a estabilidade das soluções.
Produtos evolutivos
Se antigamente se falava de Projetos, o movimento ágil os transformou em Produtos evolutivos. Ainda assim, uma parte do fluxo de entrega estava faltando para facilitar a estabilidade, absorvendo a calibragem da solução, com testes, homologação, implantação e a operação com a resolução de incidentes. Essa visão sistêmica orientada a serviço, levou a integrar muitas disciplinas para orquestrar de forma eficiente na maneira de construir modelos que dependiam do cenário particular. Isso ficou consolidado com DevOps.
DevOps
DevOps se sustenta em um fluxo contínuo cujos princípios são amplamente conhecidos a partir do Lean. Como isso funciona na TI? Para que este fluxo funcione há necessidade de estabelecer o fluxo de uma peça, ou seja, que qualquer mudança que esteja sendo construída, ela seja implantada quanto antes de maneira segura e estável. Se no Lean se fala de eliminar desperdícios, uma deles são os estoques intermediário e as esperas. Materializando isso na TI, acumular código pelos desenvolvedores, para fazer mezclas (merge), releases, mudanças grandes, é um desperdício. É necessário quebrar esse esforço em pequenas entregas, ou seja, é necessário diminuir o tamanho do lote. Pequenas mudanças, cada commit, precisar ser um potencial incrementando a ser implantado.
Integração Contínua
Daí se consolida a disciplina Integração Contínua, que é a consolidação e convergência dos códigos dos desenvolvedores em uma versão no repositório de versão. A Integração Contínua do ponto de vista ferramental, é a disciplina de se aproximar o máximo possível do Trunk ou Mversão Master, por exemplo com Pull Request para ter uma versão do código revisada, testada (uso de TDD por exemplo), compilada, segura e integrada.
Implantação Contínua
Em forma assíncrona mas em forma frequente, agora é possível validar a versão com testes de aceitação, sejam funcionais e não funcionais. esta disciplina é a Entrega Contínua, que disponibilizará versões potencialmente instaláveis, válidas, consolidadas, seguras, com pequenas diferenças da versão que está rodando em produção. Isso é necessário para transformar as mudanças que originalmente acumulavam muito código em grandes releases, chamadas de mudanças normais, em pequenas mudanças padrão, pré-aprovadas, com planos de roll-back altamente seguros com o uso de métodos como Blue-Green e Canário que garantem uma gestão de risco baixo. Isso consolida a Implantação Contínua no fluxo.
Desta mentira as grandes disciplinas: Integração, Entrega e Implantação contínua materializam os princípios Lean com uma série de técnicas altamente justificadas para consolidar que exista a sincronia necessária para transformar essa movimentação em um esforço leve, rápido, estável e seguro. Tudo isso é sustentado em forma automatizado no Pipeline de Implantação, testes automatizados contínuos, monitorização contínua e telemetria.
Conjunto de boas práticas
Sabemos que não há fórmula ou receita pronta, mas sim um conjunto de boas práticas que alavancam esta implantação dependendo das restrições e limitações particulares, como arquitetura monolítica, cultura da culpa, alta dívida técnica, ambientes não padronizados, dependências de terceiros etc.