A implantação de uma nova versão de uma aplicação em produção é um dos momentos mais críticos do Ciclo de Vida de Desenvolvimento de um Software. A experiência pode ir, da emoção de lançar os recursos mais recentes com sucesso, até tornar-se um pesadelo de falhas e interrupções em cascata.
Para ajudar a minimizar os desafios envolvidos nessa etapa, o nosso especialista em DevOps e arquiteto de sistemas, Isac, escreveu três artigos explorando técnicas de implantação que podem ser usadas sem causar impactos ou interrupções de serviço aos usuários finais. Conheça um pouco mais sobre cada uma delas a seguir – e leia os conteúdos na íntegra no Medium.
Os desafios da atualização de um software
É hora de implantar uma nova versão do produto. Todo o trabalho de desenvolvimento está feito, os testes foram realizados e os stakeholders aprovaram. Agora, é necessário agendar uma janela de manutenção, de preferência no meio da noite em um fim de semana, parar o tráfego para todos os servidores, atualizar o software seguindo um procedimento demorado com várias etapas manuais. Depois, restabelecer o tráfego aos servidores e torcer para tudo funcionar bem.
Parece arriscado, certo? Essa tem sido a maneira padrão de fazer implantações por um longo tempo. Felizmente, existem maneiras melhores. Nesta série de artigos sobre “Técnicas de implantação sem indisponibilidade”, destacaremos três das formas mais comuns de implantação de software sem interrupção de serviços aos clientes. A primeira técnica que examinaremos é o Rolling Updates, seguido por implantações Blue-Green e Canary.
1. Técnica Rolling Updates para receber tráfego
Considerando uma aplicação de produção com várias instâncias recebendo tráfego, com a técnica de Rolling Update a atualização ou substituição de instâncias ocorrerá incrementalmente, até que todas elas estejam executando a versão desejada. O número de instâncias atualizadas em cada estágio segue uma taxa predeterminada e, eventualmente, atinge os 100%.
Para aplicar essa técnica, sua aplicação precisa ser capaz de ser executada em várias instâncias ao mesmo tempo, potencialmente com versões diferentes. Deve haver um balanceador de carga ou proxy reverso para distribuir o tráfego entre todos eles. Por fim, é necessário ter um método para determinar se uma instância está íntegra e pronta para servir o tráfego.
Para saber todos os detalhes sobre esta aplicação, acesse o texto na íntegra.
2. Implantações Blue-Green: nova versão de tráfego
Uma implantação Blue-Green é uma maneira relativamente simples de obter implantações sem qualquer interrupção nos serviços e impacto aos usuários, criando um ambiente novo e separado para a nova versão que está sendo implantada e migrando o tráfego para ela. A restauração de uma versão também é possível com a mesma facilidade, com uma mudança de tráfego para a versão antiga.
Como acontece com qualquer técnica de implantação, há vantagens e desvantagens, que serão abordadas no detalhe neste conteúdo.
3. Implantações Canary: transição gradual de tráfego
Uma implantação Canary é uma técnica de implantação sem tempo de indisponibilidade, que permite uma transição gradual do tráfego da versão atual de uma aplicação para uma nova versão. A transição gradual do tráfego geralmente é orquestrada usando uma abordagem orientada por dados, com métricas ditando se devemos continuar ou reverter. Este formato é considerado uma melhoria em relação às implantações Blue-Green que implementam um corte completo de tráfego para a nova versão.
Veja aqui o artigo completo sobre o tema.
Celeiro de tecnologias
Assim como o Isac, na Encora, temos profissionais em desenvolvimento de software trabalhando em diferentes produtos, indústrias e utilizando diversas tecnologias de ponta. Aqui todos podem aprender muito e aplicar as soluções mais inovadoras.
Se você também quer trabalhar em DevOps ou em outros perfis de desenvolvimento, em times altamente colaborativos, conheça algumas de nossas oportunidades aqui.