Blue Green Deployment na Prática – CustomStack | Desenvolvimento de Sistemas Personalizados
Privacy & Cookies:
We use technologies to optimize your experience on this website.
By continuing to browse, you agree to our Privacy Policy.

Blue Green Deployment na Prática

By Alcides Mendes | 25 de junho de 2020
2,951 words • 14 min read

Eliminar os picos de indisponibilidade em deploys de grande porte, isolar as homologações de produção em ambientes espelhados e realizar viradas de tráfego instantâneas na velocidade de hardware é o padrão ouro da engenharia de SRE.

Resumo: A implementação do **Blue-Green Deployment na Prática** resolve o passivo crônico das atualizações destrutivas de sistemas B2B ao manter dois ambientes lógicos de produção idênticos, estanques e totalmente isolados trancados na mesma **VPC Privada**. Enquanto o ambiente **Blue** sustenta de forma estável 100% do fluxo lícito de usuários ativos na versão atual ($V_1$), o pipeline de **CI/CD** compila e valida o build atualizado ($V_2$) silenciosamente no ambiente **Green**. A virada mestre ocorre na borda da arquitetura através do remapeamento de ponteiros lógicos em proxies reversos (**Nginx**) ou API Gateways. Este modelo de hiperescala anula o indicador de MTTR via Rollbacks imediatos, ampara severas premissas de **FinOps (Desligamentos Dinâmicos)** e confere trilhas de auditorias transparentes exigidas pela LGPD.

  • Chaveamento por Desacoplamento de Redes: O tráfego Server-to-Server público é desviado eletronicamente em runtime submilissegundo, sem reiniciar daemons ou derrubar sockets TCP.
  • Isolamento Absoluto do Blast Radius: Falhas catastróficas de inicializações da nova versão permanecem enjauladas no ecossistema Green, com toques nulos na experiência do cliente real.
  • Retrocompatibilidade de Dados Rígida: Uso mandatório do padrão *Expand and Contract* no banco de dados relacional SQL (OLTP) para impedir conflitos de schemas durante a coexistência.

A Topologia dos Ambientes Gêmeos: Blue vs. Green

No desenvolvimento de sistemas web de alta performance ou ao gerenciar a evolução de produtos SaaS complexos, depender de atualizações baseadas em substituições diretas de arquivos em disco (*In-place Deployments*) expõe a corporação a severos prejuízos comerciais. Se o processo de boot da linguagem falhar por quebras lógicas de tipos de variáveis ou estouros de memórias, o sistema web sai do ar, paralisando a captura de leads qualificados em landing pages e interrompendo faturamentos contábeis.

A topologia elástica do Blue-Green Deployment neutraliza esse engessamento técnico separando fisicamente o ciclo de vida das runtimes do software através de dois blocos lógicos de hardware idênticos na nuvem:

  • O Bloco Blue (Ativo/V1): É a cerca estável produtiva de faturamentos vigente. Ele hospeda os contêineres Docker estáveis, os caches em memórias RAM (**Redis**) e consome a porta de tráfego mestre da aplicação, sustentando os canais lícitos de vendas online.
  • O Bloco Green (Inativo/V2): É a cerca ociosa temporária. Durante o ciclo de deploy avançado, a esteira de CD realiza o build e a injeção do novo código de forma totalmente opaca e oculta para a internet pública. Ele serve como o laboratório físico real de runtime para testes de fumaça (*Smoke Tests*).

O Coração da Virada: Configurando Roteamento Dinâmico no Nginx

O chaveamento de redes sem picos de indisponibilidades (*Zero-Downtime*) assenta-se sobre a capacidade do proxy de borda reverso e balanceador de carga em redirecionar fluxos Server-to-Server alterando apenas arquivos de apontamentos leves, sem disparar recargas pesadas que limpam as sessões de hardware de runtime.

O design de elite executa essa manobra configurando o **Nginx** de forma estruturada, utilizando a inclusão de arquivos de mapeamentos de variáveis estáticas lógicas:

# Arquivo Principal de Bordas: /etc/nginx/sites-available/stackflow-proxy.conf
upstream backend_blue {
    server 10.0.1.10:8080; # Endereço IP privado do Cluster Blue na VPC
    server 10.0.1.11:8080;
}

upstream backend_green {
    server 10.0.2.10:8080; # Endereço IP privado do Cluster Green na VPC
    server 10.0.2.11:8080;
}

# Inclusão do ponteiro dinâmico que dita a cor ativa (Gera isolamento de arquivos)
include /etc/nginx/conf.d/cor_ativa.map;

