Mobimail: Uma
 abordagem pragmática
sobre LDAP e Memcached

        Otávio Fernandes
      Arquitetura de Email
     <otav...
Mobimail
Nosso objetivo é ter consultas
constantes sobre as informações de
2 milhões de usuários (e crescendo
             rápido).
Afinal, Porque não um
      SQL-like?

  Porque é relacional;

  Porque tem dificuldades ao escalar;

  Vide o modelo de b...
Exemplo do MySQL Binlog
BINLOG '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANgAAAGQBAAAQABEA...
A partir de um pequeno exemplo,
 podemos ter idéia do comportamento
   em grande escala. Este é um dos
motivos porque um D...
Ter dificuldades não significa que não é
 possível. O Mobimail exige uma solução
        mais simples e adequada.
Porque LDAP?

Estruturado em forma de árvore;

Fácil para replicar, master-master;

Compatibilidade com produtos de
tercei...
Arquitetura


Somente o Painel de Controle escreve
na árvore LDAP;

Réplicas serão feitas sob demanda
(SysAdmins);
locaweb.schema

#   $ mobimail.schema
#
#   1.3.6.1.4.1.34377 - Locaweb PEN
#   1.3.6.1.4.1.34377.2.2.1 Produto Mobimail
#...
Performance do LDAP
Impasse entre uma árvore mais
horizontal, ou, mais vertical
         (profunda).
Árvores muito rasas (horizontais) vão
   sofre na escrita, pois, o OpenLDAP
atribui um “lock” no nó-pai durante este
     ...
Árvores profundas (verticais) tem
   problemas com a escrita. Porque
dificulta o processo de indexação, ao
     guardar mu...
A solução para o Mobimail foi MD5.
Utilização de MD5


MD5 ("locaweb.com.br") =
b79f6b6701b3163b8ce6b08ce48db468

cn=locaweb.com.br,cn=b,cn=79,o=Mail,o
u=Loc...
Com a utilização do MD5, conseguimos ter
  uma árvore balanceada (horizontal vs
               vertical).
Memcached

Não existe servidor centralizado;

Cada máquina é potencialmente um
servidor de Memcached (consultas e
resposta...
Olhando para os
       fontes
Abstração entre as duas camadas;

Uma única chamada consulta
automaticamente o Memcached e o...
Um filtro hoje:
Futuro: Malware
       Filter

Não tem Postfix (sem filas de e-
mails);

Acesso direto ao Amavisd-New;

Recursos dedicados...
A resposta a mudança é que haverá muito
   mais consultas ao Memcached/LDAP.
Necessidade de escalar horizontalmente.
Obrigado :-)
Upcoming SlideShare
Loading in...5
×

Uma abordagem pragmática sobre LDAP e Memcached

834

Published on

Apresentação para explicar usos e os conceitos sobre LDAP e Memcached.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
834
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Uma abordagem pragmática sobre LDAP e Memcached

    1. 1. Mobimail: Uma abordagem pragmática sobre LDAP e Memcached Otávio Fernandes Arquitetura de Email <otavio.fernandes@locaweb.com.br>
    2. 2. Mobimail
    3. 3. Nosso objetivo é ter consultas constantes sobre as informações de 2 milhões de usuários (e crescendo rápido).
    4. 4. Afinal, Porque não um SQL-like? Porque é relacional; Porque tem dificuldades ao escalar; Vide o modelo de binlog (MySQL);
    5. 5. Exemplo do MySQL Binlog BINLOG ' fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA//// AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP '/*!*/; ### UPDATE test.t ### WHERE ### @1=1 ### @2='apple' ### @3=NULL ### SET ### @1=1 ### @2='pear' ### @3='2009:01:01' ... # at 400 #080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F BINLOG ' fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP '/*!*/; ### DELETE FROM test.t ### WHERE ### @1=1 ### @2='pear' ### @3='2009:01:01'
    6. 6. A partir de um pequeno exemplo, podemos ter idéia do comportamento em grande escala. Este é um dos motivos porque um DB relacional tem dificuldades em escalar.
    7. 7. Ter dificuldades não significa que não é possível. O Mobimail exige uma solução mais simples e adequada.
    8. 8. Porque LDAP? Estruturado em forma de árvore; Fácil para replicar, master-master; Compatibilidade com produtos de terceiros ( IronPort, CommuniGate, PowerMTA, etc. ); É a solução adequada para “email”;
    9. 9. Arquitetura Somente o Painel de Controle escreve na árvore LDAP; Réplicas serão feitas sob demanda (SysAdmins);
    10. 10. locaweb.schema # $ mobimail.schema # # 1.3.6.1.4.1.34377 - Locaweb PEN # 1.3.6.1.4.1.34377.2.2.1 Produto Mobimail # 1.3.6.1.4.1.34377.2.2.1.x Mobimail ObjectClasses # 1.3.6.1.4.1.34377.2.3.1.x Mobimail Attributes # # @copyright 2009 Locaweb Ltda # @author FT-Email <email-tec@locaweb.com.br>
    11. 11. Performance do LDAP
    12. 12. Impasse entre uma árvore mais horizontal, ou, mais vertical (profunda).
    13. 13. Árvores muito rasas (horizontais) vão sofre na escrita, pois, o OpenLDAP atribui um “lock” no nó-pai durante este processo.
    14. 14. Árvores profundas (verticais) tem problemas com a escrita. Porque dificulta o processo de indexação, ao guardar muitas referências.
    15. 15. A solução para o Mobimail foi MD5.
    16. 16. Utilização de MD5 MD5 ("locaweb.com.br") = b79f6b6701b3163b8ce6b08ce48db468 cn=locaweb.com.br,cn=b,cn=79,o=Mail,o u=Locaweb;
    17. 17. Com a utilização do MD5, conseguimos ter uma árvore balanceada (horizontal vs vertical).
    18. 18. Memcached Não existe servidor centralizado; Cada máquina é potencialmente um servidor de Memcached (consultas e respostas, somente local); Novos servidores tem a quantidade de memória RAM dimensionada para esta tarefa;
    19. 19. Olhando para os fontes Abstração entre as duas camadas; Uma única chamada consulta automaticamente o Memcached e o LDAP; De forma transparente, é feita a inclusão de um registro do LDAP para o Memcached (sempre local);
    20. 20. Um filtro hoje:
    21. 21. Futuro: Malware Filter Não tem Postfix (sem filas de e- mails); Acesso direto ao Amavisd-New; Recursos dedicados a esta tarefa;
    22. 22. A resposta a mudança é que haverá muito mais consultas ao Memcached/LDAP. Necessidade de escalar horizontalmente.
    23. 23. Obrigado :-)
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×