Как слать 100М писем каждый день - секреты...
-
Upload
andrey-sas -
Category
Technology
-
view
414 -
download
4
description
Transcript of Как слать 100М писем каждый день - секреты...
![Page 1: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/1.jpg)
Как слать 100М писем каждый день (и спать спокойно)
Сас Андрей, Badoo
![Page 2: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/2.jpg)
А кто говорит?
![Page 3: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/3.jpg)
А кто говорит?
Я: • руковожу развитием почтовой рассылки, могу знать не все детали;
![Page 4: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/4.jpg)
А кто говорит?
Я: • руковожу развитием почтовой рассылки, могу знать не все детали;
• не админ (извините!).
![Page 5: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/5.jpg)
А кто говорит?
Я: • руковожу развитием почтовой рассылки, могу знать не все детали;
• не админ (извините!).
Хвастаюсь: • год без пролёжек почтовой инфраструктуры;
![Page 6: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/6.jpg)
А кто говорит?
Я: • руковожу развитием почтовой рассылки, могу знать не все детали;
• не админ (извините!).
Хвастаюсь: • год без пролёжек почтовой инфраструктуры; • 97% доставки в инбокс;
![Page 7: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/7.jpg)
А кто говорит?
Я: • руковожу развитием почтовой рассылки, могу знать не все детали;
• не админ (извините!).
Хвастаюсь: • год без пролёжек почтовой инфраструктуры; • 97% доставки в инбокс; • среднее время доставки почты – 25 с.
![Page 8: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/8.jpg)
![Page 9: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/9.jpg)
О чём буду рассказывать?
![Page 10: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/10.jpg)
О чём буду рассказывать?
А как люди отправляют почту?
![Page 11: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/11.jpg)
![Page 12: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/12.jpg)
О чём буду рассказывать?
Как отправлять много-много писем, быть уверенным в себе и спать по ночам спокойно
![Page 13: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/13.jpg)
Бизнес-задачи
1. Предоставить прозрачный API программистам. 2. Обеспечить отправку почты в объёмах до 100М писем в день.
3. Обеспечить доставку почты в инбоксы в 95%+ случаев.
![Page 14: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/14.jpg)
О чём НЕ буду рассказывать?
Как сделать так, чтобы ваши письма не попадали в Spam
![Page 15: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/15.jpg)
А что в этом сложного?
Казалось бы: • поднял MTA • сделал mail() • ... • PROFIT!
![Page 16: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/16.jpg)
А что в этом сложного?
Казалось бы: • поднял MTA • сделал mail()
Однако: • отправка 1 письма = обработка 1 динамического хита
![Page 17: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/17.jpg)
А что в этом сложного?
Казалось бы: • поднял MTA • сделал mail()
Однако: • отправка 1 письма = обработка 1 динамического хита • а ведь письма ещё нужно сгенерить
![Page 18: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/18.jpg)
А что в этом сложного?
Казалось бы: • поднял MTA • сделал mail()
Однако: • отправка 1 письма = обработка 1 динамического хита • а ведь письма ещё нужно сгенерить • смелость пойти и узнать правду!!1111
![Page 19: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/19.jpg)
Откуда взялась цифра 100М?
• 50М – каждый день • 70М – в пике • 100М – просто красивая цифра • 150М – «пасаны ваще ребята. молодцы, могёте!»
![Page 20: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/20.jpg)
Особенности больших проектов
Наши мантры: • нужно отправлять письма асинхронно
![Page 21: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/21.jpg)
Особенности больших проектов
Наши мантры: • нужно отправлять письма асинхронно • по-настоящему (вдвойне) асинхронно!
![Page 22: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/22.jpg)
Особенности больших проектов
Наши мантры: • нужно отправлять письма асинхронно • по-настоящему (вдвойне) асинхронно! • требуется балансировка между серверами
![Page 23: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/23.jpg)
Порядок отправки письма
1. Появляется необходимость создать письмо. 2. Постановка в очередь на создание письма. 3. Генерация письма по задачам из очереди на создание.
4. Постановка в очередь на отправку. 5. Отсылка письма из очереди на отправку.
![Page 24: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/24.jpg)
Очередь на отправку
Наша реализация – на файлах. Преимущества: 1. Возможна работа без внешних сервисов. 2. Простота манипулирования письмами. 3. Легко получить статистику / логи. 4. Просто реализуются многократные попытки отправки.
![Page 25: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/25.jpg)
SSMTP вместо sendmail
Это SMTP-клиент, эмулирующий работу sendmail.
Нам он нравится, т.к.: • ничего лишнего, только отсылает письмо в MTA (hub) • супер простой конфиг • мы его слегка допилили (таймауты + параметры)
![Page 26: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/26.jpg)
Балансировка между MTA
Первая версия – на базе железки F5 LTM: • weighted round robin • SMTP мониторинг
Текущая реализация – скрипты на PHP + мониторинг от F5 LTM: • автоматическое управление всей балансировкой • красивый веб-интерфейс • скрипач (админ) не нужен!
![Page 27: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/27.jpg)
Автоматизация при отправке
Хорошее место, чтобы делать добрые дела: • подстановку мониторинговых параметров в ссылки • подстановку картинок для мониторинга открытий • проверку целостности и корректности письма • подстановку технических заголовков • и даже проверку работоспособности ссылок!
![Page 28: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/28.jpg)
Железо почтового кластера
Кластер – это по 12 машин на каждой из площадок: • 10 отправляющих • 2 принимающих
Важна только дисковая подсистема: • in memory решения не пробуем, не хотим терять письма
• штатно 4 x SAS 10k в RAID 1+0, плюс контроллер с «батарейкой»
• для тестов 4 x SSD в RAID 5
![Page 29: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/29.jpg)
Как тюнить MTA?
• оптимизировать файловую систему • увеличить число SMTP воркеров • увеличить число DNS воркеров • поставить локальный кэшер DNS-запросов • раскладывать очередь по большому числу директорий
• увеличить лимиты на число соединений к одному MX серверу
• выставить лимиты на число писем в сессии
![Page 30: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/30.jpg)
Наши MTA
Исторически – Communigate Pro: • надёжный • ОЧЕНЬ быстрый Для «проблемных» почтовых сервисов – Postfix: • более конфигурируемый • есть возможность доработать напильником
![Page 31: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/31.jpg)
Хм, Communigate Pro?..
Но ведь есть Postfix, Exim, Hurricane, Message Systems, Zrinity
и даже Exchange!
![Page 32: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/32.jpg)
Корпоративный комбайн
• Email – первоначальный, основной продукт • Calendaring • VoIP • IM • File storage • IP PBX • Presence
![Page 33: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/33.jpg)
А кто им пользуется?
![Page 34: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/34.jpg)
Однако, цифры
На старой машине с 1 диском SCSI 10k: • 5 миллионов писем в сутки • до 100 писем в секунду в пике
![Page 35: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/35.jpg)
Общее ощущение
+ чрезвычайно стабилен, вплоть до LA = 200 и очереди в 1М писем + высокая производительность отправки писем + не требователен к памяти и CPU + достаточно настроек для большинства проектов * платный – нет возможности менять настройки для разных почтовиков – нет возможности допилить самим – проблемы с выводом некоторых видов статистики
![Page 36: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/36.jpg)
Статистика и мониторинг
Пока не измеряешь – не контролируешь. Что было в начале? • графики по числу писем в очереди на каждом почтовике
• сколько каких писем отправили за сутки • статистика по LA / CPU usage / Memory usage в
Zabbix
![Page 37: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/37.jpg)
![Page 38: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/38.jpg)
Чего не хватало больше всего?
• число файлов, ожидающих отправки в MTA • число ошибок отправки писем в MTA • среднее время отправки письма в MTA • самые загруженные отправкой почты скриптовые машины
• среднее время доставки почты в отдельный почтовый сервис
![Page 39: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/39.jpg)
Как реализовали?
Число файлов, ожидающих отправки в MTA: • просто считаем файлы! J Число ошибок отправки в MTA: • просто считаем файлы! J Самые загруженные отправкой почты скриптовые машины: • лог в MySQL
![Page 40: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/40.jpg)
Как реализовали?
Среднее время отправки в MTA: • PINBA – наш собственный сервис мониторинга Среднее время доставки почты в отдельный почтовый сервис: • парсим логи MTA • хитрая агрегационная структура (highload!!1111)
![Page 41: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/41.jpg)
![Page 42: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/42.jpg)
![Page 43: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/43.jpg)
![Page 44: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/44.jpg)
![Page 45: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/45.jpg)
![Page 46: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/46.jpg)
![Page 47: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/47.jpg)
Зачем так много?
![Page 48: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/48.jpg)
Dashboard нас спасёт?
1. Несколько dashboard’ов. 2. Даже dashboard’ы стали слишком сложными. 3. Детектировать аномалии даже на менее значимых графиках автоматически.
![Page 49: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/49.jpg)
1984
1. Отправленные: • email id • IP • type • language • timestamp • source host
2. Клики / открытия: • email id • timestamp
3. Входящие: • type • timestamp
![Page 50: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/50.jpg)
Выводы
1. Быть гуру не надо, достаточно хотеть разобраться. 2. Правильная архитектура без мониторинга не спасёт. 3. Внезапно: отправка почты – тоже highload! 4. … 5. PROFIT!!!
![Page 51: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/51.jpg)
Ваши вопросы *
* Кроме вопросов о том, как мы доставляемся в Inbox
![Page 52: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/52.jpg)
![Page 53: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/53.jpg)
![Page 54: Как слать 100М писем каждый день - секреты емейл-рассылок компании Badoo (Андрей Сас)](https://reader031.fdocument.pub/reader031/viewer/2022020110/5594aa711a28ab6a728b4651/html5/thumbnails/54.jpg)