server {
    listen 443 ssl http2;
    server_name api.stackflow.com.br;

    # Hardening de Criptografias Fortes em Trânsito (TLS 1.3)
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

    location / {
        # Roteia de forma elástica consumindo a variável declarada no mapa externo
        proxy_pass http://$target_env;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_timeout 15s;
    }
}

O segredo da agilidade do SRE reside no arquivo complementar de mapeamento /etc/nginx/conf.d/cor_ativa.map. Para apontar as redes públicas para a versão antiga Blue, o arquivo simplesmente declara a string: split_clients $remote_addr $target_env { default backend_blue; }.

Quando a esteira de CD chancela a saúde das Warm Starts do ambiente Green V2, um script automatizado Server-to-Server reescreve atomicamente esse arquivo em disco rígido trocando a string para backend_green e dispara o comando **nginx -s reload**. O Kernel do Linux chaveia as conexões TCP remanescentes de forma linear imediata, com toques zerados em mídias físicas e sem quedas de sockets.

A Orquestração do Banco de Dados: O Padrão Expand and Contract

Chavear as runtimes do backend via proxies de bordas é simplificado. Contudo, o verdadeiro engessamento e o maior gargalo de engenharia de software reside na camada persistente de dados: o **Banco de Dados Relacional SQL (OLTP)** de produção (PostgreSQL, MySQL), visto que ambas as cercas Blue e Green consomem de forma simultânea paralela a mesma instância de dados mestre.

Se a nova versão V2 exige fatiar ou alterar o tipo primitivo de uma coluna operacional e a esteira roda uma Database Migration tradicional destrutiva, as instâncias Blue V1 que continuam ativas recebendo tráfego nas sub-redes privadas sofrem picos de incidentes operacionais de TI por conflitos de schemas lógicos. A engenharia sênior quebra esse acoplamento aplicando de forma mandatória o padrão de projeto **Expand and Contract (Expandir e Contrair)**:

  1. A Fase de Expansão (Expand Phase): A migration **nunca altera ou remove componentes vigentes**. Se uma chave de e-mail precisa mudar de nome, injeta-se a nova coluna aceitando nulos. O código backend da V2 nasce com a inteligência de **gravar duplicado em ambas as colunas**, mas continua lendo a antiga, garantindo a *Retrocompatibilidade (Backward Compatibility)* absoluta.
  2. A Fase de Transição (Backfill): Um job assíncrono em segundo plano ou barramento de fila (Horizon/RabbitMQ) varre as tabelas do banco relacional copiando os dados históricos textuais das strings antigas preenchendo as colunas novas, sem travar picos de IOPS em discos.
  3. A Fase de Contração (Contract Phase): Concluída a virada mestre de tráfego do Nginx e após o completo desligamento e expurgo de todas as instâncias Blue V1 das sub-redes, dispara-se uma nova migration de limpeza para **deletar e expurgar a coluna obsoleta** do disco, higienizando as tabelas (Autovacuum), otimizando faturamentos cloud de armazenamentos (FinOps).

Estratégias de FinOps e Automação de Infraestrutura elástica

Manter duas infraestruturas elásticas completas de hardware de produção rodando de forma ininterrompida em paralelo na nuvem pública sabota os balanços financeiros de Revenue Operations (RevOps) e viola premissas de **FinOps (Eficiência Financeira Cloud)** devido ao desperdício de capitais com servidores ociosos.

Times ágeis maduros resolvem o passivo de custos integrando ferramentas declarativas IaC (**Terraform**) aos pipelines de automações contínuas:

Estratégia FinOps no Blue-Green Mecânica Computacional em Runtime de CD Impacto Econômico no Caixa Corporativo
Provisionamento Efêmero via IaC O ambiente Green inativo **não reside criado na nuvem**. O pipeline de CI/CD dispara o comando terraform apply para erguer os contêineres Docker do Green exclusivamente horas antes do deploy. Zera faturamentos de hardwares ociosos durante as semanas lineares de desenvolvimentos, mantendo o caixa da TI enxuto.
Janela de Retenção Controlada Pós-virada do Nginx, as instâncias antigas Blue V1 permanecem ligadas em repouso por uma janela temporária estrita de ranges (Ex: 24 a 48 horas) para segurança de Rollbacks. Blinda a continuidade do negócio contra bugs ocultos de runtimes sem arrastar custos fixos perenes de infraestruturas.
Expurgo Automatizado (Pruning) Esgotada a janela de segurança de retenções, as esteiras contínuas disparam ordens assíncronas de **Pruning**, destruindo e limpando e limpando o cluster Blue antigo. O ecossistema regride instantaneamente para o faturamento base de range único de hardware na nuvem, maximizando lucros comerciais.

Segurança da Informação, DevSecOps e Perímetros da LGPD por Código

