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.

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:
- Testes Belljar nos pipelines de CI/CD – detectam e eliminam continuamente riscos de dependência antes de irem para produção.
- 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.

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):
| Requisito | Por que é inegociável |
|---|---|
| Perda de dados de sistemas de armazenamento/bancos de dados | Perda permanente de dados = inaceitável |
| Danos permanentes às instalações do DC | Custos de substituição de hardware + downtime |
| Impacto sustentado além de uma única região | Falhas 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:
- Regiões sombra – replicam a produção sem tocar no tráfego ao vivo
- Regiões de produção novas/pequenas – raio de explosão limitado
- 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
- Como a Meta depreciou seu fork interno do FFmpeg: um mergulho profundo na colaboração open source em escala
- Unindo IA e Medicina: Claude no Microsoft Foundry desbloqueia capacidades específicas de domínio

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.