Arquitetura de Email  de Larga Escala
Renato Lucindo    @rlucindo     /lucindo
Agenda•   Arquiteturas de email convencionais•   Solução para email de larga escala•   Histórico e Detalhes•   Problemas e...
Arquitetura de Email Convencional             HTTP                 Webmail                                       IMAP/NFS ...
Arquitetura de Email Convencional           (escalando)                   Webmail                    Webmail              ...
Arquitetura de Email Convencional           (escalando)                   Webmail                    Webmail              ...
Arquitetura de Email Convencional           (escalando)                   Webmail         Diretório                    Web...
Arquitetura de Email Convencional           (escalando)                   Webmail         Diretório                    Web...
Arquitetura de Email Convencional              (escalando)                          Webmail         Diretório             ...
Arquitetura de Email Convencional              (escalando)                          Webmail         Diretório             ...
2004
Requisitos do Projeto•   Performance•   Alta Disponibilidade•   Escalabilidade•   Baixo Custo
Requisitos do Projeto   Performance      Cache       Filas
Requisitos do Projeto Alta Disponibilidade         
Requisitos do Projeto Alta Disponibilidade         
Requisitos do Projeto     Alta Disponibilidade                                Réplicas
Requisitos do Projeto   Alta DisponibilidadeComo manter consistência?
Requisitos do Projeto   Escalabilidade                  
Requisitos do Projeto   Escalabilidade             
Requisitos do Projeto       Escalabilidade                               Particionamento
Requisitos do Projeto     EscalabilidadeComo encontrar os dados?
Requisitos do Projeto• Performance  – Caches, Filas, Código• Alta Disponibilidade  – Replicas: Consistência• Escalabilidad...
Alta Disponibilidade  Escalabilidade
Time Inicial• Desenvolvimento  – 2 desenvolvedores  – 2(3) administradores de sistemas• Operação dedicada  – Principal fon...
Visão geral da Arquitetura           HTTP                 Webmail                                       IMAP              ...
Visão geral da Arquitetura           HTTP                 Webmail                                                        M...
Ferramentas• C++•   CORBA•   ACE + TAO•   Shell Script, Perl, Java, Python, Ruby•   Erlang
Detalhes da Arquitetura           HTTP                 Webmail                                                        Mail...
Detalhes da Arquitetura           HTTP                 Webmail                                                        Mail...
Detalhes da ArquiteturaFront-end              Index                                      A                                ...
Detalhes da ArquiteturaFront-end              Index                                      A                               ...
Detalhes da Arquitetura• Como se encontra qualquer dado?  – Servidores com heartbeat com estado (multicast)  – Índice inte...
Detalhes da Arquitetura                          A Internal                          B  IndexFront-end                    ...
Detalhes da Arquitetura                                  A Internal                                  B  Index            m...
Detalhes da Arquitetura            get index                                              A Internal                      ...
Detalhes da Arquitetura                          A Internal                          B  IndexFront-end                    ...
Detalhes da Arquitetura                         A Internal                         B  IndexFront-end                    ...
Detalhes da Arquitetura                         A Internal                         B  IndexFront-end                    ...
Detalhes da Arquitetura                         A Internal                         B  IndexFront-end                    ...
Detalhes da Arquitetura                          A Internal                          B  IndexFront-end                  ...
Detalhes da Arquitetura                          A Internal                          B  IndexFront-end                  ...
Detalhes da Arquitetura                          A Internal                          B  IndexFront-end                  ...
Detalhes da Arquitetura                          A Internal                          B  IndexFront-end                  ...
O que acontece em  caso de falha?  (crescimento e manutenção do sistema)
Detalhes da Arquitetura               A                              B
Detalhes da ArquiteturaAB
Detalhes da ArquiteturaAB                         
Detalhes da ArquiteturaAB                         
Detalhes da ArquiteturaA                         B
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•   Muda...
Lições AprendidasFerramentas Administrativas    (logs, contadores, monitoração)
Lições AprendidasTestes de Resiliência         Front-                  Back A          end                           Back ...
Lições Aprendidas            Testes de Resiliência                     Front-                              Back A         ...
Lições Aprendidas            Testes de Resiliência                     Front-                              Back A         ...
Lições Aprendidas• Nem sempre o problema é no seu código ou  arquitetura  – ReiserFS  – Kernel panic com mmap  –…
Lições Aprendidas
Muito mais•   ILM•   AntiSpam•   Contatos•   Webmail•   …
Obrigado! Dúvidas?
Arquitetura de Email de Larga Escala
Próximos SlideShares
Carregando em…5
×

Arquitetura de Email de Larga Escala

2.000 visualizações

Publicada em

Publicada em: Tecnologia
  • Seja o primeiro a comentar

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?

×