Escalando Experimentação com GPUs e Apache Spark na Nuvem
Introdução: O Desafio da Experimentação em Escala
No dinâmico universo dos aplicativos de redes sociais, como o Snapchat, a capacidade de inovar e lançar novas funcionalidades rapidamente é crucial. Para acompanhar o ritmo acelerado de tendências e manter seus mais de 940 milhões de usuários ativos mensais engajados, a Snap, empresa-mãe do Snapchat, adota uma abordagem robusta baseada em experimentação contínua.
Cada nova funcionalidade é submetida a ciclos rigorosos de testes A/B, onde equipes de desenvolvimento avaliam diferentes variáveis com subconjuntos de usuários. Este processo envolve a medição de quase 6.000 métricas, que analisam desde o engajamento e o desempenho do aplicativo até a monetização. Com milhares desses experimentos sendo executados mensalmente, a Snap enfrenta o desafio de processar mais de 10 petabytes de dados em uma janela de três horas todas as manhãs, utilizando o framework distribuído Apache Spark.
A Revolução da Experimentação com GPUs
Para superar os gargalos de processamento de dados e impulsionar a inovação, a Snap fez uma transição estratégica, adotando bibliotecas abertas de processamento de dados da NVIDIA nos serviços do Google Cloud. Esta mudança fundamental de infraestrutura, de CPUs para GPUs, permitiu uma escalabilidade eficiente e um caminho econômico para expandir a experimentação.
- Aceleração com NVIDIA cuDF: A adoção do Apache Spark acelerado por NVIDIA cuDF permitiu à empresa impulsionar suas cargas de trabalho de processamento de dados em GPUs NVIDIA. Essa integração resultou em uma aceleração de 4x no tempo de execução, mantendo o mesmo número de máquinas.
- Integração de Full-Stack: A combinação do software otimizado para GPU da NVIDIA, incluindo as bibliotecas NVIDIA CUDA-X, com os serviços de gerenciamento de infraestrutura do Google, como o Google Kubernetes Engine, forneceu à Snap uma plataforma full-stack para processamento de dados em escala.
- Otimização sem Mudanças de Código: O cuDF permite que os desenvolvedores executem aplicações Apache Spark existentes em GPUs NVIDIA sem alterações de código, facilitando a implantação. Esta biblioteca aproveita o poder do NVIDIA cuDF GPU DataFrame e o escala para o framework de computação distribuída Apache Spark.
Prudhvi Vatala, gerente sênior de engenharia da Snap, ressalta: "A experimentação está no centro de nossa empresa. Mudar nossa infraestrutura de dados de CPUs para GPUs nos permite escalar eficientemente essa experimentação para mais recursos, mais métricas e mais usuários ao longo do tempo. Quanto mais experimentos somos capazes de rodar, mais experiências inovadoras podemos entregar para os usuários do Snapchat."
Escalabilidade Sustentável e Otimização de Custos
A transição para pipelines acelerados por GPU com cuDF não apenas aumentou a velocidade, mas também gerou benefícios financeiros significativos, garantindo uma maneira sustentável de escalar as operações.
- Economia de Custo Substancial: Dados internos da Snap, coletados entre janeiro e fevereiro, revelaram uma economia diária de custos de 76% ao usar GPUs NVIDIA no Google Kubernetes Engine, em comparação com fluxos de trabalho somente com CPU.
- Redução da Projeção de Recursos: Inicialmente, a equipe projetava a necessidade de cerca de 5.500 GPUs rodando concomitantemente para suportar o roadmap ambicioso de escalonamento. Com a otimização em máquinas virtuais G2 do Google Cloud, equipadas com GPUs NVIDIA L4, o número de GPUs necessárias em execução simultânea foi reduzido para apenas 2.100.
- Facilitando a Migração: A suite de microsserviços do cuDF também foi fundamental, qualificando, testando, configurando e otimizando automaticamente as cargas de trabalho Spark para aceleração de GPU em escala, simplificando o processo de migração.
Joshua Sambasivam, engenheiro de backend da equipe de A/B testing, expressou surpresa com os resultados iniciais: "Os resultados dos experimentos iniciais foram bastante surpreendentes — vimos economias de custo muito maiores do que esperávamos. O acelerador Spark é uma combinação perfeita para nossas cargas de trabalho."
Além do A/B Testing: Oportunidades Futuras
A equipe da Snap percebeu que havia descoberto uma "mina de ouro". O impacto positivo da aceleração por GPU no A/B testing os motivou a expandir essa abordagem.
- Expansão para Outras Workloads: Há planos para integrar o acelerador Spark além da equipe de A/B testing, para uma gama mais ampla de cargas de trabalho de produção em toda a empresa.
- Potencial Inexplorado: Embora já tenham migrado seus dois maiores pipelines, o time reconhece que ainda há um vasto campo de oportunidades para aplicar essa tecnologia e colher ainda mais benefícios.
Impacto Prático e Inovação Contínua
A experiência da Snap demonstra de forma contundente o impacto transformador da combinação de GPUs NVIDIA, bibliotecas como cuDF e a infraestrutura de nuvem do Google Cloud. Esta sinergia tecnológica não apenas resolveu desafios de escala e custo no processamento de dados para A/B testing, mas também abriu caminho para uma inovação mais rápida e sustentável. Ao otimizar suas operações de experimentação, a Snap pode entregar recursos de ponta aos seus usuários com maior agilidade e eficiência, solidificando sua posição como líder em plataformas de mídia social.
Aguardando Login...