Estratégias de Publicação

Como diminuir o Downtime

Willian da Silva
orangejuicetech
3 min readJul 27, 2022

--

A velocidade que temos hoje em nosso dia a dia, a quantidade de publicações em ambientes produtivos, essa onda de Startups oferecendo software como serviço tem gerado a necessidade de SLA’s que fogem de disponibilidade e se baseiam até mesmo em tempo de resposta.

Neste cenário, é desafiador colocar software em produção sem que ela fique indisponível durante esse processo, não ocasione incidentes e por consequência as empresas não fiquem fora de seus SLA’s.

O processo de publicação é algo complexo, depende de muitos fatores e práticas que devem ser aplicados desde a concepção do Software. Por isso, nem sempre é possível eliminar o Downtime durante as publicações, mas existem algumas estratégias que combinadas podem diminuir e em alguns casos até mesmo eliminá-lo.

Blue Green Deployment

O Blue Green Deployment é uma técnica que se propõe a diminuir este tempo em que a aplicação ficaria offline; ela consiste na criação de um segundo ambiente produtivo. Vamos supor que o seu ambiente atual seja o ambiente Blue. No momento da publicação, o ambiente Green é criado e disponibilizado para qualquer tipo de testes, sejam eles manuais ou automatizados.

Managing Production with Blue/Green Deployment

Assim que os testes forem finalizados, as requisições da aplicação são direcionadas para o ambiente Green. Nesse momento, o ambiente Blue pode ser destruído, possibilitando que este processo seja realizado quantas vezes forem necessárias no momento de publicação das aplicações.

Canary Deployment

O Canary Release ou Canary Deployment é uma técnica que também se propõe a diminuir este tempo em que a aplicação ficaria offline. Ela funciona totalmente integrada a estratégia de Blue Green Deployment, a diferença é que quando são executadas juntas, o ambiente Blue só é destruído no final do Canary Deployment.

Vamos supor que, no final do processo de Blue Green Deployment, seja feita uma alteração no DNS da aplicação, para que um percentual totalmente aleatório das requisições que eram enviados para versão Blue seja direcionado para a versão Green, por exemplo 10% das novas requisições.

Managing Production with Blue/Green Deployment

A partir desse momento, paramos de nos preocupar com Downtime e nos preocupamos com a taxa de erro. Vamos supor que a taxa de erro HTTP da versão Blue seja 20%. Se a taxa de erro da versão Green estiver acima desse valor, o DNS volta a direcionar todo o tráfego para a versão Blue e o ambiente Green é destruído. Porém, se a taxa de erro HTTP estiver igual ou abaixo dos 20%, é realizado outra alteração no DNS, aumentando mais 10% de todo tráfego para a versão Green e esse processo é feito sucessivamente até 100% do tráfego estiver sendo enviado para versão Green e o ambiente Blue ser destruído.

Managing Production with Blue/Green Deployment

Concluindo

Pensando na velocidade que o nosso dia a dia tem exigido, nessa onda de empresas oferecendo software como serviço, com SLA’s cada vez mais altos, até mesmo baseados em tempo de resposta, uma boa estratégia de publicação pode ajudar a diminuir o Downtime e oferecer uma melhor experiência para o usuário final.

Referencias

Imagens retiradas de Managing Production with Blue/Green Deployment

--

--