QConSP 2014 SambaTech Analytics: Arquiteturas e tecnologias por trás da análise de vídeos online...
-
Upload
lidio-ramalho -
Category
Data & Analytics
-
view
431 -
download
0
description
Transcript of QConSP 2014 SambaTech Analytics: Arquiteturas e tecnologias por trás da análise de vídeos online...
Agenda
• Intro • Migrando de relatório para uma solução de BI • Under the Hood • Operação e Lições aprendidas
FALAR da SAMBA
FALAR da SAMBA
HACKWEEKS
Reporting
Analytics&
No Início - Report
Fornecer informações de usoEstatísticas e dados gerais
• Número de Visualizações • Número de Visualizações Completas • Retenção por quartil • Tráfego • Número de Uploads, etc…
No Início - Report
No Início - Report
+ Dados
!
• Problema: Custo Elevado • Apresentava bom desempenho
• Problema: Instabilidade, interações entre aplicações • Aplicações com perfis muito diferentes convivendo num
mesmo cluster. • Crescimento expressivo no volume de dados e requisições
• Problema: crescimento acelerado da base, administração do banco.
No Início - Então decidimos coletar mais dados - Java, Python e Mysql
T1
O Problema mudou?
Rever os objetivos
O problema mudou?
FEYNMAN PROBLEM-SOLVING ALGORITHM
Murray Gell-Mann
“
“ http://drtomcrick.com/2011/04/26/feynman-problem-solving-algorithm/
Feynman
FEYNMAN PROBLEM-SOLVING ALGORITHM1. Write down the problem.
Murray Gell-Mann
“
“ http://drtomcrick.com/2011/04/26/feynman-problem-solving-algorithm/
FEYNMAN PROBLEM-SOLVING ALGORITHM1. Write down the problem. 2. Think very hard.
Murray Gell-Mann
“
“
FEYNMAN PROBLEM-SOLVING ALGORITHM1. Write down the problem. 2. Think very hard. 3. Write down the answer
Murray Gell-Mann
“
“
De Relatórios Para Analytics
O problema - BI
+Perguntas+ Dados
+ Clientes+Segmentos
O problema - BI
O problema - BI
Dados Vivos Informação
O problema - BI
Dados Vivos Informação
Processamento de dados
+ Perguntas a cada dia
E crescendo ….
Qual minha retenção média?
Qual é o perfil da minha audiência?
De onde é minha audiência?
Qual o melhor horário para publicar um vídeo?
Qual parte do meu vídeo recebeu mais seeks?
Qual é a conversão?
Quais dispositivos estão sendo usados?
Vídeo mais assistido?
Foco na Inovação e construção da solução Somos uma startup
Manter foco na Inovação Flexível SLA Alto Escalável Pagar de acordo com o uso Baixo custo de administração de infra
Objetivos
A visualização dos dados deve ser clara e objetiva.
Objetivos
Design agrega valor!
Analytics geralGe ral
Analytics detalhes de consumo da mediaVI
DEO
Em altaEM
ALTA
Perfil da audiênciaQUEM
Samba facts Dados de volume do analytics
Small Sharp Tools
Filosofia Unix
COLETARData Pipeline
PROCESSAR INFORMAR
Data Pipeline - STTM
Sambatech Tracking Model
COLETOR APIPROCESSADOR
STTM - Solução
Dynamo Amazon SQS
S3Data and Logs
Glacier
COLETOR API
PROCESSADOR
AGREGADOR
SUMARIZADOR
HTTP IN HTTP OUT
EMRData Processing
COLETARData Pipeline
PROCESSAR INFORMAR
Data Pipeline - STTM
INFORMAR
COLETOR
Coleta de dados - STTM
GET sttm.gif http://sttm.sambatech.com.br/collector/__sttm.gif?sttms=12de2304-74f2-80f0-8b8b-909ec4c4f158&sttmu=123a232saa111kkkk3&sttmm=p07,r07,p08,r08,p09,r09,p10,r10&sttmw=pid:310/cat:5219/mid:b1e9b34ce8f6d8e73d5793a80387967d&sttmk=ae810ebc7f0654c4fadc50935adcf5ec&&sttmsg=org:www.mydomain.com.br&sttmm=play
COLETOR
Response
35 Bytes
COLETOR - Objetivos
• Rápido • Escalável • Simples • Confiável • Consistente • Flexível
COLETOR
COLETOR
COLETOR
HTTP IN
Logger
Msg Builder
COLETOR
COLETOR
HTTP IN
Logger
Msg Builder
Amazon SQS
COLETOR
COLETOR
HTTP IN
Logger
Msg Builder
Amazon SQS
S3Data and Logs
Glacier
COLETOR
Amazon SQS
S3Data and Logs
Glacier
COLETOR
HTTP IN
Logger
Msg Builder
GIF
COLETOR
Comunicação
Amazon SQS
• Assincronia e Controle de fluxo • Sem perdas de mensagens • Log de mensagens não processadas. • Escalável sob demanda • Alto SLA • Gerenciado • Custo relativamente Baixo • Não suporta AMQP
COLETARData Pipeline
PROCESSAR INFORMAR
Data Pipeline
INFORMARPROCESSARCOLETAR
PROCESSADOR
Processador
Dynamo Amazon SQS
PROCESSADOR
AGREGADOR
SUMARIZADOR
EMRData Processing
Agregador
Dynamo Amazon SQS
AGREGADOR
Builder
Msg Agreg
Porque Dynamo
• Baixa Latência • Alta performance • Gerenciado • Escalável • Alto SLA • Multi A/Z • Hot Keys Problem
Dynamo
Agregador
Amazon SQS
AGREGADOR
Builder
Msg Agreg
Agregador
Amazon SQS
AGREGADOR
Builder
Msg Agreg
Auto scaling GroupInstances
APP SrvAgregation
Hot Keys Problem
Dynamo
AGREGADOR
Builder
Msg Agreg
Registro
Writ
es0
27.5
55
82.5
110
Time
1 2 3 4 5 6
Write Capacity
Hot Keys Problem
Dynamo
AGREGADOR
Builder
Msg Agreg
Split Keys
Hot Keys Problem
Writ
es0
27.5
55
82.5
110
Time
1 2 3 4 5 6
Write Capacity
Dynamo
AGREGADOR
Builder
Msg Agreg
Split Keys
Hot Keys Problem
Dynamo
AGREGADOR
Builder
Msg Agreg
Split Keys
Tabelas Diarias
Processador
Dynamo Amazon SQS
PROCESSADOR
AGREGADOR
SUMARIZADOR
EMRData Processing
Sumarizador
Dynamo
EMRData Processing
Sumarizador
!
• Escalável • Controle de Custos • Managed • Hadoop como serviço • Map Reduce Engine • Bom gerenciamento de capacidade • Integração com S3 e Dynamo
EMRData Processing
Porque EMR
Diarias
Dynamo EMRData Processing
Sumarizador
Load
Sumarizador
Diarias
Dynamo EMRData Processing
Sumarizador Merge Keys
Sumarizador
6Jobs
Sumarizadas Minutos
Horas
Dynamo EMRData Processing
Sumarizador
Save
Sumarizador
1. Run job 2. Find Bottoleneck 3. Optimize
Sumarizador
Dynamo
EMRData Processing
Sumarizador 4x/diaNetwork
Sumarizador
Dynamo
EMRData Processing
Sumarizador
Alive Cluster
4x/dia
Sumarização hierárquica
Cliente
Projeto Projeto
MediaCategoria
Media Media
• Modelos de Árvore • Child References
Guarda a referência dos filhos
Exemplo: Visualizações de todos os filhos do projeto (categorias): pid:2/*
•Não exige operação em sub-arvores •Eficiente para pais com múltiplos filhos
Conhecer bem o problema e os dados é essencial.
Otimizações locais são eficientes!
COLETARData Pipeline
PROCESSAR INFORMAR
Data Pipeline
INFORMARINFORMARCOLETAR
API
API - Rest
Dynamo
API
CDN
Permanente
Ciclo de vida dos dados
!Minuto, hora ,dias, meses
Dynamo
APIMYSQL Cluster
Analytics - Solução
RECAP
Dynamo Amazon SQS
S3Data and Logs
Glacier
COLETOR API
PROCESSADOR
AGREGADOR
SUMARIZADOR
HTTP IN HTTP OUT
EMRData Processing
Lições aprendidas
As aplicações são focadas, pequenas e conectadas por uma fila ou datastore.
O output de uma é input para a outra.
Manter foco na Inovação Flexível SLA Alto Escalável Pagar de acordo com o uso Baixo custo de administração de infra
Objetivos
Lei de Little
L = λW
L = média de requisições no sistema
λ = média de chegada de requisições
W = Tempo para processar uma requisição (latência)
Cus
to
0
0.25
0.5
0.75
1
Latência (H)
0 1 3 6 12 24
100%
57%46%
40% 38% 37%
Latência vs Custo
Custo estimado Por Requisição
Latência vs Custo
Custo
0
0.25
0.5
0.75
1
Latência(H)
0 1 3 6 12 24
100%
57%
46%40% 38% 37%
Latência vs Custo
Custo estimado Por Requisição
Latência vs Custo
Como manter tudo UP?
Como Manter tudo no ar ?
Como manter tudo UP and Running?
Automatizar tudo!Metric Driven + 2000
Como manter tudo UP and Running?
Automatizar tudo!Metric DrivenMonitoramentos + 400
+ 2000
Como manter tudo UP and Running?
Automatizar tudo!Metric Driven + 2000Monitoramentos + 400Notificações de falha
Monitoramento e alertas
Métricas Monitoramento e Alerta
FAIL FAST
Falhe e se recupere rapidamente!+Proativo-Reativo
!
• Provisionamento automático de Infraestutura • Deploy e Configuração - CloudFormation / Ansible • FailOver
-Erros
FAIL FAST
Cry Babies
Alarmes críticos alertam o time e escalam automaticamente.
• Soluções gerenciadas ajudam a manter o foco no problema, mas podem trazer limitações inesperadas.
• Arquitetura flexíveis ajudam a responder rapidamente a limitações.
!
!!
COnclusão
Evoluções
!
• Realtime • Elastic Search • Aumentar o uso do S3 para RAW Data • DW Solution.(RedShift) • +Análises