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

Post on 05-Jun-2015

431 views 0 download

description

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.

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

LIDIO RAMALHO, CTO!LIDIO.RAMALHO@SAMBATECH.COM.BR!

@lidioramalho