Conheça os principais tipos de deploy e quando usar cada um

Os desafios da atuação dos DevOps são muitos, entre eles está o aprendizado constante e a busca pelas melhores soluções que beneficiem a estratégia dos clientes. Conhecer os tipos de deploy — e encontrar o que se encaixa melhor em uma aplicação — é parte importante do desenvolvimento e da implantação de um site, por exemplo.

O deploy tem impacto direto na construção de uma solução que roda bem e de maneira estável. O mesmo pode ser dito para a transição, que deve ser suave. Isso, aliás, é o que é desejado por qualquer desenvolvedor. O mesmo pode ser dito sobre um ambiente que não tem bugs ou mesmo inconsistências, desde a implantação inicial. É possível?

Confira, neste post, os tipos de deploy que são mais utilizados, além de suas vantagens e desvantagens.

Conheça os principais tipos de deploy

É crescente o número de soluções utilizadas como estratégias de implementação de aplicações. O desenvolvedor que busca uma carreira de sucesso deve ter conhecimento das particularidades de algumas delas. Falaremos sobre os principais tipos de deploy a seguir: Rolling, Blue-Green e Canary.

Rolling

Rolling é o tipo mais simples de deploy que se pode implementar ao desenvolver websites. Por isso, ele pode ser entendido como um padrão que é adequado para quase todos os serviços de orquestração.

O deploy Rolling consiste em subir os serviços em uma nova versão e, assim, substituir a versão antiga do serviço. Ou seja, é um processo que vai acontecer aos poucos — não é uma mudança drástica. Sendo assim, a versão antiga só é desativada quando a nova está 100% funcional. É o que os programadores podem chamar de virar a chave.

Vantagens e desvantagens do deploy Rolling

A vantagem desse tipo é que a migração do antigo para o novo é menos traumatizante, menos perceptível — também é mais cautelosa, pois a troca acontece aos poucos.

A desvantagem do Rolling, no entanto, é que, até que a nova versão esteja funcionando, as duas precisam ser administradas. Isso aumenta o nível de complexidade do ambiente e da administração dele. Assim, podem haver alguns problemas.

Blue-Green

O deploy Blue-Green funciona da seguinte maneira: há dois ambientes idênticos na infraestrutura. No caso da Rolling, há até mesmo momentos onde vão haver dois pacotes do mesmo serviço em versões diferentes, mas no Blue-Green existe um mirror, ou melhor, um espelho do seu ambiente — e na frente desses ambientes há um load balancer que realiza o direcionamento do tráfego para o ambiente que você deseja.

Nesse cenário, é possível testar o novo ambiente enquanto o antigo ainda funciona. Assim que todos os testes estiverem corretos e dentro do esperado, pode ser feita a transição do load balancer para esse novo ambiente. Com isso, é praticamente instantânea a mudança. O downtime é zero, o que favorece o gerenciamento de projetos.

Vantagens e desvantagens do deploy Blue-Green

A principal vantagem do Blue-Green é que é possível subir a nova versão, realizar testes e, só quando ele estiver em perfeitas condições, mudar o direcionamento. Por isso, a migração é muito tranquila — já que é realizada de maneira bem cautelosa.

O lado negativo é que, para ter os dois ambientes iguais, é preciso usar duas vezes mais recursos da infraestrutura, ou seja, é necessário o dobro dessa infraestrutura que a empresa tem no momento — o que gera novos custos.

Canary

Canary é uma aplicação que consiste em colocar a versão nova em produção, mas liberar o experimento dessa versão apenas para pequenos grupos. Em outras palavras, o acesso não é liberado para todos ao mesmo tempo.

Em Canary, o ambiente antigo segue ativo simultaneamente ao novo ambiente. Por isso, pode-se liberar uma parcela dos usuários para acessar o novo ambiente e ver como ele se comporta com usuários reais. Assim é possível identificar se vão existir problemas no dia a dia.

É comum que quando o desenvolvedor está testando uma nova aplicação internamente, tudo funcione e dê certo. Com Canary, é possível saber o momento ideal de disponibilizar uma nova versão para todos. Essa, aliás, é uma boa estratégia de gerenciamento de projeto.

Vantagens e desvantagens do deploy Canary

Uma vantagem é que, com a estratégia Canary, é possível realizar testes isolados e acompanhar a transição. Dessa forma dá para saber como a aplicação está reagindo, se a experiência do usuário está sendo boa, se houve falha e, caso tenha acontecido, é possível corrigir rapidamente.

Outro benefício é a possibilidade de liberar aos poucos o uso da nova versão, que só é disponibilizada plenamente quando tudo está rodando 100%. É um tipo bem conservador de deploy e muito útil, porque dificulta o aparecimento de erros e reduz os riscos de imprevistos.

A desvantagem do deploy Canary é que, como a liberação é feita de forma gradativa, o tempo para finalização da nova versão é muito grande. Além disso, dependendo do tamanho da infraestrutura, o custo pode ser elevado.

Saiba qual deploy utilizar em cada situação

Decidir qual tipo de deploy deve ser utilizado em cada situação é algo que depende muito do nível de criticidade do ambiente. Se há um ambiente muito grande, é perigoso realizar uma mudança de uma única vez — como é o caso da Rolling, que não permite que seja avaliado o comportamento da aplicação com usuários reais.

Em um ambiente grande, no entanto, pode ser indicado usar o deploy Blue-Green. O fato dele ter os dois ambientes faz com que seja possível encontrar um balanceamento ideal entre os dois. Com isso, a liberação é feita apenas quando há certeza de que tudo está funcionando perfeitamente.

Quando a necessidade aparece em ambientes menores e menos críticos, o Canary com menos usuários faz com que a transição leve mais tempo. De toda forma, há menos risco de ter problemas — afinal, já há gente testando o deploy antes da migração acontecer, de fato.

Deploy é algo simples de entender, mas complexo de colocar em prática. A escolha está diretamente atrelada à análise estratégica que deve ser feita. Não existe uma fórmula. A resposta depende da avaliação do ambiente e a observação de qual dessas estratégias se enquadra melhor naquele momento.

No mais, ao escolher um tipo de deploy, não quer dizer que outro não pode ser usado em um próximo momento. Não existe um melhor entre o Rolling, Blue-Green e Canary. O que existe é a aplicação que melhor se adapta ao que o desenvolvedor deseja realizar.

De toda forma, o profissional deve realizar o procedimento de maneira suave e que não afete a disponibilidade das soluções.

Agora que você já conhece quais são os tipos de deploy, assine a nossa newsletter e continue aprendendo ao receber conteúdos exclusivos na sua caixa de e-mail!