O Impensável: Perder uma Região Inteira de Data Center num Instante

Preparação para desastres não é opcional quando você gerencia infraestrutura em escala hyperscale. Furacões, incêndios florestais, falhas na rede elétrica — não são hipóteses. Os data centers (DCs) da Meta enfrentam todos eles. Sistemas de alerta precoce e estratégias de mitigação gradual funcionam bem quando você tem algumas horas de aviso. Mas e quando as luzes apagam instantaneamente? Sem aviso. Sem desligamento gracioso. Só escuridão.

Essa foi a realidade que o time de infraestrutura da Meta teve que encarar. O resultado? Instantaneous PowerLoss Storm — um novo paradigma de teste dentro do programa Disaster Readiness (DR) "Storm", já estabelecido. É a rede de segurança definitiva para perda de energia sem aviso em uma região inteira de DC.

Referência: Este artigo é baseado no mergulho profundo da Meta Engineering sobre sua estratégia de validação de perda instantânea de energia. Fonte: Meta Engineering Blog

Construindo Tolerância do Zero

Lidar com perda instantânea de energia não é uma correção de última hora. Teve que ser arquitetada em cada camada do stack do DC:

  • Instalações Mecânicas e Elétricas – fail-safes a nível de hardware
  • Racks de servidores – persistência alimentada por bateria e Power Loss Siren (PLS) para dados em memória
  • Armazenamento e Computação – sinalização assíncrona em toda a região via Unavailability Events (UEs)
  • Orquestrador Twine – a camada de orquestração de contêineres que coordena milhões de serviços

Essas capacidades já eram testadas em domínios de falha únicos (um único rack, um único prédio). Mas uma região inteira? Isso é 50–60x maior. Foi aí que os verdadeiros problemas começaram.

Meta data center server racks with power backup systems for disaster readiness Programming Illustration

O Pesadelo da Dependência Circular (Ouroboros)

Quando você desliga uma região inteira e tenta religá-la, enfrenta um problema de ovo e galinha: o orquestrador precisa iniciar seus próprios serviços de plano de controle antes de iniciar qualquer outra coisa. Mas esses serviços de plano de controle dependem do próprio orquestrador.

# Ilustração simplificada do risco de dependência circular durante bootstrapping
# NÃO é o código real da Meta, mas demonstra o conceito

class TwineOrchestrator:
    def __init__(self):
        self.scheduler = None
        self.allocator = None
        self.broker = None
        self.zelos = None  # coordenador

    def bootstrap_region(self):
        # Problema: Scheduler precisa de Allocator, Allocator precisa de Broker,
        # Broker precisa de Scheduler -> circular!
        # Sem uma ordem de inicialização resolvida, nada inicia.
        if not self.scheduler or not self.allocator:
            raise RuntimeError("Dependência circular detectada: não é possível fazer bootstrap")
        # ... prosseguir com a inicialização dos serviços

A Meta resolveu isso com uma abordagem de dois caminhos:

  1. Testes Belljar nos pipelines de CI/CD – detectam e eliminam continuamente riscos de dependência antes de irem para produção.
  2. Twine Recovery Kit (Twrko) – uma capacidade de "jumpstart" construída especificamente para quebrar quaisquer dependências circulares que passem.

Juntos, Belljar + Twrko colocaram o ouroboros para descansar.

O Problema do Bumerangue

Um problema mais sutil: os Unavailability Events (UEs) usados para orquestrar desligamento e recuperação de serviços estavam desligando os próprios serviços do plano de controle do orquestrador. Resultado? Serviços órfãos que nunca recebiam um UE — ficavam pendurados, inalcançáveis.

# Configuração ilustrando a solução:
# Serviços do plano de controle ignoram UEs relacionados a energia
services:
  - name: scheduler
    ignore_power_ues: true  # evita autodesligamento
  - name: allocator
    ignore_power_ues: true
  - name: broker
    ignore_power_ues: true

