SlideShare a Scribd company logo
Хайлоад в рассылке
почты: как спать
спокойно
Сас Андрей,
делаю почтовые рассылки в Badoo
А кто говорит?
А кто говорит?
Я:
•руковожу развитием почтовой рассылки, могу знать не
все детали;
А кто говорит?
Я:
•руковожу развитием почтовой рассылки, могу знать не
все детали;
•не админ (извините!).
А кто говорит?
Я:
•руковожу развитием почтовой рассылки, могу знать не
все детали;
•не админ (извините!).
Хвастаюсь:
•год без пролёжек почтовой инфраструктуры;
А кто говорит?
Я:
•руковожу развитием почтовой рассылки, могу знать не
все детали;
•не админ (извините!).
Хвастаюсь:
•год без пролёжек почтовой инфраструктуры;
•97% доставки в инбокс;
А кто говорит?
Я:
•руковожу развитием почтовой рассылки, могу знать не
все детали;
•не админ (извините!).
Хвастаюсь:
•год без пролёжек почтовой инфраструктуры;
•97% доставки в инбокс;
•среднее время доставки почты – 15 с.
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
О чём буду
рассказывать?
О чём буду
рассказывать?
А как люди отправляют почту?
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
О чём буду
рассказывать?
Как отправлять много-много писем,
быть уверенным в себе
и спать по ночам спокойно
Бизнес-задачи
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
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
Чего не хватало больше
всего?
1. Число файлов, ожидающих отправки в MTA
2. Среднее время отправки письма в MTA
3. Среднее время доставки почты во внешние
почтовые сервисы
А также:
• число ошибок отправки писем в MTA
• самые загруженные отправкой почты скриптовые
машины
Как реализовали?
Число файлов, ожидающих отправки в MTA:
• просто считаем файлы! 
Число ошибок отправки в MTA:
• просто считаем файлы! 
Самые загруженные отправкой почты скриптовые
машины:
• лог в MySQL
Как реализовали?
Среднее время отправки в MTA:
• время отправки письма минус время создания
Среднее время доставки почты во внешние почтовые
сервис:
• парсим логи MTA
• хитрая агрегационная структура (highload!!1111)
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
Зачем так много?
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
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".
Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".

More Related Content

PDF
Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Анд...
PPTX
Впервые в Рунете: сказ о 100М писем в день (Андрей Сас)
PPTX
Хайлоад в рассылке почты: как спать спокойно
PDF
Почта в интернет-проекте: инфраструктура, статистика, мониторинг
PPT
CodeFest 2012. Сас А. — Как слать 100М писем каждый день
PDF
Брокер сообщений Kafka в условиях повышенной нагрузки
PDF
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
PDF
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Анд...
Впервые в Рунете: сказ о 100М писем в день (Андрей Сас)
Хайлоад в рассылке почты: как спать спокойно
Почта в интернет-проекте: инфраструктура, статистика, мониторинг
CodeFest 2012. Сас А. — Как слать 100М писем каждый день
Брокер сообщений Kafka в условиях повышенной нагрузки
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...

What's hot (20)

PDF
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
PDF
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
PDF
Практическая реализация распределенного отказоустойчивого Comet сервера на Er...
PDF
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
PDF
Высоконагруженная отправка push-уведомлений / Алексей Акулович
PPTX
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
PDF
Javascript-фреймворки:
 должен остаться только один
PDF
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
PDF
SECON'2016. Васильков Василий, Серверное программирование сегодня
PPT
Hl++2009 Ayakovlev Pochta
PPTX
Дмитрий Главацкий, CDNvideo: "Ускорение сайта как способ повысить конверсию"
PDF
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
PDF
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
PDF
PDF
Golang в avito
PPTX
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
PDF
Ровная балансировка нагрузки на фронтенд-кластере
PPTX
CDNvideo: ускорение сайтов
PDF
OSSDEV-2015: ReOpenLDAP
PDF
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
Практическая реализация распределенного отказоустойчивого Comet сервера на Er...
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Высоконагруженная отправка push-уведомлений / Алексей Акулович
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Javascript-фреймворки:
 должен остаться только один
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
SECON'2016. Васильков Василий, Серверное программирование сегодня
Hl++2009 Ayakovlev Pochta
Дмитрий Главацкий, CDNvideo: "Ускорение сайта как способ повысить конверсию"
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Golang в avito
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Ровная балансировка нагрузки на фронтенд-кластере
CDNvideo: ускорение сайтов
OSSDEV-2015: ReOpenLDAP
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Ad

Viewers also liked (13)

