Skip to content

Continuous Delivery x Continuous Deployment

Quando o tema é DevOps, falamos muito sobre automação e de práticas que visam elevar o nível de qualidade, confiabilidade e segurança das nossas aplicações. Acaba se tornando muito comum falarmos sobre CD, que em alguns cenários pode significar Continuous Delivery (Entrega Contínua) ou Continuous Deployment (Publicação Contínua).

É muito comum lermos declarações — até de profissionais reconhecidos do mercado — que confundem os conceitos de Continuous Delivery e Continuous Deployment. Muitas vezes, as pessoas falam de um quando na verdade desejam citar o outro processo — ou simplesmente acham que os dois são “a mesma coisa”.

Ambas são metodologias modernas aplicadas no ciclo de desenvolvimento de software, seu objetivo é diminuir o tempo de lançamento de novas funcionalidades, as liberando em pequenos ciclos, de maneira padronizada, segura e confiável, sem a necessidade de processos burocráticos e demorados de gestão de mudanças.

Image for post

Podemos dizer que Continuous Deployment é uma metodologia para times de desenvolvimento com um maior nível de maturidade, pois sua única diferença em relação a Continuous Delivery é que num fluxo de Continuous Delivery um humano precisa apertar o botão para que a implantação seja realizada, enquanto no fluxo de Continuous Deployment, cada alteração é liberada automaticamente no ambiente produtivo.

Passos para o sucesso

Como qualquer processo do ciclo de desenvolvimento de software, um fluxo de CD maduro, deve ser planejado desde o momento da construção do código de negócio, pensando em quais tipos de testes serão aderentes e como medir o sucesso dos testes construídos.

Não existe uma receita única para o sucesso de um CD, cada empresa tem um parque tecnológico personalizado e podem ter passos personalizados que fazem total sentido para seu contexto. Pensando em uma estrutura base para micro serviços, podemos pensar na seguinte estrutura:

Image for post

Por boa prática, podemos considerar que nenhuma aplicação deve conhecer seus dados sensíveis, deve existir um cofre de senhas que os guarde de acordo com o ambiente, o passo Cofre de Senhas serve para consultar esses dados e apresenta-lo para aplicação no momento da publicação. Vale ressaltar que um dado sensível pode ser um usuário e senha de um banco, uma url de um serviço ou qualquer dado que seja configurável na aplicação.

O passo Publicação representa realmente a publicação de uma aplicação em determinado ambiente.

Ja o passo Testes Regressivo da uma testa se nenhuma funcionalidade que ja estava funcionando parou de funcionar e se as novas funcionalidades estão funcionando conforme deveriam funcionar.

Os Testes de Performance são ideais para medir se uma aplicação pode oferecer para o usuário final a experiencia que foi projetada pelo time de desenvolvimento. Com uma execução constante, podemos pegar facilmente os pequenos ajustes de código, que podem gerar grandes impactos para o usuário final.

Devemos sim pensar em segurança desde o momento da concepção do software, por isso o ideal é que no passo Testes de Segurança existam vários tipos de teste de penetração e analises dinâmicas do código.

Vale ressaltar que esse fluxo de CD demonstrado acima, pode ser aplicado a qualquer ambiente, inclusive no produtivo, o único pré requisito é que os testes que gerem qualquer massa de dados sejam deletados no final do processamento.

Gestão de Mudanças

Muitas empresas ainda possuem comitês de gestão de mudança complexos, lentos e defasados, onde muitas vezes os times de desenvolvimento devem cumprir uma série de pré requisitos que muitas vezes não são suficientes para garantir a qualidade do software entregue.

Podemos dizer que quando metrificamos um processo de CD bem estruturado, que contenha automação de ponta a ponta, estamos criando um processo de Gestão de Mudanças moderno e estruturado, com visibilidade de indicadores de qualidade e segurança.

A visibilidade destes indicadores, muitas vezes gera maior engajamento nos times de desenvolvimento, sempre com o intuito de elevar os níveis de qualidade e segurança das aplicações, gerando maior confiabilidade no software entregue.

Conclusão

Como vimos acima, um fluxo de CD bem estruturado é estratégico para qualquer produto ou empresa, pois alem de gerar uma série de indicadores sobre o software produzido, estes que muitas vezes pode auxiliar na tomada de decisões estratégicas, também o nível de competitividade de uma empresa ou produto no mercado, pois diminui o tempo de espera para a publicação de uma nova funcionalidade no ambiente produtivo.

Por Willian da Silva, Arquiteto de soluções no Grupo FCamara

 

Comments (0)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Back To Top