SlideShare uma empresa Scribd logo
1 de 59
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 Soluções
•   Lições Aprendidas
Arquitetura de Email Convencional

             HTTP                 Webmail


                                       IMAP/NFS


                    POP/IMAP    Mail Server &
  Internet
                                  Storage
                                                   Maildir/Mbox


                                       SMTP/LMTP

                                    SMTP
             SMTP              (Mail Delivery &
                                   Queue)
Arquitetura de Email Convencional
           (escalando)
                   Webmail
                    Webmail
                     Webmail




Internet         Mail Server &
                   Storage




                     SMTP
                (Mail Delivery &
                    Queue)
Arquitetura de Email Convencional
           (escalando)
                   Webmail
                    Webmail
                     Webmail




Internet         Mail Server &
                   Storage




                     SMTP
                (Mail Delivery &
                    Queue)
Arquitetura de Email Convencional
           (escalando)
                   Webmail         Diretório
                    Webmail
                     Webmail




Internet         Mail Server &
                   Storage




                     SMTP
                (Mail Delivery &
                    Queue)
Arquitetura de Email Convencional
           (escalando)
                   Webmail         Diretório
                    Webmail
                     Webmail




Internet         Mail Server &
                   Storage




                     SMTP
                (Mail Delivery &
                    Queue)
Arquitetura de Email Convencional
              (escalando)
                          Webmail         Diretório
                           Webmail
                            Webmail




    Internet            Mail Server &
                          Storage




                            SMTP
                       (Mail Delivery &
                           Queue)
Ponto único de falha
Arquitetura de Email Convencional
              (escalando)
                          Webmail         Diretório
                           Webmail
                            Webmail




    Internet            Mail Server &
                          Storage




                            SMTP
                       (Mail Delivery &
                           Queue)
Ponto único de falha
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 Disponibilidade



Como manter consistência?
Requisitos do Projeto
   Escalabilidade



         
         
Requisitos do Projeto
   Escalabilidade



             
Requisitos do Projeto
       Escalabilidade



                         




      Particionamento
Requisitos do Projeto
     Escalabilidade



Como encontrar os dados?
Requisitos do Projeto
• Performance
  – Caches, Filas, Código
• Alta Disponibilidade
  – Replicas: Consistência
• Escalabilidade
  – Particionamento: Índice
• Baixo Custo
Alta Disponibilidade


  Escalabilidade
Time Inicial
• Desenvolvimento
  – 2 desenvolvedores
  – 2(3) administradores de sistemas
• Operação dedicada
  – Principal fonte de requisitos
Visão geral da Arquitetura

           HTTP                 Webmail


                                       IMAP


                  POP/IMAP    Mail Server &
Internet
                                Storage


                                        LMTP

                                  SMTP
           SMTP              (Mail Delivery &
                                 Queue)
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)
Ferramentas

• C++
•   CORBA
•   ACE + TAO
•   Shell Script, Perl, Java, Python, Ruby
•   Erlang
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)
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)
Detalhes da Arquitetura
Front-end              Index


                                      A

                                      B

                       Data


                                      A

                                      B
Detalhes da Arquitetura
Front-end              Index


                                      A

                                      B

                       Data


                                      A

                                      B
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
Detalhes da Arquitetura

                          A


 Internal
                          B
  Index


Front-end

                          A

                          B
Detalhes da Arquitetura

                                  A


 Internal
                                  B
  Index
            multicast discovery

Front-end

                                  A

                                  B
Detalhes da Arquitetura
            get index

                                              A


 Internal
                                              B
  Index
                        multicast discovery

Front-end

                                              A

                                              B
Detalhes da Arquitetura

                          A


 Internal
                          B
  Index


Front-end

                          A

                          B
Detalhes da Arquitetura
                         A


 Internal
                         B
  Index


Front-end

                          A

                          B
Detalhes da Arquitetura
                         A


 Internal
                         B
  Index


Front-end

                          A

                          B
Detalhes da Arquitetura
                         A


 Internal
                         B
  Index


Front-end

                          A

                          B
Detalhes da Arquitetura
                          A


 Internal
                          B
  Index


Front-end

                          A

                          B
Detalhes da Arquitetura
                          A


 Internal
                          B
  Index


Front-end

                          A

                          B
Detalhes da Arquitetura
                          A


 Internal
                          B
  Index


Front-end

                          A

                          B
Detalhes da Arquitetura
                          A


 Internal
                          B
  Index


