A Netflix desenvolveu o CloudStream, um framework que agiliza a transferência de grandes volumes de dados de sistemas offline para online, resultando em deploys 99% mais rápidos e economia de 70% nos custos de infraestrutura. A chave está em uma arquitetura modular de captura, conversão e implantação, apoiada em abstrações de banco de dados e no uso inteligente de formatos como RocksDB SSTables.
- Confiança como moeda: segurança, observabilidade e validação orientaram cada decisão técnica.
- Abstração é um superpoder: a camada key-value isolou aplicações de mudanças disruptivas no banco de dados.
- Padrões de acesso destravam inovação: tratar dados imutáveis como arquivos offline eliminou contenção e reduziu custos.
- Prova de conceito vale mais que 100 reuniões: POCs e Pathfinders converteram céticos e aceleraram a adoção.
- Framework CCD: captura, conversão e implantação modularizam o pipeline e permitem rollbacks instantâneos.
O desafio de mover terabytes em minutos
Times de ML e recomendações da Netflix geravam datasets offline várias vezes ao dia. A abordagem tradicional usava jobs Spark para inserir registros individualmente no Cassandra. Isso causava contenção, degradava a performance das aplicações online e levava dias para concluir cargas de terabytes, mesmo com clusters caríssimos. A lentidão impedia a evolução rápida dos modelos e comprometia a acurácia dos dados.
Era um problema crítico de negócio. Para resolvê-lo, a plataforma de dados adotou uma filosofia: confiança é moeda. Toda solução precisava garantir segurança, observabilidade e validação. Essa mentalidade guiou a arquitetura que veremos a seguir.
Leia também: como planejar uma migração de dados em larga escala sem downtime.
Abstração como fundação: a camada key-value da Netflix
As aplicações na Netflix não acessam bancos de dados diretamente. Uma camada de indireção chamada abstrações isola os times de detalhes tecnológicos, provisionamento e mudanças de protocolo. Hoje, apenas 16% dos clusters Cassandra são acessados diretamente; o restante passa por abstrações que processam cerca de 70 milhões de QPS.
Entre elas, a abstração key-value (KV) funciona como um HashMap distribuído: uma chave externa (ID) mapeia para um mapa ordenado de pares chave-valor (itens). Servidores stateless conectam-se ao plano de controle, obtêm namespaces e executam consultas em nome dos clientes. Recursos como chunking, hedging baseado em SLO e caching local tornam a operação transparente para as aplicações.
A adoção em massa da KV surgiu de uma crise: o Cassandra anunciou a descontinuação do protocolo Thrift. Em vez de cada time migrar seu código, a Plataforma de Dados convenceu a maioria a migrar uma única vez para a interface KV, prometendo que futuras mudanças seriam absorvidas pela abstração. A migração inicial focou na API, sem mover dados, permitindo testes imediatos e rollback fácil – um processo de porta de duas vias que gerou confiança.
Entenda mais sobre abstrações: por que times de engenharia estão adotando camadas de abstração sobre bancos de dados.
CloudStream: arquitetura para dados offline-para-online
Ao analisar os dashboards dos times, a equipe identificou dois padrões de acesso: mutável (aplicações leem e escrevem, e o job batch complementa dados) e imutável (somente leitura após carga). O segundo caso, comum em sinais de ads, rankings e embeddings, não precisava de consenso do Cassandra. Bastava servir arquivos otimizados para leitura.
Assim nasceu a ideia do CloudStream: gerar datasets offline como RocksDB SSTables, armazená-los no S3 e carregá-los diretamente em nós KV dedicados, sem passar pelo Cassandra. Isso removeu a contenção do caminho online e permitiu carga à velocidade máxima de rede e disco. O framework foi desenhado em três fases desacopladas: captura, conversão e implantação.
Para provar o conceito, um POC funcional convenceu os céticos. Ele implementava a API KV sobre nós que hospedavam os arquivos RocksDB, com um coordenador de roteamento. O POC foi tão rápido e barato que se tornou a base do primeiro Pathfinder.
Conheça os formatos de armazenamento: RocksDB vs Cassandra, quando usar cada um para dados imutáveis.
Pathfinders: acelerando a produção com protótipos estratégicos
Um Pathfinder é um software que você intencionalmente planeja substituir. Ele desbloqueia casos de negócio críticos para stakeholders dispostos a assumir algum risco, enquanto permite ao time de plataforma descobrir incógnitas desconhecidas. No caso da Netflix, um time com prazo urgente topou adotar o POC como Pathfinder.
O cliente high-level da KV foi estendido com um feature flag que permitia chavear entre o backend tradicional, o Pathfinder e a futura implementação de produção. Assim, o time de aplicação não precisou alterar código quando o produto final ficou pronto. O Pathfinder operou em produção por meses, validando benchmarks de latência, throughput e tempo de deploy (27 minutos no POC, 40 minutos na versão final, ainda muito abaixo dos dias anteriores).
Essa estratégia simbiótica gerou aprendizado real e pavimentou a evolução da arquitetura KV de stateless para stateful.
De stateless para stateful: a transformação do key-value
Nos servidores KV tradicionais, todas as instâncias são iguais: recebem uma requisição, consultam o banco e respondem. Para o CloudStream, cada nó precisava hospedar um subconjunto específico de dados, tornando-se stateful. Isso exigiu novos componentes de controle: Partition Group Manager (leases exclusivos), Central Routing Manager (mapeamento de partições) e Cluster Routing Layer (cache de roteamento).
O pipeline de deploy também foi estendido para suportar implantações de dados. Agora, após a captura e conversão, os arquivos são carregados no S3. Um novo conjunto de nós é provisionado, cada um baixa sua partição específica e faz bootstrap. Antes de promover para produção, uma fase de staging permite que os times validem o dataset com um aplicativo validador, simulando tráfego real e comparando resultados. Só após a validação bem-sucedida o roteamento é atualizado, drenando o tráfego do dataset antigo para o novo em segundos. O antigo permanece ativo para rollback instantâneo até que a confiança seja plena.
Esse processo eliminou o “efeito dente de serra”, em que a versão antiga e a nova coexistiam por horas, dificultando a detecção de problemas.
Generalizando a arquitetura: captura, conversão, implantação (CCD)
O sucesso do CloudStream permitiu formalizar o framework captura, conversão e implantação (CCD), um padrão modular e repetível. Captura cria um artefato imutável do dataset no S3, representando o estado exato no momento da captura. Conversão transforma o artefato em um formato otimizado para o target (RocksDB SSTables, Cassandra SSTables em testes). Implantação orquestra a transferência dos artefatos para os nós de dados, provisiona infraestrutura, carrega os arquivos e gerencia a troca de tráfego de forma determinística.
Por ser desacoplado, equipes de movimento de dados, KV e UX podem trabalhar em paralelo. Além disso, os artefatos versionados tornam trivial o rollback para qualquer versão anterior, uma capacidade que antes não existia.
Resultados: redução de 99% no tempo e 70% nos custos
Um caso concreto: o maior cliente da plataforma, que precisava evoluir datasets várias vezes ao dia, viu o tempo de deploy cair de dias para 40 minutos, com economia de custos na casa dos 70%. Outro time conseguiu reduzir cargas para menos de 10 minutos e alcançar 90% de economia operacional. Um terceiro construiu uma plataforma de ML que agora atende dezenas de times, provando que o CloudStream é um acelerador de inovação.
O futuro: dados mutáveis e migração entre datastores
O próximo passo é estender o CCD para datasets mutáveis. A fase de captura permanece igual, mas a conversão agora gera Cassandra SSTables (usando o Apache Cassandra Analytics). O deploy insere esses arquivos em um cluster Cassandra ativo, com orquestração que gerencia compactação e resolução de conflitos. O time já tem um protótipo funcional e está realizando testes intensivos.
Além disso, a capacidade de ler e escrever SSTables abre portas para migrações entre datastores sem downtime. Por exemplo, migrar do Cassandra para o DynamoDB se as relações custo/performance assim indicarem. Tudo isso protegido pela camada de abstrações, sem que as aplicações precisem de qualquer alteração.
Lições para times de engenharia
Confiança é a moeda: segurança, observabilidade e validação são os pilares que sustentam qualquer mudança arquitetural de grande escala.
Abstrações criam superpoderes: invista em camadas de indireção para isolar aplicações e viabilizar migrações transparentes.
Padrões de acesso são fontes de inovação: entenda profundamente como os dados são lidos e escritos; a imutabilidade pode simplificar drasticamente a arquitetura.
POCs e Pathfinders desbloqueiam o impossível: um protótipo rápido convence céticos e gera aprendizado real antes do produto final.
O framework CCD é replicável: modularize o pipeline de dados em captura, conversão e implantação para ganhar flexibilidade, velocidade e capacidade de rollback.
| Métrica | Abordagem Tradicional | CloudStream |
|---|---|---|
| Tempo de implantação | Dias | < 40 minutos |
| Custo de infraestrutura | Milhões de dólares/ano | 70% menor |
| Rollback | Lento, baseado em logs | Instantâneo (troca de nós) |
| Impacto no online | Alto (contenção, vizinho ruidoso) | Desacoplado, sem contenção |
| Validação pré-produção | Inexistente ou ad-hoc | Fase de staging dedicada |
Arraste para o lado para ver toda a tabela.
Perguntas Frequentes (FAQ)
O que é o CloudStream da Netflix?
É um framework interno da Netflix para mover grandes volumes de dados de sistemas offline (data warehouse) para sistemas online (serviços de produção). Ele utiliza um padrão de captura, conversão e implantação que reduz drasticamente o tempo e o custo de atualização de datasets.
Como funciona a abstração key-value da Netflix?
A abstração KV oferece uma interface de HashMap distribuído: uma chave externa mapeia para um mapa ordenado de pares chave-valor. Ela isola as aplicações dos detalhes do banco de dados, gerencia chunking, caching e balanceamento de carga, e permite trocar a tecnologia subjacente (Cassandra, DynamoDB, etc.) sem impacto para o desenvolvedor.
O que são Pathfinders e como aceleraram a implantação?
Pathfinders são versões intencionalmente temporárias de um software, usadas para aprender com um stakeholder disposto a assumir riscos. Eles permitem colocar uma solução em produção rapidamente, coletar métricas reais e refinar a arquitetura definitiva sem comprometer prazos de negócio.
Quais foram os principais benefícios da nova arquitetura?
Redução de 99% no tempo de implantação (de dias para menos de 40 minutos), corte de 70% nos custos de infraestrutura, eliminação da contenção entre cargas batch e tráfego online, rollback instantâneo e validação pré-produção dedicada.
Como a Netflix aplica o padrão captura, conversão e implantação?
O padrão CCD separa o pipeline em três estágios desacoplados: captura cria um artefato imutável no S3; conversão transforma o artefato em formato otimizado (RocksDB SSTables, por exemplo); implantação gerencia o provisionamento de nós, carga dos arquivos e troca de tráfego. Isso permite que times diferentes trabalhem em paralelo e facilita rollbacks determinísticos.