Sumarizador - QCon São Paulo

Transcrição

Sumarizador - QCon São Paulo
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 uso
Estatísticas e dados gerais
No Início - Report
•
•
•
•
•
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
+ Dados
No Início - Então decidimos coletar mais dados - Java, Python e Mysql
!
•
•
T1
•
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.
O Problema mudou?
Rever os objetivos
O problema mudou?
“
FEYNMAN PROBLEM-SOLVING ALGORITHM
Murray Gell-Mann
Feynman
http://drtomcrick.com/2011/04/26/feynman-problem-solving-algorithm/
“
“
FEYNMAN PROBLEM-SOLVING ALGORITHM
1. Write down the problem.
Murray Gell-Mann
http://drtomcrick.com/2011/04/26/feynman-problem-solving-algorithm/
“
“
FEYNMAN PROBLEM-SOLVING ALGORITHM
1. Write down the problem.
2. Think very hard.
Murray Gell-Mann
“
“
FEYNMAN PROBLEM-SOLVING ALGORITHM
1. Write down the problem.
2. Think very hard.
3. Write down the answer
Murray Gell-Mann
“
O problema - BI
De Relatórios
Para Analytics
O problema - BI
+ Clientes
+Segmentos
+ Dados
+Perguntas
O problema - BI
Dados
Vivos
Informação
O problema - BI
Dados
Vivos
Informação
Processamento de dados
+ Perguntas a cada dia
Qual minha retenção média?
Vídeo mais assistido?
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?
E crescendo ….
Somos uma startup
Foco na Inovação e construção da solução
Objetivos
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
Design agrega valor!
A visualização dos dados deve ser clara e objetiva.
Ge
ral
Analytics geral
VI
DEO
Analytics detalhes de consumo da media
EM
ALTA
Em alta
QU
EM
Perfil da audiência
Samba facts
Dados de volume do analytics
Filosofia Unix
Small Sharp Tools
Data Pipeline - STTM
Sambatech Tracking Model
COLETAR
PROCESSAR
INFORMAR
Data Pipeline
COLETOR
PROCESSADOR
API
STTM - Solução
HTTP IN
HTTP OUT
COLETOR
API
S3
Data and Logs
PROCESSADOR
AGREGADOR
Amazon SQS
SUMARIZADOR
Glacier
EMR
Data Processing
Dynamo
Data Pipeline - STTM
COLETAR
PROCESSAR
Data Pipeline
COLETOR
INFORMAR
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
Escalável
Simples
Confiável
Consistente
Flexível
COLETOR
COLETOR
HTTP IN
COLETOR
Msg Builder
Logger
COLETOR
HTTP IN
COLETOR
Msg Builder
Logger
Amazon SQS
COLETOR
HTTP IN
COLETOR
Msg Builder
Logger
Glacier
S3
Data and Logs
Amazon SQS
COLETOR
HTTP IN
GIF
COLETOR
Msg Builder
Logger
Glacier
S3
Data and Logs
Amazon SQS
COLETOR
Comunicação
•
•
•
•
•
•
•
•
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
Amazon SQS
Data Pipeline
COLETAR
PROCESSAR
Data Pipeline
PROCESSADOR
INFORMAR
Processador
PROCESSADOR
AGREGADOR
Amazon SQS
SUMARIZADOR
EMR
Data Processing
Dynamo
Agregador
AGREGADOR
Amazon SQS
Builder
Msg Agreg
Dynamo
Porque Dynamo
•
•
•
•
•
•
•
Baixa Latência
Alta performance
Gerenciado
Escalável
Alto SLA
Multi A/Z
Hot Keys Problem
Dynamo
Agregador
AGREGADOR
Amazon SQS
Builder
Msg Agreg
Agregador
AGREGADOR
Amazon SQS
Builder
Msg Agreg
APP Srv
Agregation
Instances
Auto scaling Group
Hot Keys Problem
Write Capacity
110
Builder
Msg Agreg
Registro
82.5
Dynamo
Writes
AGREGADOR
55
27.5
0
1
2
3
4
Time
5
6
Hot Keys Problem
AGREGADOR
Split Keys
Builder
Dynamo
Msg Agreg
Hot Keys Problem
Write Capacity
110
Split Keys
82.5
Writes
AGREGADOR
Builder
55
Dynamo
27.5
Msg Agreg
0
1
2
3
4
Time
5
6
Hot Keys Problem
AGREGADOR
Split Keys
Builder
Dynamo
Msg Agreg
Tabelas
Diarias
Processador
PROCESSADOR
AGREGADOR
Amazon SQS
SUMARIZADOR
EMR
Data Processing
Dynamo
Sumarizador
Sumarizador
Dynamo
EMR
Data Processing
Porque EMR
!
•
•
•
•
•
•
•
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
Sumarizador
Sumarizador
Load
Dynamo
EMR
Data Processing
Diarias
Sumarizador
6Jobs
Sumarizador
Merge Keys
Dynamo
EMR
Data Processing
Diarias
Sumarizador
Sumarizador
Save
Dynamo
EMR
Data Processing
Sumarizadas
Minutos
Horas
Sumarizador
Network
Sumarizador
4x/dia
Dynamo
1. Run job
2. Find Bottoleneck
3. Optimize
EMR
Data Processing
Sumarizador
Alive Cluster
Sumarizador
4x/dia
Dynamo
EMR
Data Processing
Sumarização hierárquica
Cliente
Media
Projeto
Projeto
Categoria
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
Otimizações locais são eficientes!
Conhecer bem o problema e os dados é essencial.
Data Pipeline
COLETAR
PROCESSAR
INFORMAR
Data Pipeline
API
API - Rest
CDN
API
Dynamo
Ciclo de vida dos dados
!
Permanente
MYSQL Cluster
Minuto, hora ,dias, meses
API
Dynamo
Analytics - Solução
RECAP
HTTP IN
HTTP OUT
COLETOR
API
S3
Data and Logs
PROCESSADOR
AGREGADOR
Amazon SQS
SUMARIZADOR
Glacier
EMR
Data Processing
Dynamo
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.
Objetivos
Manter foco na Inovação
Flexível
SLA Alto
Escalável
Pagar de acordo com o uso
Baixo custo de administração de infra
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)
Latência vs Custo
Latência vs Custo
1
100%
Custo estimado
Por Requisição
Custo
0.75
57%
0.5
46%
40%
38%
37%
6
12
24
0.25
0
0
1
3
Latência (H)
Latência vs Custo
Latência vs Custo
1
100%
Custo estimado
Por Requisição
Custo
0.75
57%
0.5
46%
40%
38%
37%
6
12
24
0.25
0
0
1
3
Latência(H)
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 Driven
+ 2000
Monitoramentos + 400
Como manter tudo UP and Running?
Automatizar tudo!
Metric Driven
+ 2000
Monitoramentos + 400
Notificações de falha
Monitoramento e alertas
Métricas
Monitoramento e Alerta
FAIL FAST
Falhe e se recupere rapidamente!
-Reativo
-Erros
+Proativo
!
•
•
•
Provisionamento automático de Infraestutura
Deploy e Configuração - CloudFormation / Ansible
FailOver
FAIL FAST
Cry Babies
Alarmes críticos alertam o time
e escalam automaticamente.
COn
clu
são
•
•
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.
!
!
!
Evoluções
!
•
•
•
•
•
Realtime
Elastic Search
Aumentar o uso do S3 para RAW Data
DW Solution.(RedShift)
+Análises
LIDIO RAMALHO, CTO!
[email protected]!
@lidioramalho

Documentos relacionados