Sobes.tech
Middle

O que é o deployment Blue-Green?

sobes.tech IA

Resposta da IA

A implementação azul-verde é uma estratégia de lançamento de novas funcionalidades com um tempo de inatividade mínimo, baseada na manutenção de dois ambientes idênticos: "azul" (versão atual em funcionamento) e "verde" (nova versão).

Algoritmo:

  1. Existe um ambiente "azul" ativo que gerencia todo o tráfego.
  2. A nova versão da aplicação é implantada em um ambiente "verde" completamente idêntico, mas inativo.
  3. Após testes bem-sucedidos no ambiente "verde", o tráfego é redirecionado para este.
  4. O ambiente "azul" é mantido para uma reversão rápida ou pode ser usado para futuros implantes.

Vantagens principais:

  • Tempo de inatividade mínimo: A troca de tráfego é quase instantânea.
  • Reversão simples: Em caso de problemas com a nova versão, o tráfego é facilmente redirecionado de volta ao ambiente "azul".
  • Menor risco: A nova versão é testada em um ambiente isolado antes de alterar o tráfego.

Desvantagens:

  • Recursos duplos: São necessários recursos para manter dois ambientes completos.
  • Gestão do estado: Pode ser difícil gerenciar o estado da aplicação se ela usar um banco de dados com mudanças constantes.

Exemplo de troca de tráfego usando um balanceador de carga:

// Configuração do balanceador (simplificada)
{
  "listeners": [
    {
      "port": 80,
      "protocol": "HTTP",
      "default_actions": [
        {
          "type": "forward",
          "target_group_arn": "arn:aws:elasticloadbalancing:..." // ARN do grupo de instâncias do ambiente "azul"
        }
      ]
    }
  ]
}
# Comando para trocar o tráfego para o ambiente "verde"
# (exemplo para AWS CLI, assumindo que o ARN do novo grupo alvo está disponível)
aws elbv2 modify-listener --listener-arn "arn:aws:elasticloadbalancing:..." --default-actions Type=forward,TargetGroupArn="arn:aws:elasticloadbalancing:..." // ARN do grupo de instâncias do ambiente "verde"