17
Архитектура новой почты Рамблера Андрей Шетухин

Архитектура новой почты Рамблера

  • Upload
    gella

  • View
    67

  • Download
    0

Embed Size (px)

DESCRIPTION

Архитектура новой почты Рамблера. Андрей Шетухин. Rambler Mail сегодня. 240 тысяч новых регистраций в день 66 миллионов пользователей 20 миллионов “ живых ” ящиков 192 миллиона контактов в адресной книге 16 миллионов писем в день. Rambler Mail сегодня. Мобильная и Wap версии - PowerPoint PPT Presentation

Citation preview

Page 1: Архитектура новой почты  Рамблера

Архитектура новойпочты Рамблера

Андрей Шетухин

Page 2: Архитектура новой почты  Рамблера

Rambler Mail сегодня• 240 тысяч новых регистраций в день• 66 миллионов пользователей• 20 миллионов “живых” ящиков• 192 миллиона контактов в адресной книге• 16 миллионов писем в день

Page 3: Архитектура новой почты  Рамблера

Rambler Mail сегодня• Мобильная и Wap версии• Автосборщик почты• Неограниченное количество почтовых доменов• 16 видов оформления на любой вкус• Умная адресная книга• Иконки сервисов

Page 4: Архитектура новой почты  Рамблера

Программное обеспечение• FreeBSD 6, 7

• MySQL 4.1

• nginx 0.7.X + patches

• Apache 1.3 + mod_perl + PerlXS + C++

• memcached

• Postfix + Dovecot + patches

• Rspamd + Clamav

Page 5: Архитектура новой почты  Рамблера

MySQL• Master-slave репликация

• “Дерево” slave серверов

• Разнесение данных по серверам и таблицам

• Денормализация данных

• Только необходимые индексы в таблице

Page 6: Архитектура новой почты  Рамблера

“Дерево” slave серверов

Page 7: Архитектура новой почты  Рамблера

ПартиционированиеCluster F

Users_0_0

Users_f_f

Users_e_2

Cluster 1

Users_0_0

Users_f_f

Users_e_2

Cluster 0

Users_0_0

Users_f_f

Users_e_2

MD5(“[email protected]”) =9f1….. f e2

Page 8: Архитектура новой почты  Рамблера

Apache + mod_perl• OO Perl – хорошо или плохо?

• ORM – зло, которое следует избегать

• SQL Proxy – решение проблем с нагрузкой БД

• Прозрачное кэширование данных

• Быстрый шаблонизатор – CTPP

• Почему не FastCGI?

Page 9: Архитектура новой почты  Рамблера

OO Perl• Увеличение скорости разработки

• Сепарация сущностей

• Более прозрачный код в большом проекте

• Медленнее скорость работы

• Выше требования к памяти

• Нужны квалифицированные разработчики

Page 10: Архитектура новой почты  Рамблера

ORM• Полный цикл разработки с ORM – дороже

• Простые вещи с ORM делаются просто, сложные – не делаются вовсе

• Много памяти, много кода, много черной магии

• Сложность оптимизации запросов и вообще любой отладки

• ORM – это дорогой вариант sprintf

Page 11: Архитектура новой почты  Рамблера

SQL Proxy• Много входящих подключений, мало исходящих

• Универсальный интерфейс - JSON

• Простота использования

• Поддержка Oracle, PostgreSQL, MySQL

Page 12: Архитектура новой почты  Рамблера

Кэширование• Memcached

• Драйвер -> Кэш -> Интерфейс

• Кэшировать объекты или нет?

Page 13: Архитектура новой почты  Рамблера

Драйвер - Кэш - ИнтерфейсI/O

MySQL masterdatabase

R/W

MySQL slavedatabase

W/O

R/O

Rambler::Mail::AddrBook

Rambler::MailAddrBookStorage

Memcached

mod_perlRambler::Mail::AddrBookWorker

I/O

Rambler::Id::Session

Page 14: Архитектура новой почты  Рамблера

Шаблонизатор• CTPP 2.5.X

• Встроенные функции на все случаи жизни

• Самый быстрый шаблонизатор для Perl

• Интерфейсы для С, С++, PHP, Perl и Python

• Простота верстки

• Моментальная выкатка шаблонов

Page 15: Архитектура новой почты  Рамблера

Тесты

http://ctpp.havoc.ru/template_benchmarks.html

Page 16: Архитектура новой почты  Рамблера

Postfix + Dovecot• MX = Mail eXchanger

• Milter API <-> ClamAv + RspamD

• Patches, patches, patches…

• Dovecot

• Хранение писем: Mailbox

Page 17: Архитектура новой почты  Рамблера

Вопросы?