Pular para o conteúdo

Arquitetura real · Pleno

iFood: plataforma de recomendação e inferência

Arquitetura real em produção. Pontos centrais: pré-indexação de predições + dados em tempo real, centenas de modelos e alta disponibilidade.

15 min de leitura · Fonte: iFood · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Arquitetura real em produção. Pontos centrais: pré-indexação de predições + dados em tempo real, centenas de modelos e alta disponibilidade. O iFood recebe milhares de acessos simultâneos e, a cada acesso, o aplicativo carrega dezenas de conteúdos, entre restaurantes, pratos, mercados e produtos, para orientar a escolha de quem pede.

01 · CONTEXTO E PROBLEMA

Recomendar na home de um app de delivery

O iFood recebe milhares de acessos simultâneos e, a cada acesso, o aplicativo carrega dezenas de conteúdos, entre restaurantes, pratos, mercados e produtos, para orientar a escolha de quem pede. Os sistemas de recomendação que atendem esse ambiente em tempo real precisam suportar uma carga elevada com alta disponibilidade e resiliência.

O custo é o problema central. Segundo o time, mesmo um modelo simples, como uma fatoração de matriz, pode exigir um grande número de máquinas para servir recomendações em tempo real. Além disso, os clientes mudam de preferência conforme o contexto, como localização e hora do dia, e isso exige esforço extra por modelo e serviço, aumentando o custo. A pergunta do time é como escalar dezenas de modelos diferentes e combiná-los com o contexto do cliente.

A resposta do iFood é pré-indexar as predições de múltiplos modelos, o que permite combiná-las com outras fontes de informação em tempo real.

02 · INGESTÃO

Do candidato à predição guardada

A plataforma é uma arquitetura de microsserviços separados em dois domínios, Ingestão e Servidor. Começamos pela Ingestão, que produz as predições antes de qualquer acesso do cliente.

  1. O pipeline de geração de candidatos filtra o que é relevante e deixa os candidatos em arquivos no S3.

    Diagrama da arquitetura: iFood: ingestão de predições
    CPGeração de candidatosfiltra
    DBArquivos de candidatoscandidatos
    CPPredição em lote (SageMaker)
    DBArquivos de predições
    CPFeature Publisher (Lambda)
    QTópico Kafka
    CPFeature Consumer (Go)
    DBPersonalization Store
  2. Os candidatos são processados por múltiplos modelos no SageMaker, que usa Batch Transform para escalar as predições.

    Diagrama da arquitetura: iFood: ingestão de predições
    CPGeração de candidatos
    DBArquivos de candidatos
    CPPredição em lote (SageMaker)um pipeline por modelo
    DBArquivos de predições
    CPFeature Publisher (Lambda)
    QTópico Kafka
    CPFeature Consumer (Go)
    DBPersonalization Store
  3. A saída das predições é escrita em múltiplos arquivos no S3.

    Diagrama da arquitetura: iFood: ingestão de predições
    CPGeração de candidatos
    DBArquivos de candidatos
    CPPredição em lote (SageMaker)
    DBArquivos de prediçõespredições
    CPFeature Publisher (Lambda)
    QTópico Kafka
    CPFeature Consumer (Go)
    DBPersonalization Store
  4. A criação dos arquivos dispara a função Lambda Feature Publisher, que lê as predições.

    Diagrama da arquitetura: iFood: ingestão de predições
    CPGeração de candidatos
    DBArquivos de candidatos
    CPPredição em lote (SageMaker)
    DBArquivos de predições
    CPFeature Publisher (Lambda)disparado por evento
    QTópico Kafka
    CPFeature Consumer (Go)
    DBPersonalization Store
  5. O Feature Publisher publica as predições em um tópico Kafka.

    Diagrama da arquitetura: iFood: ingestão de predições
    CPGeração de candidatos
    DBArquivos de candidatos
    CPPredição em lote (SageMaker)
    DBArquivos de predições
    CPFeature Publisher (Lambda)
    QTópico Kafkamensagens
    CPFeature Consumer (Go)
    DBPersonalization Store
  6. O Feature Consumer consome o tópico e insere as predições no Personalization Store.

    Diagrama da arquitetura: iFood: ingestão de predições
    CPGeração de candidatos
    DBArquivos de candidatos
    CPPredição em lote (SageMaker)
    DBArquivos de predições
    CPFeature Publisher (Lambda)
    QTópico Kafka
    CPFeature Consumer (Go)consome
    DBPersonalization Storepré-indexadas

Um fluxo prévio de geração de candidatos filtra as entidades relevantes para cada contexto. O mesmo pipeline seleciona os clientes que devem ser atualizados diariamente e um conjunto reduzido de restaurantes para cada um.

Cada modelo tem treino e predição automatizados de forma independente com o SageMaker Pipelines, e o Batch Transform escala as predições. As mensagens passam por um tópico Kafka, uma fila de mensagens que desacopla quem gera as predições de quem as grava.

O consumidor em Go lê dezenas de milhões de mensagens do tópico e grava no Personalization Store, um banco NoSQL que mantém cerca de dezena de bilhões de predições.

03 · SERVIDOR

Ler o que já está pronto e reordenar na hora

O Personalization Store usa um esquema bem particionado para garantir escalabilidade na leitura. É essa leitura que o servidor faz a cada sessão do aplicativo.

  1. O servidor recebe todas as chamadas do aplicativo.

    Diagrama da arquitetura: iFood: servidor de predições
    CLAplicativo
    CPServidor de prediçõesporta de entrada
    DBPersonalization Store
    CPModelos de re-ranking
    CPOutras fontes em tempo real
  2. Para cada usuário, o servidor recupera as predições dos vários modelos guardadas no Personalization Store.

    Diagrama da arquitetura: iFood: servidor de predições
    CLAplicativo
    CPServidor de predições
    DBPersonalization Storepredições guardadas
    CPModelos de re-ranking
    CPOutras fontes em tempo real
  3. A resposta é enriquecida com as predições pré-calculadas e passa por modelos de ordenação aplicados na hora.

    Diagrama da arquitetura: iFood: servidor de predições
    CLAplicativo
    CPServidor de predições
    DBPersonalization Store
    CPModelos de re-rankingre-ranking
    CPOutras fontes em tempo real
  4. A arquitetura permite combinar as predições com outras fontes de informação em tempo real.

    Diagrama da arquitetura: iFood: servidor de predições
    CLAplicativo
    CPServidor de predições
    DBPersonalization Store
    CPModelos de re-ranking
    CPOutras fontes em tempo realcontexto

04 · PLATAFORMA DE ML

Como os modelos chegam à produção

Outro post da AWS, cujo título fala em centenas de modelos, descreve o outro lado do problema. Antes, cientistas de dados criavam modelos em notebooks e os publicavam em serviços, e as equipes de engenharia tinham dificuldade para integrá-los aos sistemas de produção. Para superar isso, o iFood construiu uma plataforma interna de ML.

Nessa plataforma, a ML Go! é responsável por implantar pipelines e endpoints do SageMaker. Veja o caminho do código até a predição.

  1. O fluxo começa com o pipeline de CI/CD da ML Go! enviando os artefatos de código de treino e implantação.

    Diagrama da arquitetura: iFood: plataforma de ML
    CPML Go! CI/CDcódigo do modelo
    CPSageMaker Pipelines
    DBModel Registry
    CPEndpoints de tempo real
    CPJobs de batch transform
    NWML Go! Gateway
  2. Cada modelo disponível para implantação é registrado automaticamente no Model Registry, com versionamento e rastreio.

    Diagrama da arquitetura: iFood: plataforma de ML
    CPML Go! CI/CD
    CPSageMaker Pipelines
    DBModel Registryversões
    CPEndpoints de tempo real
    CPJobs de batch transform
    NWML Go! Gateway
  3. Em casos de predição em lote, o pipeline cria um job de batch transform.

    Diagrama da arquitetura: iFood: plataforma de ML
    CPML Go! CI/CD
    CPSageMaker Pipelines
    DBModel Registry
    CPEndpoints de tempo real
    CPJobs de batch transformlote
    NWML Go! Gateway
  4. Em inferência em tempo real, o pipeline implanta o modelo em um endpoint.

    Diagrama da arquitetura: iFood: plataforma de ML
    CPML Go! CI/CD
    CPSageMaker Pipelines
    DBModel Registry
    CPEndpoints de tempo realtempo real
    CPJobs de batch transform
    NWML Go! Gateway
  5. O Gateway é uma abstração única para conectar com endpoints e jobs do SageMaker.

    Diagrama da arquitetura: iFood: plataforma de ML
    CPML Go! CI/CD
    CPSageMaker Pipelines
    DBModel Registry
    CPEndpoints de tempo real
    CPJobs de batch transform
    NWML Go! Gatewayabstração única
CritérioPredição em loteInferência em tempo real
O que o pipeline criaUm job de batch transform do SageMaker para predições em larga escalaUm endpoint do SageMaker onde o modelo é implantado
Uso descrito no postGerar recomendações ou insights para restaurantes parceirosAplicações voltadas ao cliente, com predições imediatas

Na arquitetura mais recente, a separação de responsabilidades dentro dos endpoints, com o recurso Inference Components, torna a veiculação mais rápida e eficiente.

05 · RESULTADOS E TRADE-OFFS

O que o iFood reporta e o que perguntar

O iFood reporta 6x mais escalabilidade, de 500 para mais de 3000 requisições por segundo. Reporta também economia de cerca de 50% nos custos para servir conteúdos na home, já que a maior parte da informação está pré-indexada, e melhoria de cerca de 10% na conversão das listas.

Perguntas frequentes

O que é iFood: plataforma de recomendação e inferência?

Arquitetura real em produção. Pontos centrais: pré-indexação de predições + dados em tempo real, centenas de modelos e alta disponibilidade.

O que o design de iFood: plataforma de recomendação e inferência cobre?

Ele está organizado nestas seções: Recomendar na home de um app de delivery, Do candidato à predição guardada, Ler o que já está pronto e reordenar na hora, Como os modelos chegam à produção e O que o iFood reporta e o que perguntar.

Quanto tempo leva iFood: plataforma de recomendação e inferência e qual é o nível?

Leva cerca de 15 minutos para ler e tem nível Pleno.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.