- Lançado em julho de 2023, o Threads alcançou 100 milhões de cadastros nos primeiros 5 dias
- Uma equipe pequena e ágil de engenharia construiu o Threads com apenas 5 meses de trabalho técnico
- A escalabilidade sem atritos observada durante a entrada de muitos usuários foi resultado de mais de 10 anos de esforços em infraestrutura e desenvolvimento de produtos
- Em vez de uma infraestrutura construída especificamente para o Threads, foram reaproveitadas infraestruturas já existentes e usadas em inúmeros produtos da Meta
- Na prática, foi usada uma quantidade enorme de infraestrutura, mas os destaques são o banco de dados distribuído de chave-valor ZippyDB e a plataforma de funções serverless assíncronas Async
ZippyDB: expansão de keyspace para o Threads
- O ZippyDB é um banco de dados distribuído de chave/valor construído do zero com base na infraestrutura da Meta, e funciona como um serviço totalmente gerenciado sobre o qual engenheiros podem desenvolver
- Os keyspaces hospedados no ZippyDB podem ser escalados para cima e para baixo com relativa facilidade, além de serem distribuídos com flexibilidade entre vários data centers
- Para o armazenamento do grafo social, é usado o TAO (The Associations and Objects), baseado em MySQL
- O ZippyDB funciona como o equivalente em chave/valor ao MySQL, sendo usado para contadores, ranking/estado de feed, busca e outros casos
Otimização do ZippyDB e lançamento do produto
- Com o protocolo de resharding do ZippyDB, é possível aumentar rapidamente o fator de sharding dos casos de uso sem impactar os clientes, mantendo consistência e exatidão completas
- O resharding é feito sem downtime ao provisionar um novo conjunto de shards físicos e instalar, por meio de uma mudança de configuração em tempo real, o novo mapeamento entre shards lógicos e físicos para os clientes
- As operações de resharding foram projetadas para escalar horizontalmente, permitindo acelerar a velocidade de resharding quando necessário, como no lançamento do Threads
- Também foi desenvolvido um conjunto de ferramentas emergenciais para operadores, capazes de lidar com crescimento repentino de casos de uso com facilidade
Async: expansão da execução de workloads para o Threads
- O Async (ou XFaaS) é uma plataforma de funções serverless que reduz o tempo entre a concepção de uma solução e sua implantação em produção
- Hoje, o Async processa trilhões de invocações de funções por dia e oferece suporte a diversas linguagens de programação, como HackLang, Python, Haskell e Erlang
- Ele abstrai detalhes de implantação, enfileiramento, agendamento, escalabilidade, recuperação de desastres e prontidão, permitindo que desenvolvedores foquem na lógica principal de negócio
- O Async é usado principalmente para tarefas que podem ser executadas de alguns segundos a algumas horas depois, sem atrapalhar a experiência do usuário
- No Threads, ele teve papel importante em acelerar a formação de comunidade ao permitir que usuários seguissem no Threads as pessoas que já seguiam no Instagram
- Para atender 100 milhões de usuários em 5 dias, foi necessária uma capacidade de processamento considerável, e o Async absorveu o aumento de carga com elegância, enfileirando tarefas para execução controlada
O encontro entre infraestrutura e cultura
- O rápido desenvolvimento do Threads em apenas 5 meses de trabalho técnico mostra bem a força da infraestrutura e da cultura de engenharia da Meta
- Os produtos da Meta aproveitam uma infraestrutura compartilhada testada ao longo do tempo, permitindo que as equipes de produto se movam rapidamente e ampliem produtos bem-sucedidos com agilidade
- Essa infraestrutura tem alto nível de automação, de modo que, exceto pelo esforço de garantir capacidade em curto prazo, a redistribuição automática de workload, o balanceamento de carga e a escalabilidade acontecem de forma fluida e transparente
- A Meta busca uma cultura de engenharia ágil, em que engenheiros trabalham de forma colaborativa com forte senso de ownership para alcançar com eficiência objetivos comuns em grande escala
3 comentários
Muito foda
Nossa, que útil~