Elytics: Métricas em tempo real no Elo7

Elytics: Métricas em tempo real no Elo7

Métricas, métricas, métricas! No Elo7, tanto as métricas de sistema (cpu, mémoria, disco, logs, etc) quanto as métricas de negócio (pedidos, carrinhos, mensagens) importam bastante. Tudo o que acontece no site é capturado, metrificado e monitorado em tempo real para que nós possamos saber se estamos indo bem ou mal e para onde devemos seguir. Para que isso seja possível nós criamos o Elytics: um conjunto de ferramentas combinadas com o propósito de fornecer uma solução completa para a análise de dados e tomada de decisão em tempo real.

Da1bf5eb395c67b4abe83837e52a6c1f?s=128

Mike Dias

July 18, 2017
Tweet

Transcript

  1. Elytics: Métricas em tempo real no Elo7 Métricas fora de

    série!
  2. @mike_dias

  3. #foradesérie engenharia.elo7.com.br

  4. Agenda • Motivação • Pipeline Analítica • Resultados • Roadmap

  5. Motivação Dados, Decisões e Visibilidade

  6. Touch Points

  7. Data Driven Decisions

  8. Tempo real

  9. Democratização dos Dados

  10. Pipeline Analítica Elo7 + Analytics = Elytics

  11. Pipeline ? ? ? ?

  12. Pipeline ? ? ? Apache Kafka

  13. Apache Kafka • Distributed Streaming Platform • Criado no LinkedIn

    em 2011 • Escrito em Scala e Java • Clients para C++, C#, Python, Go, etc
  14. Conceitos Marketplace Cluster Kafka Microservice X Microservice Y Elytics Microservice

    W Microservice Z Producers Consumers
  15. Tópicos Producers

  16. PubSub & Queue

  17. Exactly-once

  18. Backup & Batch Apache Kafka Secor Amazon S3

  19. Pipeline ? ? ? Apache Kafka

  20. Pipeline ? ? Apache Kafka Apache Flink

  21. Apache Flink • Streaming Dataflow Engine • Mentalidade "Stream First"

    • Disponível em Java e Scala
  22. Conceitos

  23. APIs & Libraries

  24. Time

  25. Tumbling Windows

  26. Session Windows

  27. EMR

  28. Reprocessor Apache Kafka Apache Flink Amazon S3

  29. Spark Streaming?

  30. Pipeline ? ? Apache Kafka Apache Flink

  31. Pipeline ? Apache Kafka Apache Flink Elasticsearch

  32. Elasticsearch • Distributed search and analytics engine • Baseado no

    Apache Lucene • API RESTful bem definida • Clients em várias linguagens
  33. Index & Shard Elasticsearch Index Elasticsearch Shard Elasticsearch Shard Elasticsearch

    Shard Elasticsearch Shard Lucene Index Lucene Index Lucene Index Lucene Index Segment Segment Segment Segment Segment Segment Segment Segment
  34. Distributed PUT /blogs { "settings" : { "number_of_shards" : 3,

    "number_of_replicas" : 2 } }
  35. Inverted Index Documents 1 Winter is coming 2 Ours is

    the fury 3 The choice is yours Term Freq Documents choice 1 3 coming 1 1 fury 1 2 is 3 1,2,3 ours 1 2 the 2 2,3 winter 1 1 yours 1 3 Dictionary Postings
  36. Aggregations

  37. Pipeline ? Apache Kafka Apache Flink Elasticsearch

  38. Pipeline Apache Kafka Apache Flink Elasticsearch Kibana

  39. Kibana • Analytics and visualization platform • Projetado para o

    Elasticsearch • Escrito em Node.js e d3.js • Extensível via plugins
  40. Dashboards

  41. Geolocation

  42. Timeseries

  43. Cohort github.com/elo7/cohort

  44. Pipeline Apache Kafka Apache Flink Elasticsearch Kibana recebe organiza armazena

    exibe
  45. Resultados Big Data ou Big Datinha?

  46. Mensagens enviadas

  47. Mensagens armazenadas

  48. Streams em produção

  49. Documentos indexados

  50. Dashboards criados

  51. Roadmap Onde queremos chegar

  52. Roadmap • Roteamento de eventos • Modelo canônico de eventos

    • Enriquecimento de eventos • Serialização otimizada
  53. Dúvidas? Obrigado!