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
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…
N...
No Início - Report
+Dados
!
• Problema: Custo Elevado
• Apresentava bom desempenho
• Problema: Instabilidade, interações entre aplicações
• Aplicaçõ...
O Problema mudou?
Reverosobjetivos
Oproblemamudou?
FEYNMANPROBLEM-SOLVINGALGORITHM
Murray Gell-Mann
“
“http://drtomcrick.com/2011/04/26/feynman-problem-solving-algorithm/
Fe...
FEYNMANPROBLEM-SOLVINGALGORITHM
1. Write down the problem.
Murray Gell-Mann
“
“http://drtomcrick.com/2011/04/26/feynman-pr...
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
“...
DeRelatórios
ParaAnalytics
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
+Perguntasacadadia
Ecrescendo….
Qual minha retenção média?
Qual é o perfil da minha audiência?
De onde é minha audiência?
...
FoconaInovaçãoeconstruçãodasolução
Somosumastartup
Manter foco na Inovação
Flexível
SLA Alto
Escalável
Pagar de acordo com o uso
Baixo custo de administração de infra
Objeti...
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
...
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-909e...
COLETOR - Objetivos
• Rápido
• Escalável
• Simples
• Confiável
• Consistente
• Flexível
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.
• E...
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
•...
Diarias
Dynamo
EMR
Data Processing
Sumarizador
Load
Sumarizador
Diarias
Dynamo
EMR
Data Processing
Sumarizador
MergeKeys
Sumarizador
6Jobs
Sumarizadas
Minutos
Horas
Dynamo
EMR
Data Processing
Sumarizador
Save
Sumarizador
1. Run job
2. Find Bottoleneck
3. Optimize
Sumarizador
Dynamo
EMR
Data Processing
Sumarizador 4x/diaNetwork
Sumarizador
Dynamo
EMR
Data Processing
Sumarizador
Alive Cluster
4x/dia
Sumarização hierárquica
Cliente
Projeto Projeto
MediaCategoria
Media Media
• Modelos de Árvore
• Child References
Guarda a...
•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!
COLETAR
Data Pipeline
PROCESSAR INFORMAR
Data Pipeline
INFORMARINFORMARCOLETAR
API
API - Rest
Dynamo
API
CDN
Permanente
Ciclo de vida dos dados
!
Minuto, hora ,dias, meses
Dynamo
APIMYSQLCluster
Analytics - Solução
RECAP
DynamoAmazon SQS
S3
Data and Logs
Glacier
COLETOR API
PROCESSADOR
AGREGADOR
SUMARIZADOR
HTTPIN HTTPOUT
EMR
Data Proc...
Lições aprendidas
As aplicações são focadas, pequenas e
conectadas por uma fila ou datastore.
O output de uma é input para...
Manter foco na Inovação
Flexível
SLA Alto
Escalável
Pagar de acordo com o uso
Baixo custo de administração de infra
Objeti...
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 re...
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çã...
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...
Como manter tudo UP?
ComoMantertudonoar?
Como manter tudo UP and Running?
Automatizartudo!
Metric Driven + 2000
Como manter tudo UP and Running?
Automatizartudo!
Metric Driven
Monitoramentos + 400
+ 2000
Como manter tudo UP and Running?
Automatizartudo!
Metric Driven + 2000
Monitoramentos + 400
Notificações de falha
Monitoramento e alertas
Métricas MonitoramentoeAlerta
FAILFAST
Falheeserecupererapidamente!
+Proativo-Reativo
!
• Provisionamento automático de Infraestutura
• Deploy e Configu...
FAILFAST
CryBabies
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ívei...
Evoluções
!
• Realtime
• Elastic Search
• Aumentar o uso do S3 para RAW Data
• DW Solution.(RedShift)
• +Análises
LIDIO RAMALHO, CTO!
LIDIO.RAMALHO@SAMBATECH.COM.BR!
@lidioramalho
QConSP 2014 SambaTech Analytics: Arquiteturas e tecnologias por trás da análise de vídeos online em larga escala
QConSP 2014 SambaTech Analytics: Arquiteturas e tecnologias por trás da análise de vídeos online em larga escala
QConSP 2014 SambaTech Analytics: Arquiteturas e tecnologias por trás da análise de vídeos online em larga escala
QConSP 2014 SambaTech Analytics: Arquiteturas e tecnologias por trás da análise de vídeos online em larga escala
QConSP 2014 SambaTech Analytics: Arquiteturas e tecnologias por trás da análise de vídeos online em larga escala
Upcoming SlideShare
Loading in …5
×

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