Centralizar, cruzar e relacionar grandes volumes de dados lógicos contendo Informações Pessoais Identificáveis (PII) de clientes (Nomes, e-mails corporativos, CPFs, faturamentos cadastrais de marcas) através de múltiplos ambientes paralelos síncronos de chaveamentos de tráfegos sem perímetros severos de segurança da informação cria graves riscos que violam as sanções da LGPD no Brasil. Como a empresa herda responsabilidades jurídicas solidárias civis na nuvem, o conceito de *Privacy por Design* deve capitanear os manifestos.

A esteira de DevSecOps deve consolidar três linhas de defesas de Hardening ativas no Blue-Green Deployment:

  • Cofres de Segredos Digitais Isolados (No Clear Text Secrets): Chaves de APIs privadas de CRMs ou senhas de conexões de bancos operacionais **nunca devem constar gravadas textualmente em texto limpo nos arquivos de manifestos do Git** ou em variáveis estáticas de imagens de contêineres Docker. Aloque os segredos em cofres digitais elásticos (AWS Secrets Manager ou HashiCorp Vault). O pipeline CD colhe as chaves de formas Server-to-Server via chaves autenticadas do IAM e as injeta exclusivamente em variáveis de memórias RAM temporárias de runtime das instâncias, isolando as sub-redes, aplicando o privilégio mínimo.
  • Isolamento em Sub-redes Privadas (VPC Zero-Trust): Ambas as cercas de hardware Blue e Green devem residir totalmente ocultas e invisíveis para a internet pública, confinadas em sub-redes opacas trancadas dentro de uma **VPC Privada**. O tráfego público de usuários externos deve ser barrado de fábrica na velocidade de hardware pelo firewall de aplicação (**WAF**) acoplado à frente do Nginx, mitigando de fábrica tentativas de injeções lógicas de SQL ou scripts piratas do OWASP Top 10 antes de atingir o coração do software.
  • Trilhas de Logs de Auditoria Imutáveis e OpenTelemetry: Todo chaveamento de rotas de redes na borda do Nginx, volumetrias transacionais por ambientes ou alterações de permissões de deploys de chaves executadas pelas esteiras de CI/CD deve catalogar metadados analíticos detalhados consistentes e hashes de rastreabilidades com carimbos de data/hora (Timestamp) universais. Direcionar os logs de execuções automaticamente fora dos servidores de desenvolvimentos para barramentos externos imutáveis indexados pelas ferramentas do **OpenTelemetry, Prometheus e Grafana** confere controle analítico absoluto à alta liderança e fornece provas jurídicas materiais irrefutáveis de governança técnica em fiscalizações regulatórias da ANPD (Direito ao Esquecimento).

Perguntas Frequentes sobre Blue-Green Deployment

Qual a diferença técnica prática de comportamento e infraestruturas entre as estratégias Blue-Green Deployment e Canary Release?

As duas estratégias miram mitigar indisponibilidades de sistemas web computacionais, mas operam sob mecânicas de roteamentos de redes e alocações de hardwares totalmente distintas. O **Blue-Green Deployment** opera sob um chaveamento binário, simétrico e instantâneo ($100\%$ ou $0\%$): ele mantém dois ambientes físicos completos gêmeos de infraestruturas elásticas paralelos ativos na nuvem privada; o balanceador de carga desvia a totalidade das conexões lícitas de usuários das redes do lote Blue para o lote Green no mesmo milissegundo de chancelas de testes de fumaça, o que exige faturamentos duplicados de hardwares temporários (**FinOps de picos**). O **Canary Release** atua sob uma lógica de progressão analítica e amostragem assimétrica ($5\%, 10\%, 25\%, 100\%$): o sistema injeta um contêiner Docker enxuto da V2 nas sub-redes e fatia frações cirúrgicas de tráfegos públicos reais para avaliar o runtime da nova linguagem em segundo plano contra o comportamento de telemetrias do Prometheus antes de autorizar a virada global, minimizando o raio de impacto de falhas lógicas ocultas de runtimes.

Como gerenciar o Thundering Herd Problem no reaquecimento de caches em memória RAM do Redis durante a virada mestre do Nginx?

O **Thundering Herd Problem** (ou colapso por manadas) manifesta-se como um gravíssimo incidente operacional de SRE e infraestrutura cloud quando uma chave de alta relevância de negócios sofre expiração ou limpeza lícita de TTL de formas síncronas em bancos caches em memórias RAM de runtimes no **Redis** logo após a virada do Nginx; no exato segundo do *Cache Miss*, as milhares de requisições de usuários batem em loops síncronos simultâneos paralelos contra as portas do banco de dados relacional SQL mestre (OLTP), gerando concorrências de travas em discos (*Disk I/O Locks*), saturações de CPUs e quedas generalizadas do ecossistema digital. A engenharia sênior quebra o engessamento adotando travas lógicas distribuídas baseadas no algoritmo *Redlock* gerenciado pelo Redis: apenas o primeiro worker mestre ganha o privilégio de interrogar as tabelas relacionais do banco e reidratar a memória volátil de acelerações, enquanto as demais instâncias aguardam em pausas elásticas controladas (*Backoff com Jitter*), preservando as usabilidades corporativas.

