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! Problema: Custo Elevado Apresentava bom desempenho T1 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? De onde é minha audiência? Qual é o perfil da 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 Dynamo Glacier EMR Data Processing
Data Pipeline - STTM COLETAR PROCESSAR INFORMAR Data Pipeline 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 Response 35 Bytes COLETOR
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 Glacier S3 Data and Logs Logger Amazon SQS
COLETOR HTTP IN GIF COLETOR Msg Builder Glacier S3 Data and Logs Logger 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 Amazon SQS Custo relativamente Baixo Não suporta AMQP
Data Pipeline COLETAR PROCESSAR INFORMAR Data Pipeline PROCESSADOR
Processador PROCESSADOR AGREGADOR Amazon SQS SUMARIZADOR Dynamo EMR Data Processing
Agregador AGREGADOR Amazon SQS Builder Dynamo Msg Agreg
Porque Dynamo Baixa Latência Alta performance Gerenciado Escalável Alto SLA Multi A/Z Dynamo Hot Keys Problem
Agregador AGREGADOR Amazon SQS Builder Msg Agreg
Agregador AGREGADOR APP Srv Agregation Instances Auto scaling Group Amazon SQS Builder Msg Agreg
Hot Keys Problem 110 Write Capacity AGREGADOR Registro 82.5 Builder Dynamo Writes 55 Msg Agreg 27.5 0 1 2 3 4 5 6 Time
Hot Keys Problem AGREGADOR Split Keys Builder Dynamo Msg Agreg
Hot Keys Problem 110 Write Capacity AGREGADOR Split Keys 82.5 Builder Dynamo Writes 55 27.5 Msg Agreg 0 1 2 3 4 5 6 Time
Hot Keys Problem AGREGADOR Split Keys Builder Dynamo Msg Agreg Tabelas Diarias
Processador PROCESSADOR AGREGADOR Amazon SQS SUMARIZADOR Dynamo EMR Data Processing
Sumarizador Sumarizador Dynamo EMR Data Processing
Porque EMR! Escalável Controle de Custos Managed Hadoop como serviço Map Reduce Engine EMR Data Processing Bom gerenciamento de capacidade Integração com S3 e Dynamo
Sumarizador Sumarizador Load EMR Data Processing Diarias Dynamo
Sumarizador 6Jobs Sumarizador Merge Keys Dynamo EMR Data Processing Diarias
Sumarizador Sumarizador Save EMR Data Processing Sumarizadas Minutos Horas Dynamo
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 Projeto Categoria Projeto Media Modelos de Árvore Child References Media Media 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! Minuto, hora,dias, meses MYSQL Cluster API Dynamo
Analytics - Solução
RECAP HTTP IN HTTP OUT COLETOR API S3 Data and Logs PROCESSADOR AGREGADOR Amazon SQS SUMARIZADOR Dynamo Glacier 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.
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 1 100% Latência vs Custo 0.75 Custo estimado Por Requisição Custo 0.5 57% 46% 40% 38% 37% 0.25 0 0 1 3 6 12 24 Latência (H)
Latência vs Custo 1 100% Latência vs Custo 0.75 Custo estimado Por Requisição Custo 0.5 57% 46% 40% 38% 37% 0.25 0 0 1 3 6 12 24 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! LIDIO.RAMALHO@SAMBATECH.COM.BR! @lidioramalho