SlideShare uma empresa Scribd logo
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?
Arquitetura de Email de Larga Escala
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

PPT
Mail server
PPTX
Email server system1.ppt
PPT
Mail server
PPSX
Mail server
PPTX
mail server presentation
PPT
Email Client Server System
DOCX
Mail Server Project Report
Mail server
Email server system1.ppt
Mail server
Mail server
mail server presentation
Email Client Server System
Mail Server Project Report

Semelhante a Arquitetura de Email de Larga Escala (20)

PDF
Aula 6 camada de aplicacao ii
PDF
Aula Mail Server Windows FTGate Pro Email
PDF
03 Servidores De Email Modulo 8 27 A 43
PPT
Apresentação de sd2
PPT
Correio Eletrônico
PDF
Aula_SRL_05 Servidor E-mail.pdf
PDF
Aula02 - protocolos de email
PDF
Simple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdf
PDF
Setup Sistema de Email Marketing
PDF
Facebuzz Workshop Email Marketing - Setup de um Sistema Email Marketing
PDF
Soa cap3 servicos de internet
PDF
Servidores de E-mail: Qmail, Sendmail e Postfix
PDF
nTime_Apres_Mobile_Desktopv3_3por
PDF
Sistemas de Informação da Administração Pública - 4
PDF
14 thunderbird lj
PPTX
E2010 Nl
PPTX
MVP ShowCast IT - Mensageria - Exchange 2013 Arquitetura do Produto
PDF
Parte2c
PPT
SMTP POP E IMAP
Aula 6 camada de aplicacao ii
Aula Mail Server Windows FTGate Pro Email
03 Servidores De Email Modulo 8 27 A 43
Apresentação de sd2
Correio Eletrônico
Aula_SRL_05 Servidor E-mail.pdf
Aula02 - protocolos de email
Simple Mail Transfer Protocol – Wikipédia, a enciclopédia livre.pdf
Setup Sistema de Email Marketing
Facebuzz Workshop Email Marketing - Setup de um Sistema Email Marketing
Soa cap3 servicos de internet
Servidores de E-mail: Qmail, Sendmail e Postfix
nTime_Apres_Mobile_Desktopv3_3por
Sistemas de Informação da Administração Pública - 4
14 thunderbird lj
E2010 Nl
MVP ShowCast IT - Mensageria - Exchange 2013 Arquitetura do Produto
Parte2c
SMTP POP E IMAP
Anúncio

Último (20)

PPT
Sistemas de Informação em Saúde Aplicada.ppt
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
tutor eletronico para seguranca de bebes e criancas
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Sistemas de Teconologias da Informação em Saúde.pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Aula sobre banco de dados com firebase db
PPTX
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
Sistemas de Informação em Saúde Aplicada.ppt
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Aula sobre desenvolvimento de aplicativos
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Émile Durkheim slide elaborado muito bom
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
COBITxITIL-Entenda as diferença em uso governança TI
tutor eletronico para seguranca de bebes e criancas
Curso de Java 9 - (Threads) Multitarefas.pptx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula 18 - Manipulacao De Arquivos python
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Sistemas de Teconologias da Informação em Saúde.pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Aula sobre banco de dados com firebase db
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
Anúncio

Arquitetura de Email de Larga Escala