Слайд 2Rambler Mail сегодня
240 тысяч новых регистраций в день
66 миллионов пользователей
20 миллионов “живых” ящиков
192 миллиона контактов в адресной книге
16 миллионов писем в день
Слайд 3Rambler Mail сегодня
Мобильная и Wap версии
Автосборщик почты
Неограниченное количество почтовых
доменов
16 видов оформления на любой вкус
Умная адресная книга
Иконки сервисов
Слайд 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
Слайд 5MySQL
Master-slave репликация
“Дерево” slave серверов
Разнесение данных по серверам и
таблицам
Денормализация данных
Только необходимые индексы в таблице
Слайд 8Apache + mod_perl
OO Perl – хорошо или плохо?
ORM – зло,
которое следует избегать
SQL Proxy – решение проблем с нагрузкой БД
Прозрачное кэширование данных
Быстрый шаблонизатор – CTPP
Почему не FastCGI?
Слайд 9OO Perl
Увеличение скорости разработки
Сепарация сущностей
Более прозрачный код в большом
проекте
Медленнее скорость работы
Выше требования к памяти
Нужны квалифицированные разработчики
Слайд 10ORM
Полный цикл разработки с ORM – дороже
Простые вещи с ORM
делаются просто, сложные – не делаются вовсе
Много памяти, много кода, много черной магии
Сложность оптимизации запросов и вообще любой отладки
ORM – это дорогой вариант sprintf
Слайд 11SQL Proxy
Много входящих подключений, мало исходящих
Универсальный интерфейс - JSON
Простота
использования
Поддержка Oracle, PostgreSQL, MySQL
Слайд 12Кэширование
Memcached
Драйвер -> Кэш -> Интерфейс
Кэшировать объекты или нет?
Слайд 14Шаблонизатор
CTPP 2.5.X
Встроенные функции на все случаи жизни
Самый быстрый шаблонизатор
для Perl
Интерфейсы для С, С++, PHP, Perl и Python
Простота верстки
Моментальная выкатка шаблонов
Слайд 15Тесты
http://ctpp.havoc.ru/template_benchmarks.html
Слайд 16Postfix + Dovecot
MX = Mail eXchanger
Milter API <-> ClamAv +
RspamD
Patches, patches, patches…
Dovecot
Хранение писем: Mailbox