Estratégias de implantação

Concluído

As práticas de DevOps envolvem ciclos de lançamento frequentes que beneficiam as organizações e os usuários finais de várias maneiras. Como as implantações individuais são menores, elas são mais rápidas e menos desgastantes, mas ainda há com o que se preocupar. Para reduzir a possibilidade da ocorrência de problemas, você precisa adotar uma estratégia de implantação que melhor atenda às necessidades da sua organização.

Você já conhece a abordagem de "implantação épica", que alguns chamam de estratégia "Big Bang". E sabe que esse método não funciona bem em aplicativos modernos. Há várias outras estratégias de implantação que se tornaram populares no contexto de operações modernas, e cada uma tem pontos fortes e fracos, dependendo da situação.

Estratégia de implantação sem interrupção

A estratégia de implantação sem interrupção usa uma abordagem gradual para a introdução de novas versões de código. A nova versão é dividida em fases que se estendem por um período, aumentando gradualmente as instâncias do novo código e, ao mesmo tempo, diminuindo as instâncias do antigo. Isso significa que as instâncias novas e antigas coexistirão dentro da organização. Por exemplo, você pode atualizar o software em um servidor, uma máquina virtual ou um contêiner por vez.

Uma vantagem dessa estratégia é que você pode monitorar o novo código no ambiente de produção para garantir que ele atenda ao desempenho, à segurança, à confiabilidade e a outros padrões antes que eles sejam amplamente implantados.

Estratégia de implantação azul-verde

A estratégia de implantação azul-verde usa dois ambientes separados que são mutuamente idênticos. Um é um ambiente de teste que contém a nova versão do software, o outro é o ambiente de produção atual. Depois de confirmar que o software está funcionando corretamente e atendendo aos seus padrões, faça uma alternância completa do ambiente de produção atual para o novo, de modo que ele agora processe todo o tráfego de produção.

O ambiente azul é o seu ambiente de produção atual. O ambiente verde é uma duplicata exata dele. Primeiro, implante a nova versão do software no ambiente verde e, depois de pronto, roteie o tráfego do aplicativo do ambiente azul para o verde, que agora é o seu ambiente de produção.

Uma vantagem dessa estratégia é que você pode fazer a alternância quase instantaneamente, sem nenhum tempo de inatividade. Outra vantagem é que a alternância de volta para o azul também é facilitada caso ocorra um problema depois de colocar o ambiente verde online.

Estratégia de implantação canário

A estratégia de implantação canário combina alguns elementos da implantação sem interrupção com os da implantação azul-verde. A alternância não é feita toda de uma vez. Você deve implantar a nova versão em uma parte limitada do ambiente de produção e, em seguida, migrar gradualmente todo o tráfego para a nova versão. O software é implantado em etapas incrementais para um número limitado de instâncias ou usuários até que você verifique se ele funciona corretamente e, em seguida, é implantado no restante da infraestrutura.

O nome vem da prática de uso de canários em minas de carvão como um sistema de aviso antecipado. Em uma implantação canário, você pode fazer testes automatizados e usar monitoramento e análise para receber um aviso antecipado de qualquer problema com a nova versão no subconjunto de instâncias ou usuários. Dessa maneira, todo o ambiente de produção não é afetado.

Sinalizadores de recurso

A ideia do sinalizador de recurso é outra estratégia que requer um pouco mais de sofisticação por parte dos desenvolvedores. Em vez de ter duas versões separadas do mesmo software, uma antiga e uma nova (supostamente com novos recursos), enviamos uma versão do software que contém o software antigo mais as novas alterações (recursos etc.). As novas alterações são, por padrão, inativas e não visíveis até que o "sinalizador de recurso" dessa alteração seja ativado pela inversão do sinalizador. Esse sinalizador pode assumir muitas formas, incluindo uma linha em um arquivo de configuração, um argumento de linha de comando, uma resposta especial de um servidor online que o software consulta na inicialização, entre outros.

Uma grande vantagem dessa abordagem é a facilidade com que é possível reverter um problema ou implantar alterações lentamente. Não precisamos enviar uma nova versão (com todos esses bits) para nossos servidores ou nossos clientes; precisamos apenas ativar ou desativar o sinalizador apropriado ou fazer downgrade ou upgrade deles.

Melhores práticas de implantação

Seja qual for a estratégia de implantação utilizada, há algumas melhores práticas que ajudarão você a minimizar o risco durante a distribuição de um novo software ou uma nova versão de software existente:

  • Use ferramentas apropriadas, como o Azure Pipelines, para criar um pipeline de implantação e integração contínuas.

  • Integre testes automatizados.

  • Use canais de comunicação para notificar as partes pertinentes dos resultados dos testes, ou seja, alerte as equipes se as implantações falharem, apresentarem problemas etc.

  • Monitore o software para ver se há problemas imediatamente após a implantação.

  • Tenha um plano de reversão caso uma nova implantação de versão não seja aprovada nas verificações de integridade ou ela não funcione corretamente.

Verificar seu conhecimento

1.

Uma estratégia de implantação que envolve fazer uma duplicata do ambiente de produção, atualizar esse ambiente e, em seguida, fazer uma transição rápida completa para a duplicata é:

2.

Uma estratégia de implantação que envolve a distribuição da atualização para um subconjunto de usuários ou o tráfego de produção e aumenta o percentual ao longo do tempo é: