A tecnologia da Retail Rocket

Em 2012, escreveu-se a primeira linha do código da Retail Rocket. Desde então, os engenheiros da Retail Rocket e a equipa de ciência de dados têm mantido a sua paixão por mudar o mundo do comércio eletrónico e torná-lo verdadeiramente personalizado.

Alguns números que descrevem brevemente a Retail Rocket:
• Mais de 80 servidores (principalmente na Alemanha).
• Mais de 100 milhões de utilizadores únicos (cookies únicas) processados por mês.
• Mais de 1000 lojas ligadas à Retail Rocket em todo o mundo.
• Mais de 450000 pedidos API por minuto (em média).
• 45 anos de investimento em desenvolvimento.

Abordagem de ciência de dados

O objetivo do Retail Rocket é identificar as necessidades dos utilizadores da loja online, analisando o seu comportamento e as bases de dados de produtos. A geração de recomendações personalizadas em tempo real requer o uso de variáveis e algoritmos de última geração, que incluem:

 
  • Filtragem de conteúdo.
  • Filtragem colaborativa.
  • Análise preditiva baseada na aprendizgem automática e no modelo de Markov.
  • Estatística de Bayesi.
  • Algoritmos híbridos para personalização em tempo real.

… e muito mais.



 
Roman Zykov, Responsável da Ciência de Dados da Retail Rocket, a falar numa conferência anual RecSys 2016 @ MIT University (Boston)
Atividade na comunidade da Ciência de Dados

A nossa equipa de engenharia é membro ativo da comunidade de Ciência de dados, com diferentes publicações e prémios obtidos em competições de Ciência de dados e com inúmeras apresentações em reconhecidos eventos do setor.

img

 

 

spark
Cluster de análise

Para a aprendizagem automática, usamos a estrutura Spark baseada na plataforma Hadoop Yarn - um sistema de computação em cluster que usa o Scala, uma linguagem de programação funcional. Em relação aos componentes nativos do Hadoop, usamos o Apache Flume para transferência de dados, o Mahout Machine Learning e o Oozie scheduler.

A equipa da Retail Rocket armazena vários projetos interessantes no GitHub:Simple A/B-testing engine in JavaScript, mecanismo simples de teste A / B em JavaScript, biblioteca Spark MultiTool para Scala, cluster de implementação do Hadoop usando Puppet.

 

iis8
Interface

Quase tudo aquilo com que um utilizador interage é processado pelos servidores da Web do IIS, o código está escrito em C #, Asp.Net MVC. Bases de dados que usamos: Redis, MongoDB, PostgreSQL.

Quando precisamos executar as interações entre componentes distribuídos, por exemplo, para o cálculo do segmento do utilizador com base no User-Agent (perfis de público), usamos o Thrift. E para construir o fluxo de dados das lojas online com vários subsistemas usamos o transporte Flume, mencionado acima.

git
Processo de desenvolvimento

Somos defensores de uma metodologia contínua de empresa (Delivery Methodology) para garantir a eficiência com nossos clientes (atualmente trabalhamos com mais de 1000 lojas).

Para o conseguirmos, usamos uma série de tecnologias Git + GitLab + TeamCity com testes unitários automatizados (mais de 1200 no início de 2017), testes de aceitação e procedimentos de revisão de código.