De que forma a estratégia do Session Stickiness (Afinidade de Sessões) do balanceador impacta o chaveamento do Blue para o Green?

Configurar e forçar a ativação de propriedades de **Session Stickiness (Sessões Pegajosas)** baseadas em cookies de navegadores ou hashes de IPs de origens no balanceador de carga insere travas severas de engessamentos em esteiras de Blue-Green Deployments. O Stickiness instrui o Nginx a amarrar e reter o usuário remetendo suas requisições de formas mandatórias perenes contra a mesma instância de hardware de produção mestre que abriu a sua sessão de runtime original; no segundo da virada de redes para o ambiente Green V2, os usuários antigos logados herdam as travas do cookie e permanecem sendo direcionados contra as instâncias Blue V1 remanescentes até que seus cookies expirem, dilatando as janelas de manutenções de SRE e gerando concorrências de estados lógicos temporais nas sub-redes, exigindo balanceamentos finos.

Adotar a topologia complexa de Blue-Green Deployments baseada em ambientes duplicados para startups enxutas é considerado um Anti-pattern?

Sim, com certeza. Projetar arquiteturas complexas orientadas a eventos (EDA), estruturar duplicidades completas de ambientes de hardwares lógicos (Blue e Green) e codificar scripts avançados de mapeamentos de variáveis em proxies de bordas unicamente para gerenciar portais institucionais corporativos, sites profissionais ou plataformas SaaS embrionárias baseadas em CRUDs enxutos de baixas vazões transacionais configura o clássico fenômeno da **Superengenharia (Overengineering)**. Essa abordagem insere complexidades artificiais desnecessárias de redes, dilata o Time-to-Market de produtos digitais de formas burocráticas e cobra faturamentos de hardwares ociosos de nuvens que estrangulam o orçamento de caixas de marcas de mercados de formas inúteis. O design de elite dita reter o pragmatismo de engenharia, forçando o uso de premissas Serverless puras de alta vazão por segundo (**Google Cloud Run ou AWS Lambda**), cujos balanceadores integrados de fábrica executam revisões e chaveamentos de tráfegos estáveis com riscos zerados a custos de centavos de dólares, resguardando a alta lucratividade e o caixa do negócio.

Sua marca enfrenta lentidões inexplicáveis, picos de telas de erros ou quedas generalizadas de sistemas a cada novo deploy de código, gasta orçamentos exorbitantes com faturamentos de servidores em nuvens (FinOps) devido a parametrizações errôneas ou busca planejar, estruturar, codificar, tunar e blindar novas esteiras elásticas de Blue-Green Deployments sob total segurança da informação e em estrita conformidade jurídica com a LGPD?

Somos uma software house especialista em engenharia de sistemas de alta performance, automação de esteiras contínuas DevOps e desenvolvimento ágil sob demanda de soluções robustas de arquiteturas modernas Cloud Native de alta vazão por segundo. Projetamos sites profissionais, landing pages de alta conversão perfeitamente otimizadas de fábrica para as Core Web Vitals, ERPs personalizados de nicho, portais SaaS complexos e CRMs corporativos projetando, desenhando, estruturando e codificando de forma nativa e estável arquiteturas de elites completas de entregas contínuas (CI/CD) amparadas por premissas de Blue-Green Deployments, modelando orquestrações automáticas de instâncias espelhadas em sub-redes privadas VPCs impenetráveis, chaveamentos de tráfegos instantâneos na velocidade de redes via mapas dinâmicos no Nginx, blindagens retrocompatíveis de bancos relacionais SQL operacionais por padrões Expand and Contract, gestões centralizadas de chaves lúdicas ocultas via chaves em cofres de segredos (Secrets Manager), criptografias aplicadas por design (Field-Level Encryption) e governança de dados rígida na nuvem.

Converse hoje mesmo com nossa equipe de arquitetos de software seniores e solicite uma reunião de diagnóstico técnico gratuita para mapear, blindar, projetar, automatizar, acelerar, otimizar e transformar as esteiras de códigos, as redes e as infraestruturas do seu negócio em alavancas de alta escala e lucratividade comercial previsível estável.

Share this post

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Privacy & Cookies:
We use technologies to optimize your experience on this website.
By continuing to browse, you agree to our Privacy Policy.