Как научить почтовый сервер Exim под нагрузкой 1 000 000 писем/мин. переживать отказ ЦОД без простоя с помощью FUSE и Tarantool, а также развернуть такую систему в K8s

Архитектуры и масштабируемость

C/C++
Электронная почта
Tarantool
Отказоустойчивость
Распределенные системы
Поддержка и развитие legacy систем
Надёжность продакшена
Расширение кругозора

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Мы в целом научились делать отказоустойчивые и распределенные системы. В любом типе систем есть свои особенности. В докладе вы заглянете под капот почтового сервера Exim и вместе с докладчиком пройдете путь создания отказоустойчивой распределенной системы, работающей под большой нагрузкой.

Целевая аудитория

* Backend-разработчики stateful-приложений ≥ Middle. * SRE stateful-приложения ≥ Middle.

Тезисы

В Почте Mail.ru стояла задача: научить бэкенд на основе почтового сервера Exim с нагрузкой 1 000 000 писем/мин. переживать отказ ЦОД без простоя и потери писем. Основная сложность была в том, что почтовый сервер использует локальный диск для хранения очереди писем в процессе доставки.

Для решения проблемы мы построили отказоустойчивую распределённую очередь на основе Tarantool и in-house объектного хранилища. Чтобы не менять логику почтового сервера, мы написали свою файловую систему в userspace на Tarantool и FUSE, которая инкапсулирует взаимодействие с распределенной очередью.

В своем докладе я покажу, как на уровне архитектуры очереди мы гарантируем отсутствие потерь писем, покажу Tarantool с новой стороны — как движок для реализации асинхронных приложений на C, немного расскажу о базовых концепциях файловых систем и поделюсь опытом эксплуатации FUSE в K8s на продакшне.

Работает в Mail.ru над инфраструктурой доставки электронной почты 5 лет, за это время прошёл путь от стажёра на полставки до ведущего программиста. Последние 3 года занимается проектом распределённой почтовой очереди.

Работает, в основном, на чистом C и на Lua под Tarantool, реже на Go. Любит хардкорную низкоуровневую разработку и хайлоад — сложные задачи всегда интереснее простых.

VK, Mail.ru

VK — это более 200 технологичных проектов, свыше 11 000 сотрудников и более 20 лет опыта создания высоконагруженных интернет-сервисов. ВКонтакте, Одноклассники, VK Cloud, Дзен, Маруся, VK Play — это лишь часть продуктов VK, которыми ежедневно пользуются миллионы людей по всей стране.

Видео

Другие доклады секции

Архитектуры и масштабируемость