855 views

Published on

Arquiteturas e tecnologias por trás da análise de vídeos online em larga escala.
Para suportar um grande volume de requisições, a solução foi desenvolvida sobre uma infraestrutura elástica, com provisionamento automático de recursos. A utilização de uma nuvem híbrida permitiu a aplicação obter alto desempenho e disponibilidade.

Published in: Data & Analytics

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

  1. 1. Agenda • Intro • Migrando de relatório para uma solução de BI • Under the Hood • Operação e Lições aprendidas
  2. 2. FALAR da SAMBA
  3. 3. FALAR da SAMBA HACKWEEKS
  4. 4. Reporting Analytics &
  5. 5. No Início - Report Fornecerinformaçõesdeuso Estatísticasedadosgerais
  6. 6. • 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
  7. 7. No Início - Report +Dados
  8. 8. ! • 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
  9. 9. O Problema mudou? Reverosobjetivos Oproblemamudou?
  10. 10. FEYNMANPROBLEM-SOLVINGALGORITHM Murray Gell-Mann “ “http://drtomcrick.com/2011/04/26/feynman-problem-solving-algorithm/ Feynman
  11. 11. FEYNMANPROBLEM-SOLVINGALGORITHM 1. Write down the problem. Murray Gell-Mann “ “http://drtomcrick.com/2011/04/26/feynman-problem-solving-algorithm/
  12. 12. FEYNMANPROBLEM-SOLVINGALGORITHM 1. Write down the problem. 2. Think very hard. Murray Gell-Mann “ “
  13. 13. FEYNMANPROBLEM-SOLVINGALGORITHM 1. Write down the problem. 2. Think very hard. 3. Write down the answer Murray Gell-Mann “ “
  14. 14. DeRelatórios ParaAnalytics O problema - BI
  15. 15. +Perguntas +Dados +Clientes +Segmentos O problema - BI
  16. 16. O problema - BI Dados Vivos Informação
  17. 17. O problema - BI Dados Vivos Informação
  18. 18. Processamento de dados
  19. 19. +Perguntasacadadia Ecrescendo…. 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?
  20. 20. FoconaInovaçãoeconstruçãodasolução Somosumastartup
  21. 21. 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
  22. 22. A visualização dos dados deve ser clara e objetiva. Objetivos Design agrega valor!
  23. 23. Analytics geral Ge ral
  24. 24. Analytics detalhes de consumo da media VI DEO
  25. 25. Em alta EM ALTA
  26. 26. Perfil da audiência QU EM
  27. 27. Samba facts Dados de volume do analytics
  28. 28. Small Sharp Tools Filosofia Unix
  29. 29. COLETAR Data Pipeline PROCESSAR INFORMAR Data Pipeline - STTM SambatechTrackingModel COLETOR APIPROCESSADOR
  30. 30. STTM - Solução DynamoAmazon SQS S3 Data and Logs Glacier COLETOR API PROCESSADOR AGREGADOR SUMARIZADOR HTTPIN HTTPOUT EMR Data Processing
  31. 31. COLETAR Data Pipeline PROCESSAR INFORMAR Data Pipeline - STTM INFORMAR COLETOR
  32. 32. 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
  33. 33. COLETOR - Objetivos • Rápido • Escalável • Simples • Confiável • Consistente • Flexível
  34. 34. COLETOR
  35. 35. COLETOR COLETOR HTTPIN Logger MsgBuilder
  36. 36. COLETOR COLETOR HTTPIN Logger MsgBuilder Amazon SQS
  37. 37. COLETOR COLETOR HTTPIN Logger MsgBuilder Amazon SQS S3 Data and Logs Glacier
  38. 38. COLETOR Amazon SQS S3 Data and Logs Glacier COLETOR HTTPIN Logger MsgBuilder GIF
  39. 39. COLETOR
  40. 40. 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
  41. 41. COLETAR Data Pipeline PROCESSAR INFORMAR Data Pipeline INFORMARPROCESSARCOLETAR PROCESSADOR
  42. 42. Processador DynamoAmazon SQS PROCESSADOR AGREGADOR SUMARIZADOR EMR Data Processing
  43. 43. Agregador DynamoAmazon SQS AGREGADOR Builder MsgAgreg
  44. 44. Porque Dynamo • Baixa Latência • Alta performance • Gerenciado • Escalável • Alto SLA • Multi A/Z • Hot Keys Problem Dynamo
  45. 45. Agregador Amazon SQS AGREGADOR Builder MsgAgreg
  46. 46. Agregador Amazon SQS AGREGADOR Builder MsgAgreg Auto scaling Group Instances APP Srv Agregation
  47. 47. Hot Keys Problem Dynamo AGREGADOR Builder MsgAgreg Registro Writes 0 27.5 55 82.5 110 Time 1 2 3 4 5 6 WriteCapacity
  48. 48. Hot Keys Problem Dynamo AGREGADOR Builder MsgAgreg SplitKeys
  49. 49. Hot Keys Problem Writes 0 27.5 55 82.5 110 Time 1 2 3 4 5 6 WriteCapacity Dynamo AGREGADOR Builder MsgAgreg SplitKeys
  50. 50. Hot Keys Problem Dynamo AGREGADOR Builder MsgAgreg SplitKeys Tabelas Diarias
  51. 51. Processador DynamoAmazon SQS PROCESSADOR AGREGADOR SUMARIZADOR EMR Data Processing
  52. 52. Sumarizador Dynamo EMR Data Processing Sumarizador
  53. 53. ! • 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
  54. 54. Diarias Dynamo EMR Data Processing Sumarizador Load Sumarizador
  55. 55. Diarias Dynamo EMR Data Processing Sumarizador MergeKeys Sumarizador 6Jobs
  56. 56. Sumarizadas Minutos Horas Dynamo EMR Data Processing Sumarizador Save Sumarizador
  57. 57. 1. Run job 2. Find Bottoleneck 3. Optimize Sumarizador Dynamo EMR Data Processing Sumarizador 4x/diaNetwork
  58. 58. Sumarizador Dynamo EMR Data Processing Sumarizador Alive Cluster 4x/dia
  59. 59. 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/*
  60. 60. •Não exige operação em sub-arvores •Eficiente para pais com múltiplos filhos
  61. 61. Conhecer bem o problema e os dados é essencial. Otimizações locais são eficientes!
  62. 62. COLETAR Data Pipeline PROCESSAR INFORMAR Data Pipeline INFORMARINFORMARCOLETAR API
  63. 63. API - Rest Dynamo API CDN
  64. 64. Permanente Ciclo de vida dos dados ! Minuto, hora ,dias, meses Dynamo APIMYSQLCluster
  65. 65. Analytics - Solução
  66. 66. RECAP DynamoAmazon SQS S3 Data and Logs Glacier COLETOR API PROCESSADOR AGREGADOR SUMARIZADOR HTTPIN HTTPOUT EMR Data Processing
  67. 67. 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.
  68. 68. 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
  69. 69. 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)
  70. 70. 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
  71. 71. 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
  72. 72. Como manter tudo UP? ComoMantertudonoar?
  73. 73. Como manter tudo UP and Running? Automatizartudo! Metric Driven + 2000
  74. 74. Como manter tudo UP and Running? Automatizartudo! Metric Driven Monitoramentos + 400 + 2000
  75. 75. Como manter tudo UP and Running? Automatizartudo! Metric Driven + 2000 Monitoramentos + 400 Notificações de falha
  76. 76. Monitoramento e alertas Métricas MonitoramentoeAlerta
  77. 77. FAILFAST Falheeserecupererapidamente! +Proativo-Reativo ! • Provisionamento automático de Infraestutura • Deploy e Configuração - CloudFormation / Ansible • FailOver -Erros
  78. 78. FAILFAST CryBabies Alarmes críticos alertam o time e escalam automaticamente.
  79. 79. • 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
  80. 80. Evoluções ! • Realtime • Elastic Search • Aumentar o uso do S3 para RAW Data • DW Solution.(RedShift) • +Análises
  81. 81. LIDIO RAMALHO, CTO! LIDIO.RAMALHO@SAMBATECH.COM.BR! @lidioramalho

×