Simples, sustentável e eficaz.

Network topology diagram showing region-level fault tolerance and bootstrapping Technical Structure Concept

Tradeoffs: Confiabilidade vs. Velocidade

Você poderia construir tolerância à prova d'água para perda instantânea de energia. Mas a que custo? Engenharia excessiva introduz seus próprios riscos — falsos positivos, velocidade de infraestrutura mais lenta e custos de oportunidade.

Requisitos obrigatórios (devem ser evitados):

RequisitoPor que é inegociável
Perda de dados de sistemas de armazenamento/bancos de dadosPerda permanente de dados = inaceitável
Danos permanentes às instalações do DCCustos de substituição de hardware + downtime
Impacto sustentado além de uma única regiãoFalhas em cascata = outage global

Riscos toleráveis:

  • Erros de serviço transitórios (dentro do limite)
  • Falhas de rack (abaixo de limites predefinidos)
  • Obsolescência limitada em tabelas de roteamento de serviço
  • Obsolescência limitada na detecção de indisponibilidade de região (sistemas assíncronos têm latência inerente)

O insight chave: apenas problemas que não podem ser mitigados por remediação pós-incidente dentro de um MTTR razoável ficam fora do limite de impacto tolerável.

Validação: O Teste Real

Você não pode apenas simular isso. A Meta teve que desenergizar uma região de produção grande. Para resolver o problema de ovo e galinha de precisar correr risco para lidar com risco, eles usaram uma abordagem incremental:

  1. Regiões sombra – replicam a produção sem tocar no tráfego ao vivo
  2. Regiões de produção novas/pequenas – raio de explosão limitado
  3. Grandes regiões de produção – abrigando cargas de trabalho críticas de armazenamento, IA e data warehouse

Em cada etapa, eles injetaram uma falha de alimentação elétrica causando desenergização imediata. Sem ações preventivas. Surpresa verdadeira.

Limitações e Cuidados

  • Não é bala de prata: Este paradigma é específico para DCs hyperscale com arquiteturas de energia redundantes. Implantações de pequena escala podem não se beneficiar.
  • Custo: Construir persistência alimentada por bateria, sinalização em toda a região e ferramentas de recuperação é caro. Só se justifica para infraestrutura crítica.
  • Risco de falsos positivos: Engenharia excessiva de tolerância pode introduzir bugs em operações regulares.
  • Limites de sinalização assíncrona: A detecção de indisponibilidade de região é inerentemente limitada pela latência da rede.

Próximos Passos: Aprendizado e Escala

A Meta está agora adotando a mesma estratégia incremental para validar regiões com tráfego de cliente ao vivo contra falhas instantâneas. Eles também estão revisando continuamente os tradeoffs à medida que as cargas de trabalho de IA e as demandas de capacidade crescem.

Para engenheiros trabalhando com sistemas distribuídos, a lição central é universal: confiabilidade e velocidade são dois lados da mesma moeda. Você não pode ter um sem o outro.

Leitura Recomendada

Cloud infrastructure resilience strategy for zero-notice power loss scenarios Coding Session Visual

Conclusão: Devagar é Suave. Suave é Rápido.

O Instantaneous PowerLoss Storm da Meta não é apenas um framework de teste — é uma filosofia. Ao aceitar que falhas acontecerão sem aviso e construir tolerância desde o início, eles criaram uma infraestrutura que pode se recuperar do impensável.

Para seus próprios sistemas: comece pequeno. Teste domínios de falha únicos. Depois escale. Os princípios de defesa em profundidade, análise de dependência e validação incremental se aplicam quer você esteja executando 10 servidores ou 10.000.

Mensagem principal: A capacidade de se recuperar de falhas instantâneas não é um luxo. É uma base para a inovação.

Este conteúdo foi elaborado com o auxílio de ferramentas de IA, com base em fontes confiáveis, e revisado pela nossa equipe editorial antes da publicação. Não substitui o aconselhamento de um profissional especializado.