O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
www.azion.com
Stream processing
com Python e Apache Storm
Victor Poluceno
CDN
Content Delivery Network
v1 2015-08-18T14:02:29+00:00 7778s27778s hd
images.livrariasaraiva.com.br 0.000GET
HIT - 200 https/imagem/`?
L=200&A=-1&pr...
Sinal e ruído
ou como extrair métricas dos logs
Baixa latência
do inicio ao fim do pipeline
Elasticidade
aceitar 100x o volume normal
Escalabilidade linear
Crescer capacidade com aumento de recursos
Coleta
Mensagem
{
‘event_id’:‘ff5a727e-45e2-11e5-96d6-08002760fc47',
'partition': 0,
’event': {
'payload': ’lines here…’,
'family'...
Armazenamento temporário
Consumidores
Stream Processing
Pyleus
Framework Python desenvolver topologias Storm
Armazenamento
permanente
Contando coisas
Contadores distribuidos não são fáceis
Cassandra counter
Use com cuidado
Acesso exclusivo por
particionamento
Counter distribuído e consistente
Bloom Filter
Utilizado para saber se um update já foi processado.
Macro Arquitetura
Latência ~500 ms
Write < 500 ms e read < 50ms
Lições aprendidas
Sistemas distribuídos e resilientes
Dividir para conquistar
Dividir pipelines e responsabilidades
Visibilidade
sobre o comportamento do sistema
Limpar o caminho critico
Manter o loop de processamento estatico
Bare metal
Diminuir as variáveis afetando a latência
Ambiente de canary
Prevenção contra modificações ruins ou erros humanos
Obrigado!
Para mais informações, acesse:
www.azion.com
Stream processing com Python e Apache Storn
Stream processing com Python e Apache Storn
Stream processing com Python e Apache Storn
Stream processing com Python e Apache Storn
Próximos SlideShares
Carregando em…5
×

Stream processing com Python e Apache Storn

526 visualizações

Publicada em

Construir uma arquitetura para extração e processamento de dados, de forma altamente escalável e tolerante a falhas, pode não ser uma tarefa fácil. Nesta palestra, explicarei como construir sistemas confiáveis, utilizando at-least-once semantics, técnicas de deduplicação e particionamento de dados utilizando Python. Um projeto que surgiu da demanda de um cliente para análise de dados e geração de estatísticas e métricas, foi desenvolvido totalmente de uma forma escalável, sem perda ou pontos únicos de falha, isso tudo para processar mais de 35 bilhões de linhas de logs mensais, vindos de um pipeline de processamento que utiliza Apache Storm, Apache Kafka, Redis e Cassandra.

Publicada em: Educação
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Stream processing com Python e Apache Storn

  1. 1. www.azion.com Stream processing com Python e Apache Storm Victor Poluceno
  2. 2. CDN Content Delivery Network
  3. 3. v1 2015-08-18T14:02:29+00:00 7778s27778s hd images.livrariasaraiva.com.br 0.000GET HIT - 200 https/imagem/`? L=200&A=-1&pro_id=1910801 image/webpHTTP/1.1 7316 - 224625 200.182.220.130 19536TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 . Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36 http://saraiva.sys.social/ trend/vitrine.php -
  4. 4. Sinal e ruído ou como extrair métricas dos logs
  5. 5. Baixa latência do inicio ao fim do pipeline
  6. 6. Elasticidade aceitar 100x o volume normal
  7. 7. Escalabilidade linear Crescer capacidade com aumento de recursos
  8. 8. Coleta
  9. 9. Mensagem { ‘event_id’:‘ff5a727e-45e2-11e5-96d6-08002760fc47', 'partition': 0, ’event': { 'payload': ’lines here…’, 'family':‘http', 'metadata': { '__location':‘poa001', '__hostname':‘localhost’ } }, 'event_timestamp': 147689768976 }
  10. 10. Armazenamento temporário
  11. 11. Consumidores
  12. 12. Stream Processing
  13. 13. Pyleus Framework Python desenvolver topologias Storm
  14. 14. Armazenamento permanente
  15. 15. Contando coisas Contadores distribuidos não são fáceis
  16. 16. Cassandra counter Use com cuidado
  17. 17. Acesso exclusivo por particionamento Counter distribuído e consistente
  18. 18. Bloom Filter Utilizado para saber se um update já foi processado.
  19. 19. Macro Arquitetura
  20. 20. Latência ~500 ms Write < 500 ms e read < 50ms
  21. 21. Lições aprendidas Sistemas distribuídos e resilientes
  22. 22. Dividir para conquistar Dividir pipelines e responsabilidades
  23. 23. Visibilidade sobre o comportamento do sistema
  24. 24. Limpar o caminho critico Manter o loop de processamento estatico
  25. 25. Bare metal Diminuir as variáveis afetando a latência
  26. 26. Ambiente de canary Prevenção contra modificações ruins ou erros humanos
  27. 27. Obrigado! Para mais informações, acesse: www.azion.com

×