PDF
Session 69 Christian Udin
PPT
Hale kula climate stewards presentation 07.12
DOC
Nota danza macabra a.m.
PPTX
Getting your message heard bonnie zink
PPTX
Leading media advertising agency global advertisers
PPTX
Leading ooh media global advertisers
PPTX
Leading advertising agency in india global advertisers
PPTX
EAS321 Unit 3 seminar slides
PDF
PDF
Novel Analysis of Mono Basin using ArcGIS
PDF
Wipro Infrastructure Engineering Company Presentation - July, 2015
PPTX
Glossary Email Marketing
PDF
Public Health Group Meeting Minutes, 2015 EAHIL Edinburgh
Session 69 Christian Udin
Hale kula climate stewards presentation 07.12
Nota danza macabra a.m.
Getting your message heard bonnie zink
Leading media advertising agency global advertisers
Leading ooh media global advertisers
Leading advertising agency in india global advertisers
EAS321 Unit 3 seminar slides
Novel Analysis of Mono Basin using ArcGIS
Wipro Infrastructure Engineering Company Presentation - July, 2015
Glossary Email Marketing
Public Health Group Meeting Minutes, 2015 EAHIL Edinburgh
Ad

Similar to Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно". (20)

PDF
Интернет-бизнес Как повысить доставляемость вашей email-рассылки (email-рассы...
PDF
Алексей Лебедев (Wamba)
PDF
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
PDF
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
PPTX
Редактор Mail.ru, или скорочтение за полчаса, Павел Зиновкин (Mail.Ru)
PDF
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
PDF
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
PPTX
Почему почта не работает
PPT
презентация 3
PDF
Zabbix в badoo, от lld к super discovery
PDF
Андрей Сас (Badoo)
PDF
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
PDF
Загрузка больших объемов данных для бизнес-аналитики
PDF
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
PPT
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
PDF
Техническая реализация директ-мэйла вступление
PPTX
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
PPTX
Жизнь проекта на production
PDF
Барнаул15
PPTX
Шок и трепет: e-mail консалтинг.(Андрей Сас)
Интернет-бизнес Как повысить доставляемость вашей email-рассылки (email-рассы...
Алексей Лебедев (Wamba)
Badoo Desktop: оптимизация приложения на миллион юзеров онлайн
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Редактор Mail.ru, или скорочтение за полчаса, Павел Зиновкин (Mail.Ru)
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
Почему почта не работает
презентация 3
Zabbix в badoo, от lld к super discovery
Андрей Сас (Badoo)
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
Загрузка больших объемов данных для бизнес-аналитики
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
Техническая реализация директ-мэйла вступление
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production
Барнаул15
Шок и трепет: e-mail консалтинг.(Андрей Сас)

More from Badoo Development (20)

PDF
Viktar Karanevich – iOS Parallel Automation
PDF
Как мы делаем модули PHP в Badoo – Антон Довгаль
PDF
Григорий Джанелидзе, OK.RU
PPTX
Андрей Сидоров, Яндекс.Браузер
PDF
Филипп Уваров, Avito
PDF
Cocoaheads Meetup / Alex Zimin / Swift magic
PDF
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
PDF
Alex Krasheninnikov – Hadoop High Availability
PDF
Андрей Денисов – В ожидании мониторинга баз данных
PDF
Александр Зобнин, Grafana Labs
PPTX
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
PDF
TechLeads meetup: Алексей Рыбак, Badoo
PPTX
TechLeads meetup: Евгений Потапов, ITSumma
PDF
TechLeads meetup: Макс Лапшин, Erlyvideo
PDF
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
PPTX
Как мы готовим MySQL
PPTX
Архитектура хранения и отдачи фотографий в Badoo
PDF
5 способов деплоя PHP-кода в условиях хайлоада
PDF
ChromeDriver Jailbreak
PDF
Git хуки на страже качества кода
Viktar Karanevich – iOS Parallel Automation
Как мы делаем модули PHP в Badoo – Антон Довгаль
Григорий Джанелидзе, OK.RU
Андрей Сидоров, Яндекс.Браузер
Филипп Уваров, Avito
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
Alex Krasheninnikov – Hadoop High Availability
Андрей Денисов – В ожидании мониторинга баз данных
Александр Зобнин, Grafana Labs
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Макс Лапшин, Erlyvideo
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Как мы готовим MySQL
Архитектура хранения и отдачи фотографий в Badoo
5 способов деплоя PHP-кода в условиях хайлоада
ChromeDriver Jailbreak
Git хуки на страже качества кода

Доклад Андрея Саса на конференции HPC 2013. "Хайлоад в рассылке почты: как спать спокойно".

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