advertisement

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

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

Published on May 21, 2013

Author: BadooDev

Source: slideshare.net

Description

E-mail рассылки – это один из самых важных каналов связи с пользователями для большинства веб-сервисов. С их помощью уведомляют о новых событиях, предлагают продукцию и выставляют счета. Поэтому трудно переоценить значимость правильного решения проблем отправки и доставки почты в крупном проекте.
Положительный опыт решения таких задач есть у компании "Badoo", которая ежедневно рассылает десятки миллионов писем своим пользователям. В докладе будет освещена техническая сторона отправки больших объёмов почты и рассказано о конкретной реализации почтового кластера проекта, системы генерации и отсылки почты, метриках качества и мониторинге, применяемом в "Badoo".
Целевая аудитория:
Разработчики сайтов, активно использующих e-mail как канал связи с пользователями., т.е. практически все веб-разработчики.
advertisement

Хайлоад в рассылкепочты: как спатьспокойноСас Андрей,делаю почтовые рассылки в 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

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Ruslan Markelov - Google+

Ruslan Markelov - Живу и ... Shared publicly - 2013-11-13 . ... Доклад Андрея Саса на конференции HPC 2013.
Read more

#HPC — High Performance Conference ...

#HPC — High Performance ... «Хайлоад в рассылке почты: как спать спокойно ... на освещении ...
Read more

python по русски

... (Автор funcy, cacheops), Андрей Светлов ... (45-50 мин. на доклад + 10-15 мин. на ... HPC software developer, Gero. ...
Read more

Xakep 08 2013 by smotri.kachay.ru - issuu

... Xakep 08 2013, Author ... сделать атаки на HPC и прочие фаззинги ... на конференции ...
Read more

Доклад Константина Осипова на ...

Доклад Алексея Рыбака на конференции Whalerider 2013. ... Доклад Андрея Саса ... на Zabbix ...
Read more

"Приём платежей в Badoo - взгляд ...

Доклад Анатолия ... Доклад Алексея Рыбака на конференции Whalerider 2013. ... Андрей ...
Read more

Алексей Рагозин и Артём Панасюк ...

На очередной ... участникам конференции ... от Андрея Когуня. Доклад состоял из ...
Read more

Х813 by Royse - issuu

БЕЗУМНЫЕ СОБЫТИЯ ИЗ МИРА open source 114 08(175) 2013. oauth 2 И ЕГО ...
Read more