39
Como garantimos qualidade de dados de Tracking sem perder agilidade The Developer's Conference BH 2019

The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

  • Upload
    others

  • View
    30

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Como garantimos qualidade de dados de Tracking sem perder agilidadeThe Developer's Conference BH 2019

Page 2: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Beatriz VazData Product Manager @ OLX

Tiago MontalvãoBig Data Developer @ OLX

Page 3: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

A OLX é o maior site de compras e vendas do Brasil

600Kbrasileiros

anunciam pela primeira vez todos

os meses

+2Mde vendas por meio da plataformas por mês, com mais de

50 vendas por minuto

27%das vendas são realizadas em

menos de 24 horas

Page 4: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Grande número de usuários ativos gera um grande volume de dados

Page 5: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

+ 600TB de dados armazenados no Data Lake

+ 3000 queries realizadas por dia, gerando um consumo na ordem de 1PB por dia

+ 800M de eventos comportamentais gerados por dia

Page 6: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Estratégia user centricCultura data

informed

Incentivo a entregas ágeis

Cultura de experimentação

Dados são fundamentais para a OLX

Page 7: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Dados nos ajudam a conhecer melhor nossos

usuários e medir seus comportamentos

Page 8: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

TRACKERFerramenta de coleta de dados estatísticos sobre tráfego de usuário, nos permitindo entender melhor quem fez o quê em nossas plataformas

Page 9: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Algumas ferramentas do mercado

Page 10: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Ferramentas adotadas na OLX

Page 11: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Ferramenta desenvolvida pela OLX

Maior flexibilidade na implementação de novas tags

Maior controle dos dados capturados

Integrado com plataforma de experimentação

Melhor custo benefício para nosso volume de dados

LURKER

Page 12: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Arquitetura do LURKER

Page 13: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

web

iOS

Android

msite

lurker-js

lurker-js

iOS Lib

Android Lib

Load Balancer

Elastic Beanstalk

Auto Scaling group

Lurker Web Server

Kinesis Streamlurker_raw

Backup

Usuários da OLX

Page 14: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Kinesis Streamlurker_raw

Auto Scaling group

Kinesis Firehoses

DynamoDB

WEB

S3 (CSV)

APP

Near Real Time Kinesis Streams

LurkerETL

LURKER_NRT

WEB

APP

Slack Bot (interface)

Load Balancer

Elastic Beanstalk

TrackingCentral

Page 15: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

S3 (CSV) Data Lake - S3 (ORC)EMRApache Spark

Page 16: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Maior liberdade e agilidade

Como funcionava Tracking na OLX

Cada squad dono do próprio tracking

Cadastro de eventos constantemente desatualizado

Menor governança

Page 17: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Eventos do Lurker em produção não estavam documentados corretamente

70%

Page 18: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Problemas na qualidade de dados eram descobertos até meses depois, gerando perda de informação

Page 19: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Criamos um squad dedicado para garantir a eficiência e governança de tracking

Page 20: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Proposta 1: Proposta 2:Centralizar implementação em Tracking

Tracking pode virar gargalo e perder agilidade

Squads têm liberdade de escolher as tecnologias que querem implementar

Tracking oferece ferramentas que garantam a governança dos dados

Reforçar uma cultura de dados na OLX, mudança de mindset

Page 21: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Proposta 1: Proposta 2:Centralizar implementação em Tracking

Tracking pode virar gargalo e perder agilidade

Squads têm liberdade de escolher as tecnologias que querem implementar

Tracking oferece ferramentas que garantam a governança dos dados

Reforçar uma cultura de dados na OLX, mudança de mindset

Page 22: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Maior liberdade

Hoje, como funciona Tracking na OLX

Cada squad dono do próprio tracking

Time de Tracking responsável pela visão geral

Mais governança de dados de Tracking

Page 23: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

FERRAMENTAS DE GOVERNANÇA DE TRACKING

Page 24: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Solução #1Tracking Central

Page 25: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Governança dos dados de tracking● Documentação dinâmica por meio da validação

de eventos cadastrados● Autenticação via LDAP● Histórico de criação/edição

Informação do responsável por cada evento

Dashboards de monitoramento por evento

Tracking Central

Page 26: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking
Page 27: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking
Page 28: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Kinesis Streamlurker_raw

Auto Scaling group

Kinesis Firehoses

DynamoDB

WEB

S3 (CSV)

APP

Near Real Time Kinesis Streams

LurkerETL

LURKER_NRT

WEB

APP

Slack Bot (interface)

Load Balancer

Elastic Beanstalk

TrackingCentral

Page 29: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Kinesis Streamlurker_raw

Auto Scaling group

Kinesis Firehoses

DynamoDB

WEB

S3 (CSV)

APP

Slack Bot (interface)

LurkerETL

Load Balancer

Elastic Beanstalk

TrackingCentral

REJECTED

Page 30: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Números do Tracking Central

~40usuários distintos

acessando o Tracking Central semanalmente

(WAU)

+2Keventos cadastrados

no TC referente a todas plataformas da

OLX, incluindo produtos internos

10Meventos rejeitados

diariamente

Page 31: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Solução #2Detecção de

anomalias (WIP)

Page 32: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

EXEMPLO DE ANOMALIA

Anomalias em dados temporais

Page 33: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Serviço de detecção de anomalias em séries temporais

Uso genérico em séries com componente de sazonalidade:

● eventos de tracking● uso de CPU/RAM de instâncias na nuvem● acompanhamento de métricas da empresa etc.

Biblioteca utilizada: Facebook Prophet para Python

Detecção de anomalias

Page 34: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Detector de anomalias

TrackingCentral

Serviço Y

Serviço X

Page 35: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Solução #3ÍNDICE DE

QUALIDADE DE DADOS

(Próximos passos)

Page 36: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

IQD

Conhecemos os times responsáveis pela qualidade de cada Tracking

Conseguimos calcular o período de tempo que o dado foi afetado, chegando a um uptime de qualidade de dados

Quando uma anomalia for detectada, abrimos um chamado para o time responsável corrigir o problema

Page 37: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

RESUMINDO...

Page 38: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

Tracking Central nos oferece uma documentação viva e sempre completa, sem perder agilidade

Detecção de anomalias nos garante a qualidade dos dados de tracking para tomadas de decisão

Índice de Qualidade de Dados fortalecerá a cultura de qualidade de dados nos diferentes squads, mudando o mindset de tech OLX

Lurker coleta mais de 1M de eventos de dados de comportamento por minuto

Page 39: The Developer's Conference BH 2019Secure Site ...Slack Bot (interface) Load Balancer Elastic Beanstalk Tracking Central. S3 (CSV) Data Lake - S3EMR (ORC) ... como funciona Tracking

[email protected] | LinkedIn: [email protected] | LinkedIn: tiagomontalvao