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