Agenda
• Intro
• Migrando de relatório para uma solução de BI
• Under the Hood
• Lições aprendidas
Reporting
Analytics
&
No Início - Report
Fornecerinformaçõesdeuso
Estatísticasedadosgerais
• 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
V1
O Problema mudou?
Reverosobjetivos
Oproblemamudou?
FEYNMANPROBLEM-SOLVINGALGORITHM
Murray Gell-Mann
“
“http://drtomcrick.com/2011/04/26/feynman-problem-solving-algorithm/
Feynman
FEYNMANPROBLEM-SOLVINGALGORITHM
1. Write down the problem.
Murray Gell-Mann
“
“http://drtomcrick.com/2011/04/26/feynman-problem-solving-algorithm/
FEYNMANPROBLEM-SOLVINGALGORITHM
1. Write down the problem.
2. Think very hard.
Murray Gell-Mann
“
“
FEYNMANPROBLEM-SOLVINGALGORITHM
1. Write down the problem.
2. Think very hard.
3. Write down the answer
Murray Gell-Mann
“
“
+Perguntas
+Dados
+Clientes
+Segmentos
O problema - BI
Processamento de dados
FoconaInovaçãoeconstruçãodasolução
Somosumastartup
Manter foco na Inovação
Flexível e Escalonável
SLA Alto
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 geral
Ge
ral
Analytics detalhes de consumo da media
VI
DEO
Em alta
EM
ALTA
Perfil da audiência
QU
EM
Samba facts
Dados de volume do analytics
Small Sharp Tools
Filosofia Unix
COLETAR
Data Pipeline
PROCESSAR INFORMAR
Data Pipeline - STTM
SambatechTrackingModel
COLETOR APIPROCESSADOR
STTM - Solução
DynamoAmazon SQS
S3
Data and Logs
Glacier
COLETOR API
PROCESSADOR
AGREGADOR
SUMARIZADOR
HTTPIN HTTPOUT
EMR
Data Processing
COLETAR
Data 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-909ec4
c4f158&sttmu=123a232saa111kkkk3&stt
mm=p07,r07,p08,r08,p09,r09,p10,r10&stt
mw=pid:310/cat:5219/
mid:b1e9b34ce8f6d8e73d5793a8038796
7d&sttmk=ae810ebc7f0654c4fadc50935
adcf5ec&&sttmsg=org:www.mydomain.co
m.br&sttmm=play
COLETOR
Response
35 Bytes
COLETOR - Objetivos
• Rápido
• Simples e Escalável
• Confiável e Consistente
COLETOR
COLETOR
COLETOR
HTTPIN
Logger
MsgBuilder
COLETOR
COLETOR
HTTPIN
Logger
MsgBuilder
Amazon SQS
COLETOR
COLETOR
HTTPIN
Logger
MsgBuilder
Amazon SQS
S3
Data and Logs
Glacier
COLETOR
Amazon SQS
S3
Data and Logs
Glacier
COLETOR
HTTPIN
Logger
MsgBuilder
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
COLETAR
Data Pipeline
PROCESSAR INFORMAR
Data Pipeline
INFORMARPROCESSARCOLETAR
PROCESSADOR
Processador
DynamoAmazon SQS
PROCESSADOR
AGREGADOR
SUMARIZADOR
EMR
Data Processing
Agregador
DynamoAmazon SQS
AGREGADOR
Builder
MsgAgreg
Porque Dynamo
• Baixa Latência
• Alta performance
• Gerenciado
• Escalável
• Alto SLA
• Multi A/Z
• Hot Keys Problem
Dynamo
Agregador
Amazon SQS
AGREGADOR
Builder
MsgAgreg
Agregador
Amazon SQS
AGREGADOR
Builder
MsgAgreg
Auto scaling Group
Instances
APP Srv
Agregation
Hot Keys Problem
Dynamo
AGREGADOR
Builder
MsgAgreg
Registro
Writes
0
27.5
55
82.5
110
Time
1 2 3 4 5 6
WriteCapacity
Hot Keys Problem
Dynamo
AGREGADOR
Builder
MsgAgreg
SplitKeys
Hot Keys Problem
Writes
0
27.5
55
82.5
110
Time
1 2 3 4 5 6
WriteCapacity
Dynamo
AGREGADOR
Builder
MsgAgreg
SplitKeys
Hot Keys Problem
Dynamo
AGREGADOR
Builder
MsgAgreg
SplitKeys
Tabelas
Diarias
Processador
DynamoAmazon SQS
PROCESSADOR
AGREGADOR
SUMARIZADOR
EMR
Data Processing
Sumarizador
Dynamo
EMR
Data 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
EMR
Data Processing
Porque EMR
Diarias
Dynamo
EMR
Data Processing
Sumarizador
Load
Sumarizador
Diarias
Dynamo
EMR
Data Processing
Sumarizador
MergeKeys
Sumarizador
Jobs
Sumarizadas
Minutos
Horas
Dynamo
EMR
Data Processing
Sumarizador
Save
Sumarizador
1. Run job
2. Find Bottoleneck
3. Optimize
Sumarizador
Dynamo
EMR
Data Processing
Sumarizador x/diaNetwork
Sumarizador
Dynamo
EMR
Data Processing
Sumarizador
Alive Cluster
x/dia
Conhecer bem o problema e os dados é essencial.
Otimizações locais são eficientes!
COLETAR
Data Pipeline
PROCESSAR INFORMAR
Data Pipeline
INFORMARINFORMARCOLETAR
API
API - Rest
Dynamo
API
CDN
Analytics - Solução
RECAP
DynamoAmazon SQS
S3
Data and Logs
Glacier
COLETOR API
PROCESSADOR
AGREGADOR
SUMARIZADOR
HTTPIN HTTPOUT
EMR
Data 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.
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ênciavsCusto
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ênciavsCusto
Manter foco na Inovação
Flexível e Escalonável
SLA Alto
Pagar de acordo com o uso
Baixo custo de administração de infra
Objetivos
• 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.
!
!
!
COn
clu
são
LIDIO RAMALHO, CTO!
LIDIO.RAMALHO@SAMBATECH.COM.BR!
@lidioramalho

Samba Tech Analytics: Arquiteturas e tecnologias por trás da análise de vídeos online em larga escala