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. Arquitetura de Email Convencional
HTTP Webmail
IMAP/NFS
POP/IMAP Mail Server &
Internet
Storage
Maildir/Mbox
SMTP/LMTP
SMTP
SMTP (Mail Delivery &
Queue)
5. Arquitetura de Email Convencional
(escalando)
Webmail
Webmail
Webmail
Internet Mail Server &
Storage
SMTP
(Mail Delivery &
Queue)
6. Arquitetura de Email Convencional
(escalando)
Webmail
Webmail
Webmail
Internet Mail Server &
Storage
SMTP
(Mail Delivery &
Queue)
7. Arquitetura de Email Convencional
(escalando)
Webmail Diretório
Webmail
Webmail
Internet Mail Server &
Storage
SMTP
(Mail Delivery &
Queue)
8. Arquitetura de Email Convencional
(escalando)
Webmail Diretório
Webmail
Webmail
Internet Mail Server &
Storage
SMTP
(Mail Delivery &
Queue)
9. Arquitetura de Email Convencional
(escalando)
Webmail Diretório
Webmail
Webmail
Internet Mail Server &
Storage
SMTP
(Mail Delivery &
Queue)
Ponto único de falha
10. Arquitetura de Email Convencional
(escalando)
Webmail Diretório
Webmail
Webmail
Internet Mail Server &
Storage
SMTP
(Mail Delivery &
Queue)
Ponto único de falha
25. Time Inicial
• Desenvolvimento
– 2 desenvolvedores
– 2(3) administradores de sistemas
• Operação dedicada
– Principal fonte de requisitos
26. Visão geral da Arquitetura
HTTP Webmail
IMAP
POP/IMAP Mail Server &
Internet
Storage
LMTP
SMTP
SMTP (Mail Delivery &
Queue)
27. Visão geral da Arquitetura
HTTP Webmail
Mail Index
IMAP Server
POP/IMAP Front-end Mail
Internet Protocolo Interno
Server
Mail Data
LMTP
Server
SMTP
SMTP (Mail Delivery &
Queue)
28. Ferramentas
• C++
• CORBA
• ACE + TAO
• Shell Script, Perl, Java, Python, Ruby
• Erlang
29. Detalhes da Arquitetura
HTTP Webmail
Mail Index
IMAP Server
POP/IMAP Front-end Mail
Internet Protocolo Interno
Server
Mail Data
LMTP
Server
SMTP
SMTP (Mail Delivery &
Queue)
30. Detalhes da Arquitetura
HTTP Webmail
Mail Index
IMAP Server
POP/IMAP Front-end Mail
Internet Protocolo Interno
Server
Mail Data
LMTP
Server
SMTP
SMTP (Mail Delivery &
Queue)
33. 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
51. 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