Waze Otimiza Tráfego com Memorystore: +1M Leituras/seg

Waze Otimiza Tráfego com Memorystore: +1M Leituras/seg

Nota do Editor: O Waze, parte da Alphabet (empresa controladora do Google), depende de um volume massivo de dados dinâmicos e em tempo real para alimentar suas funcionalidades de navegação. Escalar esses dados para suportar milhões de usuários simultâneos globalmente exigiu uma abordagem inovadora.

A equipe do Waze desenvolveu um Servidor de Sessão centralizado, impulsionado pelo Memorystore for Redis Cluster. Este serviço totalmente gerenciado pela Google Cloud oferece 99.99% de disponibilidade, suporta atualizações parciais e escala facilmente para atender à demanda do Waze de mais de 1 milhão de comandos MGET por segundo com latência de aproximadamente 1ms. Essa arquitetura é a base para a modernização contínua do backend do Waze.

A Essência do Waze: Dados em Tempo Real

A experiência do aplicativo Waze é intrinsecamente ligada a dados em tempo real. Navegação curva a curva, desvios de trânsito e alertas de acidentes dependem de precisão milimétrica. Para manter essa experiência fluida para milhões de sessões simultâneas, é necessária uma infraestrutura robusta e comprovada, capaz de gerenciar um fluxo massivo de dados de sessão do usuário.

Esses dados incluem rotas de navegação ativas, localização do usuário e relatórios de motoristas que evoluem em segundos. As sessões de usuário são objetos complexos que se atualizam frequentemente, gerando um volume extremamente alto de operações de leitura e escrita.

Modernizando a Infraestrutura de Sessão

Anteriormente, os dados de sessão estavam encapsulados em um serviço monolítico, rigidamente acoplado a uma única instância de backend. Isso dificultava a escalabilidade e impedia que outros microsserviços acessassem o estado da sessão em tempo real.

Para modernizar, o Waze precisava de uma solução compartilhada e de baixa latência, capaz de gerenciar essas sessões em tempo real e em escala global. O Memorystore for Redis Cluster tornou isso possível, oferecendo uma solução gerenciada e escalável.

A Escolha Estratégica: Memorystore for Redis Cluster

Ao planejar a transição para um backend baseado em microsserviços, o Waze avaliou opções como Redis Enterprise Cloud, um cluster Redis auto-gerenciado ou a continuação com o Memcached existente via Memorystore. O setup legado com Memcached, embora funcional, carecia de replicação, tipos de dados avançados e capacidades de atualização parcial.

O Memorystore for Redis Cluster apresentou a solução ideal. Sendo um serviço totalmente gerenciado pelo Google Cloud, ele proporciona o desempenho, a escalabilidade e a resiliência necessários para as demandas em tempo real do Waze. Com um SLA de 99.99% e arquitetura clusterizada para escalabilidade horizontal, a decisão foi clara.

A migração do Memcached para o Memorystore for Redis foi realizada com uma abordagem de escrita dupla, garantindo paridade de dados antes do corte para o Redis, sem interrupções para o usuário.

O Novo Motor de Dados do Waze

Com a base estabelecida, o Waze construiu um Servidor de Sessão centralizado, atuando como centro de comando para as sessões ativas de usuários, encapsulando o Memorystore for Redis Cluster. Este serviço se tornou a única fonte de verdade para todas as sessões ativas, eliminando o acoplamento rígido com o servidor monolítico anterior.

O Servidor de Sessão expõe APIs gRPC simples, permitindo que qualquer microsserviço de backend leia ou escreva diretamente no estado da sessão. Isso eliminou a necessidade de afinidade com o cliente, liberou o tráfego de sessão de passar por um único serviço e tornou os dados acessíveis em toda a plataforma.

Desempenho e Resiliência para um Fluxo Contínuo

A arquitetura foi projetada para resiliência e escala desde o início. O clustering e sharding do Redis eliminam pontos únicos de falha, permitindo escalabilidade horizontal conforme a demanda cresce. Replicação e failover automáticos garantem a continuidade das sessões.

O suporte a atualizações parciais no Memorystore for Redis permite modificar campos individuais de um objeto de sessão sem reescrever o registro inteiro. Isso reduz o tráfego de rede, acelera as operações de escrita e torna o sistema mais eficiente, especialmente com sessões que podem atingir vários megabytes.

O Caminho a Seguir

A experiência bem-sucedida com o Memorystore for Redis Cluster em um dos caminhos mais críticos do Waze impulsionou a confiança para utilizá-lo em outros cenários de cache de alto throughput na plataforma. O Servidor de Sessão centralizado e a arquitetura clusterizada do Redis agora são blocos de construção padrão no backend do Waze.

O próximo grande foco é a migração de todo o gerenciamento de sessão legado do servidor RT. Isso permitirá que cada microsserviço tenha acesso independente para atualizar dados de sessão. A equipe também está focada em escalar o Memorystore for Redis Cluster para atender ao crescimento futuro de usuários e otimizá-lo para custo e desempenho.

Conclusão

A jornada do Waze demonstra o poder e a flexibilidade do Memorystore for Redis Cluster, um serviço totalmente gerenciado com alta disponibilidade para cargas de trabalho em tempo real de alta escala. Essa solução permitiu ao Waze manter seu compromisso de oferecer uma experiência de navegação impecável, adaptando-se às crescentes demandas de milhões de usuários em todo o mundo.

Fundamentos de Engenharia de Dados: Projete e Construa Sistemas de Dados Robustos
Recomendado pelo autor

Fundamentos de Engenharia de Dados: Projete e Construa Sistemas de Dados Robustos
* Link de afiliado — o preço pode variar. Ao comprar, você apoia este blog sem custo extra.

SQL Para Análise de Dados: Técnicas Avançadas Para Transformar Dados em Insights
Recomendado pelo autor

SQL Para Análise de Dados: Técnicas Avançadas Para Transformar Dados em Insights
* Link de afiliado — o preço pode variar. Ao comprar, você apoia este blog sem custo extra.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *