HighLoad++

Конференция разработчиков
высоконагруженных систем

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

Максим Дунин (Rambler)

Почта – это больше, чем обычное web-приложение. Много данных, много протоколов, много событий в единицу времени. С проблемой масштабирования сталкиваешься, даже создавая почтовую систему масштаба предприятия. В публичной почте всё должно хорошо масштабироваться и работать (или хотя бы пытаться) вне зависимости от аппаратных проблем.

Из чего состоит почта Рамблера? Подсистемы – минимальная информация о пользователях (directory), данные (storage), доступ по http, клиентский smtp/pop3, входящий smtp. Дополнительные подсистемы – фильтрация спама, фильтрация вирусов. Слабая связанность подсистем как средство упрощения разработки.

Подробнее о…

  • Directory. Хранит минимальные знания о пользователе (сервер, на котором живет пользователь + ещё немного), MySQL + master-slave репликация.
  • Storage – хранение данных. Внутренние сервера с IMAP/POP3/SMTP доступом.
  • Доступ по HTTP. Фронтенды на nginx. CGI – apache+mod_perl, доступ к содержимому почтового ящика по IMAP'у, доступ к directory – по необходимости (на чтение к репликам, если нужна запись – на master'а). Хранение временных данных и кеширование в memcached.
  • Клиентский SMTP/POP3 – nginx, авторизация через cgi cluster, прямое проксирование авторизованных POP3 соединений на нужный пользователю storage backend, проксирование авторизованных SMTP соединений на реальный SMTP-сервер.
    • Лирическое отступление: зачем нужен nginx для SMTP.
  • Входящий SMTP. Ходят к репликам directory и подсистемам фильтрации, при наличии соединения со storage backend'ами отдают им почту. Могут легко разбиваться на географически раздельные блоки, связность не критична.

Подводя итоги: проблемы решённые и проблемы остающиеся. Масштабируется и резервируется практически всё.

По любым вопросам обращайтесь:
Олег Бунин (, +7 (916) 635-95-84 , +7 (495) 646-07-68 , icq: 55370856, skype: oleg.bunin, @olegbunin, oleg-bunin.livejournal.com)
Пресс-служба : Джин Колесников (, +7 (917) 596-05-09 )

Почтовый адрес для отправки документов: ООО «Онтико», 115114, Москва, Летниковская ул., 16, офис 402 +7 (495) 646-07-68

Rambler's Top100
Рейтинг@Mail.ru