Arquitetura de Email de Larga Escala

1.888 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.888
No SlideShare
0
A partir de incorporações
0
Número de incorporações
21
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Arquitetura de Email de Larga Escala

  1. 1. Arquitetura de Email de Larga Escala
  2. 2. Renato Lucindo @rlucindo /lucindo
  3. 3. Agenda• Arquiteturas de email convencionais• Solução para email de larga escala• Histórico e Detalhes• Problemas e Soluções• Lições Aprendidas
  4. 4. Arquitetura de Email Convencional HTTP Webmail IMAP/NFS POP/IMAP Mail Server & Internet Storage Maildir/Mbox SMTP/LMTP SMTP SMTP (Mail Delivery & Queue)
  5. 5. Arquitetura de Email Convencional (escalando) Webmail Webmail WebmailInternet Mail Server & Storage SMTP (Mail Delivery & Queue)
  6. 6. Arquitetura de Email Convencional (escalando) Webmail Webmail WebmailInternet Mail Server & Storage SMTP (Mail Delivery & Queue)
  7. 7. Arquitetura de Email Convencional (escalando) Webmail Diretório Webmail WebmailInternet Mail Server & Storage SMTP (Mail Delivery & Queue)
  8. 8. Arquitetura de Email Convencional (escalando) Webmail Diretório Webmail WebmailInternet Mail Server & Storage SMTP (Mail Delivery & Queue)
  9. 9. Arquitetura de Email Convencional (escalando) Webmail Diretório Webmail Webmail Internet Mail Server & Storage SMTP (Mail Delivery & Queue)Ponto único de falha
  10. 10. Arquitetura de Email Convencional (escalando) Webmail Diretório Webmail Webmail Internet Mail Server & Storage SMTP (Mail Delivery & Queue)Ponto único de falha
  11. 11. 2004
  12. 12. Requisitos do Projeto• Performance• Alta Disponibilidade• Escalabilidade• Baixo Custo
  13. 13. Requisitos do Projeto Performance Cache Filas
  14. 14. Requisitos do Projeto Alta Disponibilidade 
  15. 15. Requisitos do Projeto Alta Disponibilidade 
  16. 16. Requisitos do Projeto Alta Disponibilidade   Réplicas
  17. 17. Requisitos do Projeto Alta DisponibilidadeComo manter consistência?
  18. 18. Requisitos do Projeto Escalabilidade  
  19. 19. Requisitos do Projeto Escalabilidade  
  20. 20. Requisitos do Projeto Escalabilidade    Particionamento
  21. 21. Requisitos do Projeto EscalabilidadeComo encontrar os dados?
  22. 22. Requisitos do Projeto• Performance – Caches, Filas, Código• Alta Disponibilidade – Replicas: Consistência• Escalabilidade – Particionamento: Índice• Baixo Custo
  23. 23. Alta Disponibilidade Escalabilidade
  24. 24. Time Inicial• Desenvolvimento – 2 desenvolvedores – 2(3) administradores de sistemas• Operação dedicada – Principal fonte de requisitos
  25. 25. Visão geral da Arquitetura HTTP Webmail IMAP POP/IMAP Mail Server &Internet Storage LMTP SMTP SMTP (Mail Delivery & Queue)
  26. 26. Visão geral da Arquitetura HTTP Webmail Mail Index IMAP Server POP/IMAP Front-end MailInternet Protocolo Interno Server Mail Data LMTP Server SMTP SMTP (Mail Delivery & Queue)
  27. 27. Ferramentas• C++• CORBA• ACE + TAO• Shell Script, Perl, Java, Python, Ruby• Erlang
  28. 28. Detalhes da Arquitetura HTTP Webmail Mail Index IMAP Server POP/IMAP Front-end MailInternet Protocolo Interno Server Mail Data LMTP Server SMTP SMTP (Mail Delivery & Queue)
  29. 29. Detalhes da Arquitetura HTTP Webmail Mail Index IMAP Server POP/IMAP Front-end MailInternet Protocolo Interno Server Mail Data LMTP Server SMTP SMTP (Mail Delivery & Queue)
  30. 30. Detalhes da ArquiteturaFront-end Index A B Data A B
  31. 31. Detalhes da ArquiteturaFront-end Index  A  B Data  A  B
  32. 32. Detalhes da Arquitetura• Como se encontra qualquer dado? – Servidores com heartbeat com estado (multicast) – Índice interno volátil get index Internal Index Index Front-end Data
  33. 33. Detalhes da Arquitetura A Internal B IndexFront-end A B
  34. 34. Detalhes da Arquitetura A Internal B Index multicast discoveryFront-end A B
  35. 35. Detalhes da Arquitetura get index A Internal B Index multicast discoveryFront-end A B
  36. 36. Detalhes da Arquitetura A Internal B IndexFront-end A B
  37. 37. Detalhes da Arquitetura  A Internal  B IndexFront-end A B
  38. 38. Detalhes da Arquitetura  A Internal  B IndexFront-end A B
  39. 39. Detalhes da Arquitetura  A Internal  B IndexFront-end A B
  40. 40. Detalhes da Arquitetura  A Internal  B IndexFront-end  A  B
  41. 41. Detalhes da Arquitetura  A Internal  B IndexFront-end  A  B
  42. 42. Detalhes da Arquitetura  A Internal  B IndexFront-end  A  B
  43. 43. Detalhes da Arquitetura  A Internal  B IndexFront-end  A  B
  44. 44. O que acontece em caso de falha? (crescimento e manutenção do sistema)
  45. 45. Detalhes da Arquitetura A  B
  46. 46. Detalhes da ArquiteturaAB
  47. 47. Detalhes da ArquiteturaAB     
  48. 48. Detalhes da ArquiteturaAB     
  49. 49. Detalhes da ArquiteturaA    B
  50. 50. Mudanças Durante o Projeto• Início com 2 cópias de cada mensagem• Mudança para 3 cópias• Volta para 2 cópias• Mudança do Sistema de Arquivos• Mudança de todo o hardware algumas vezes
  51. 51. Lições AprendidasFerramentas Administrativas (logs, contadores, monitoração)
  52. 52. Lições AprendidasTestes de Resiliência Front- Back A end Back C Front- Back B end
  53. 53. Lições Aprendidas Testes de Resiliência Front- Back A end Back C Front- Back B end$ kill –KILL …
  54. 54. Lições Aprendidas Testes de Resiliência Front- Back A end Back C Front- Back B end$ kill –STOP …
  55. 55. Lições Aprendidas• Nem sempre o problema é no seu código ou arquitetura – ReiserFS – Kernel panic com mmap –…
  56. 56. Lições Aprendidas
  57. 57. Muito mais• ILM• AntiSpam• Contatos• Webmail• …
  58. 58. Obrigado! Dúvidas?

×