A evolução da infraestrutura de dados da Uber

 


uber-capa.png

Veja o desafio da companhia para construir uma área de trabalho onde 4.000 cientistas de dados e profissionais não-técnicos podem trabalhar em conjunto se beneficiando de aplicações de dados.

 

Milhões de viagens acontecem todos os dias com a Uber, em cerca de 70 países, gerando informações sobre o tráfego, rotas preferenciais, horários estimados de chegada e destino, locais de destino e muito mais. A quantidade de dados que a infraestrutura tecnológica da companhia precisa lidar é gigantesca.

No blog de engenharia da empresa, os colaboradores compartilharam a evolução da área de Data Science nos últimos quatro anos a partir do que chamam de Data Science Workbench (DSW) – uma caixa de ferramentas personalizada para ciência de dados, análises geoespaciais complexas e aprendizado de máquina exploratório. Ali se centraliza tudo o que é necessário para realizar a preparação de dados, análises ad-hoc, prototipagem de modelo, agendamento de fluxo de trabalho, painéis, trabalhos em conjunto e tudo mais.

Desde o lançamento desse Workbench em 2017, muita coisa evoluiu. Atualmente, são 4.000 usuários ativos todos os dias, utilizando os dados para aplicações cada vez mais complexas, como preços, segurança, detecção de fraude e suporte ao cliente, entre outros elementos da experiência de viagem. 

Um ponto que chamou a atenção da equipe foi que não apenas cientistas e engenheiros de dados passaram a utilizar as ferramentas, mas também analistas e gerentes de operações aproveitam para resolver desafios específicos de suas funções mais ligadas a negócios. Inclusive, há um mapa das personas que utilizam as aplicações e serve como um bom benchmark para empresas que desejam seguir pelo mesmo caminho da democratização dos dados:


As várias personas de usuário que utilizam o Data Science Workbench na Uber

Com esse movimento de cada vez mais profissionais acessando as plataformas para se beneficiar dos dados e muitos não tendo habilidades técnicas, foi necessário repensar a estrutura para tornar o ambiente mais fácil de interagir, capaz de executar ações mais confiáveis e também ser escalável para suportar um número crescente de tarefas e usuários.

Abaixo, listamos alguns procedimentos técnicos para dar conta de tudo isso:

  • O uso do Peloton, para separar os usuários por diferentes grupos. Assim, cada usuário trabalha em um ambiente próprio, por meio de uma sessão completamente isolada.]

  • Utilização de Apache Spark, peça fundamental da infraestrutura de dados, que  permite que os usuários criem aplicações e as executem sempre que necessário. De um ponto de vista bem operacional, inicialmente a ferramenta estava instalada no notebook de cada profissional, mas ao migrar o sistema para o USCS, uma solução em nuvem, houve grande ganho de agilidade, escalabilidade e tornou tudo mais fácil de gerenciar.

  • O desenvolvimento de integrações que permitem exportar trabalhos do DSW para serem executados nas outras ferramentas de dados utilizadas, como Piper e Michelangelo – MLE – a plataforma de Machine Learning da Uber.


Gráfico de arquitetura do pacote DSW

Essas e outras ações de infraestrutura ajudam a equipe de dados a cumprir os objetivos da companhia – como ter uma plataforma atendendo clientes 24 horas por dia, 7 dias por semana, 365 dias por ano, em todo o mundo, com pelo menos 99,99% de disponibilidade.

Além dos objetivos principais com a adoção do DSW, algumas descobertas durante esse processo levaram a equipe da Uber a três conclusões principais:

Construir para os especialistas, projetar para o “leigo”

O Data Science Workbench foi inicialmente concebido como uma plataforma para tornar os cientistas de dados mais produtivos, as equipes operacionais também começaram a utilizar as ferramentas avançadas para melhorar seus processos. Isso foi muito positivo, mas esses usuários menos técnicos precisavam mais de ajuda para conseguir se virar. Ao mesmo tempo, os cientistas de dados tiveram ganhos de produtividade no processo de prototipagem de Machine Learning, mas lutavam com a mudança de contexto necessária ao produzir os modelos. Foi algo que surgiu no meio do caminho. E o que fazer então? Parar tudo ou abandonar a iniciativa? A solução foi investir em PyML e uma integração mais estreita com Michelangelo, a plataforma da Uber para produção de ML.

 

Não parar de construir o que é conhecido; capacitar as pessoas a procurarem o desconhecido 

Ao construir o Data Science Workbench, foi realizada uma extensa pesquisa de usuários e processos para garantir que os recursos fossem direcionados de forma inteligente para projetar uma plataforma que atendesse à maioria das necessidades dos usuários. Porém, também foi importante ampliar os esforços de desenvolvimento para buscar caminhos que os usuários não sabiam que poderiam existir. Acompanhando as tendências do setor, a equipe de engenharia da Uber se concentrou em fornecer GPUs aos usuários para dar suporte ao aprendizado profundo. A aposta valeu à pena, segundo eles, porque começaram a ver um número crescente de aplicativos de deep learning impactantes sendo prototipados na plataforma, de maneira que nunca foram previstas nas pesquisas iniciais.

 

Criar comunidades com cientistas de dados e não cientistas de dados

Foi criada a Base de Conhecimento do Data Science Workbench, uma forma de “obter polinização cruzada” e compartilhamento de conhecimento entre diferentes postos de trabalho, sendo cientistas de dados ou não. Isso permitiu à empresa se manter ágil em cima de uma coleção crescente de dados e percepções, empoderando e capacitando os milhares de usuários nas práticas e aprendizados de dados de forma mútua. Já são mais de 3.000 peças de conteúdo publicadas por lá, fortalecendo o que eles chamam de “comunidade de dados” dentro da Uber.



Imagem da arquitetura da Base de Conhecimento, que ajuda os usuários em tempo real durante a utilização das ferramentas de dados.