• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
«Хайлоад в рассылке почты: как спать спокойно»
 

«Хайлоад в рассылке почты: как спать спокойно»

on

  • 432 views

Андрей Сас, Email Product Manager, Badoo

Андрей Сас, Email Product Manager, Badoo

Выступление на hpc4.itmozg.ru (25 апреля, Санкт-Петербург)

Statistics

Views

Total Views
432
Views on SlideShare
432
Embed Views
0

Actions

Likes
1
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    «Хайлоад в рассылке почты: как спать спокойно» «Хайлоад в рассылке почты: как спать спокойно» Presentation Transcript

    • Хайлоад в рассылкепочты: как спатьспокойноСас Андрей,делаю почтовые рассылки в Badoo
    • А кто говорит?
    • А кто говорит?Я:•руковожу развитием почтовой рассылки, могу знать невсе детали;
    • А кто говорит?Я:•руковожу развитием почтовой рассылки, могу знать невсе детали;•не админ (извините!).
    • А кто говорит?Я:•руковожу развитием почтовой рассылки, могу знать невсе детали;•не админ (извините!).Хвастаюсь:•год без пролёжек почтовой инфраструктуры;
    • А кто говорит?Я:•руковожу развитием почтовой рассылки, могу знать невсе детали;•не админ (извините!).Хвастаюсь:•год без пролёжек почтовой инфраструктуры;•97% доставки в инбокс;
    • А кто говорит?Я:•руковожу развитием почтовой рассылки, могу знать невсе детали;•не админ (извините!).Хвастаюсь:•год без пролёжек почтовой инфраструктуры;•97% доставки в инбокс;•среднее время доставки почты – 15 с.
    • О чём будурассказывать?
    • О чём будурассказывать?А как люди отправляют почту?
    • О чём будурассказывать?Как отправлять много-много писем,быть уверенным в себеи спать по ночам спокойно
    • Бизнес-задачи1. Предоставить прозрачный API программистам.2. Обеспечить отправку почты в объёмах до 150Мписем в день.3. Обеспечить доставку почты во «Входящие» в 95%+случаев.
    • О чём НЕ будурассказывать?Как сделать так, чтобы ваши письмане попадали в Spam
    • А что в этом сложного?Казалось бы:•поднял MTA (mail transfer agent)•сделал mail()•...•PROFIT!
    • А что в этом сложного?Казалось бы:•поднял MTA (mail transfer agent)•сделал mail()Однако:•отправка 1 письма = обработка 1 динамического хита
    • А что в этом сложного?Казалось бы:•поднял MTA (mail transfer agent)•сделал mail()Однако:•отправка 1 письма = обработка 1 динамического хита•а ведь письма ещё нужно сгенерировать
    • А что в этом сложного?Казалось бы:•поднял MTA (mail transfer agent)•сделал mail()Однако:•отправка 1 письма = обработка 1 динамического хита•а ведь письма ещё нужно сгенерировать•смелость пойти и узнать правду!!1111
    • Откуда взялась цифра150М?• 50М – каждый день• 70М – в пике• 100М – просто красивая цифра• 150М – «пасаны ваще ребята. молодцы, могёте!»
    • Особенности большихпроектовНаши мантры:• нужно отправлять письма асинхронно
    • Особенности большихпроектовНаши мантры:• нужно отправлять письма асинхронно• по-настоящему (вдвойне) асинхронно!
    • Особенности большихпроектовНаши мантры:• нужно отправлять письма асинхронно• по-настоящему (вдвойне) асинхронно!• требуется балансировка между серверами
    • Порядок отправкиписьма1.Появляется необходимость создать письмо.2.Постановка в очередь на создание письма.3.Генерация письма по задачам из очереди насоздание.4.Постановка в очередь на отправку.5.Отсылка письма из очереди на отправку.
    • Очередь на отправкуНаша реализация – на файлах. Преимущества:1.Возможна работа без внешних сервисов.2.Простота манипулирования письмами.3.Легко получить статистику / логи.4.Просто реализуются многократные попытки отправки.
    • SSMTP вместо sendmailЭто SMTP-клиент, эмулирующий работу sendmail.Нам он нравится, т.к.:•ничего лишнего, только отсылает письмо в MTA (hub)•супер простой конфиг•мы его слегка допилили (таймауты + параметры)
    • Балансировка междуMTAПервая версия – на базе железки F5 LTM:•weighted round robin•SMTP мониторингТекущая реализация – скрипты на PHP + мониторинг отF5 LTM:•автоматическое управление всей балансировкой•красивый веб-интерфейс•скрипач (админ) не нужен!
    • Автоматизация приотправкеХорошее место, чтобы делать добрые дела:•подставлять:• параметры для авторизации в ссылки• параметры для статистики в ссылки• картинки для мониторинга открытий• технические заголовки•проверять целостность и корректность письма•и даже тестировать работоспособность ссылок!
    • Железо почтовогокластера
    • Как тюнить MTA?• оптимизировать файловую систему (noatime)• увеличить число SMTP воркеров• увеличить число DNS воркеров• поставить локальный кэшер DNS-запросов (unbound)• раскладывать очередь по большому числудиректорий• увеличить лимиты на число соединений к одному MXсерверу• выставить лимиты на число писем в сессии
    • Наши MTAИсторически – Communigate Pro:•надёжный•ОЧЕНЬ быстрыйДля «проблемных» почтовых сервисов – Postfix:•более конфигурируемый•есть возможность доработать напильником
    • Хм, Communigate Pro?..Но ведь есть Postfix, Exim,Hurricane, Message Systems, Zrinityи даже Exchange!
    • Корпоративныйкомбайн•Email – первоначальный, основной продукт•Calendaring•VoIP•IM•File storage•IP PBX•Presence
    • А кто им пользуется?
    • Однако, цифрыНа старой машине с 1 диском SCSI 10k:•5 миллионов писем в сутки•до 100 писем в секунду в пике
    • Общее ощущение+ чрезвычайно стабилен, вплоть до LA = 200 и очередив 1М писем+ высокая производительность отправки писем+ не требователен к памяти и CPU+ достаточно настроек для большинства проектов* платный– нет возможности менять настройки для разныхпочтовиков– нет возможности допилить самим– проблемы с выводом некоторых видов статистики
    • Статистика имониторингПока не измеряешь – не контролируешь.Что было в начале?•графики по числу писем в очереди на каждомпочтовике•сколько каких писем отправили за сутки•статистика по LA / CPU usage / Memory usage в Zabbix
    • Чего не хватало большевсего?1. Число файлов, ожидающих отправки в MTA2. Среднее время отправки письма в MTA3. Среднее время доставки почты во внешниепочтовые сервисыА также:• число ошибок отправки писем в MTA• самые загруженные отправкой почты скриптовыемашины
    • Как реализовали?Число файлов, ожидающих отправки в MTA:• просто считаем файлы! Число ошибок отправки в MTA:• просто считаем файлы! Самые загруженные отправкой почты скриптовыемашины:• лог в MySQL
    • Как реализовали?Среднее время отправки в MTA:• время отправки письма минус время созданияСреднее время доставки почты во внешние почтовыесервис:• парсим логи MTA• хитрая агрегационная структура (highload!!1111)
    • Зачем так много?
    • Dashboard нас спасёт?1. Несколько dashboard’ов.2. Даже dashboard’ы стали слишком сложными.3. Детектировать аномалии даже на менее значимыхграфиках автоматически.
    • 1984
    • И что же нового?С осени 2011 года поменялось:•Название! •1 -> 2,5 года без пролёжек почтовой инфраструктуры;•97% -> 98% inbox placement rate•Мониторинг лендинга на мобильных версиях•Лечение от single point of failure (SPoF)
    • И что же нового?С осени 2011 года поменялось:•тегирование ссылок для Google Analytics (легко!)•выгрузка данных в систему business intelligence (BI)•API для A/B тестирования
    • Выводы1. Быть гуру не надо, достаточно хотеть разобраться.2. Правильная архитектура без мониторинга не спасёт.3. Внезапно: отправка почты – тоже highload!4. Не стойте на месте, развивайте почту, если она длявас важна.5. …6. PROFIT!!!
    • Ваши вопросы ** Кроме вопросов о том, какмы доставляемся в Inbox