Front-end

                          A

                          B
O que acontece em
  caso de falha?
  (crescimento e manutenção do sistema)
Detalhes da Arquitetura

               
A               
               




B
Detalhes da Arquitetura

A




B
Detalhes da Arquitetura

A




B                         
Detalhes da Arquitetura

A




B                         
Detalhes da Arquitetura

A                         




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
•   Mudança do Sistema de Arquivos
•   Mudança de todo o hardware algumas vezes
Lições Aprendidas
Ferramentas Administrativas
    (logs, contadores, monitoração)
Lições Aprendidas
Testes de Resiliência


         Front-
                  Back A
          end

                           Back C

         Front-
                  Back B
          end
Lições Aprendidas
            Testes de Resiliência


                     Front-
                              Back A
                      end

                                       Back C

                     Front-
                              Back B
                      end




$ kill –KILL …
Lições Aprendidas
            Testes de Resiliência


                     Front-
                              Back A
                      end

                                       Back C

                     Front-
                              Back B
                      end




$ kill –STOP …
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?

Mais conteúdo relacionado

Semelhante a Arquitetura de Email de Larga Escala

Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...fabio perrella
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasCelso Crivelaro
 
Aula_SRL_05 Servidor E-mail.pdf
Aula_SRL_05 Servidor E-mail.pdfAula_SRL_05 Servidor E-mail.pdf
Aula_SRL_05 Servidor E-mail.pdfMarcelo Aguiar
 
Aula 6 camada de aplicacao ii
Aula 6   camada de aplicacao iiAula 6   camada de aplicacao ii
Aula 6 camada de aplicacao iiwab030
 
Redes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IPRedes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IPMauro Tapajós
 
Simple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdf
Simple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdfSimple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdf
Simple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdfJosielNascimento16
 
Redes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPRedes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPMauro Tapajós
 
Modelo de camadas TCP/IP
Modelo de camadas TCP/IPModelo de camadas TCP/IP
Modelo de camadas TCP/IPEvandro Júnior
 
Produtividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache CamelProdutividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache CamelAlessandro Kieras
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Adriano Tavares
 
Chamada remota de procedimentos .net
Chamada remota de procedimentos   .netChamada remota de procedimentos   .net
Chamada remota de procedimentos .netGabii Fonseca
 
Aula02 - protocolos de email
Aula02 -  protocolos de emailAula02 -  protocolos de email
Aula02 - protocolos de emailCarlos Veiga
 
Servidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixServidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixAlvaro Oliveira
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5Helder da Rocha
 
apresentação RINA FI INATEL
apresentação RINA FI INATELapresentação RINA FI INATEL
apresentação RINA FI INATELMarco Casaroli
 

Semelhante a Arquitetura de Email de Larga Escala (20)

Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
 
Aula_SRL_05 Servidor E-mail.pdf
Aula_SRL_05 Servidor E-mail.pdfAula_SRL_05 Servidor E-mail.pdf
Aula_SRL_05 Servidor E-mail.pdf
 
Aula 6 camada de aplicacao ii
Aula 6   camada de aplicacao iiAula 6   camada de aplicacao ii
Aula 6 camada de aplicacao ii
 
Apresentação de sd2
Apresentação de sd2Apresentação de sd2
Apresentação de sd2
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Redes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IPRedes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IP
 
Simple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdf
Simple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdfSimple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdf
Simple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdf
 
Redes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPRedes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IP
 
Modelo de camadas TCP/IP
Modelo de camadas TCP/IPModelo de camadas TCP/IP
Modelo de camadas TCP/IP
 
Produtividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache CamelProdutividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache Camel
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
 
Fcc rede lj
Fcc rede ljFcc rede lj
Fcc rede lj
 
Chamada remota de procedimentos .net
Chamada remota de procedimentos   .netChamada remota de procedimentos   .net
Chamada remota de procedimentos .net
 
Aula02 - protocolos de email
Aula02 -  protocolos de emailAula02 -  protocolos de email
Aula02 - protocolos de email
 
Servidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixServidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e Postfix
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
apresentação RINA FI INATEL
apresentação RINA FI INATELapresentação RINA FI INATEL
apresentação RINA FI INATEL
 
04 Introdução a Redes
04   Introdução a Redes04   Introdução a Redes
04 Introdução a Redes
 
Lan
LanLan
Lan
 

Arquitetura de Email de Larga Escala