Миллиард отправок в неделю и 730 тысяч запросов в минуту. Как справляемся с ежегодным удвоением и не унываем

Александр Горник
Александр Горник,
CEO
Четвертый ежегодный отчет о развитии разработки Mindbox по итогам черной пятницы — недели максимальной нагрузки.
Маркетинговая CDP — это не только коммуникации, приносящие значимую долю выручки, но и механики реального времени: расчет чеков, персонализация мобильных приложений и сайтов. Mindbox задуман и всё чаще работает как центральная back-end система бизнеса, интегрирующая другие. Так, например, выглядит схема интеграций одного из давних и продвинутых клиентов:
График
Поэтому клиентам важно понимать, можно ли на нас положиться сегодня и в будущем. Ниже приглашаю прочитать:
— как справляемся с надежностью при росте нагрузке (кажется, неплохо);
— что для этого уже сделали;
— что будем делать дальше: планы по технике и продукту.

Резюме: положительный тренд продолжается

Шестой год подряд наша нагрузка удваивается. В 2021-м за ноябрь обработали более 15 млрд запросов к API и сделали больше миллиарда отправок.
Приятно наблюдать, что при удвоении нагрузки рассылки перестали удваиваться, а количество email упало. Значит, клиенты стараются не спамить: делают более персонализированный маркетинг в большем количестве каналов. Думаю, скоро и рост пушей нормализуется. Mindbox — инструмент для заработка качеством, не количеством.
Картинка
Количество запросов к API в месяц
Картинка
Рассылки в неделю черной пятницы
В 2018 и 2019 годах мы справлялись с ростом плохо. В прошлом году я сделал смелый вывод: справляться с ростом мы научились. Выглядит так, что был прав.
Метрики показывают: ноябрь 21-го — лучший месяц за историю наблюдений, несмотря на максимальную нагрузку. В черную пятницу жалоб даже от крупных клиентов практически не было. Сбоев не только становится меньше — почти все из них мы обнаруживаем быстро, а значит, время недоступности для клиентов сокращается.
К сожалению, в декабре ситуация несколько ухудшилась, случилось несколько общих отказов из-за того, что мы не успели научиться автоматически переключаться между резервными зонами облака при отказе одной из них. Подняли приоритет этой задаче. Прогнозирую, что на общий тренд повышения надежности это не повлияет.

Нарушений внутреннего SLA у среднего клиента в месяц

SLA
Для этого в 2021-м удалось реализовать большинство планов — дальше подробности.

Сделали за год

Техническое

Большую часть задуманного в прошлом году сделать удалось.
Из сюрпризов: добиться надежности вместе с нужной производительностью за счет переезда в облако не получилось, пришлось развернуть собственный кластер Kubernetes.
Также отказались от Clickhouse, потому что не получилось одной базой решить две задачи: 1) собирать статистику для отчетов, например сколько каких переходов на сайт за день было; 2) когда идентифицируем человека, переносить все данные по его переходам в другой микросервис. Для первой Clickhouse хорошо приспособлен, а со второй пришлось справляться за счет батчинга и других ухищрений. Но, так как нагрузка быстро растет, перестали справляться и отказались.
— Перевели более половины приложения на .NET Core в k8s и Yandex.Cloud.
— Включили автобалансировку процессов фоновой загрузки.
— Развернули собственный кластер k8s и перевели основную нагрузку туда.
— Уточнили и детализировали SLA: покрыли большее количество сценариев.
— Заменили ненадежные компоненты, внедрили Cassandra и Kafka где необходимо.
— Выделили из монолита ряд изолированных сервисов, в том числе сценарии.
— Начали выкатывать фичи на новой архитектуре микрофронтендов.
— Сделали канареечную выкладку микросервисов с быстрыми rollback.
Наш доклад про распил монолита и перенос в облако вызвал большой интерес на dotNext — ждите, скоро будет доступен в нашем блоге на Хабре.

Люди и процессы

Децентрализация с общими процессами контроля качества, автоматический SLA, ответственность техлидов и архитекторов за надежность, роли SRE и дежурства — всё это оправдало себя. Подробнее — в статье на Хабре или в записи моего выступления с Agile Days 2021. В 2021-м это масштабировали:
— Повысили среднюю ЗП в разработке на 30% до 201 тыс. рублей в месяц.
— Школа разработчиков выпустила 13 начинающих разработчиков.
— Наняли 54 человека. Всего в R&D 89 человек, в том числе 55 C#-разработчиков и 7 SRE.
— Сформулировали роль инженерного менеджера как ответственного за найм и достижение целей команды.
В результате оценка на «Хабр-карьере» улучшилась, анонимные квартальные опросы (тексты с тех пор улучшились, но суть опроса не поменялась) также показывают позитивную динамику. Отдельно радует 51% eNPS: это не предел мечтаний, но очень неплохо относительно других компаний, в том числе западных.

Разработчики. Награда

Награда

Разработчики. Перегруз

Перегруз

Разработчики. NPS

Разработчики. NPS
По шкале от 1 до 10 насколько вероятно, что порекомендуешь Mindbox как место работы?

Дальнейшие планы

Продолжим пересобирать мотор на ходу, но теперь — увеличивая скорость. Благодаря инвестициям за пару лет удвоим разработку, чтобы одновременно ускорить и продукт, и технику:
— Продолжим держать зарплаты в 75–90-м процентиле по рынку.
— Наймем до 80 человек, в том числе 40 С#-разработчиков, сохраняя высокую планку.
— Увеличим количество команд с 13 до 19, в том числе создадим третью платформенную.
— Удвоим количество продактов и аналитиков (+10) и будем развивать продуктовую аналитику.
— В разы увеличим количество frontend-разработчиков.
— Сконцентрируемся на повышении эффективности команд и достижении целей за счет обучения инженерных менеджеров, техлидов и продуктов. На это направлена широкая опционная программа.

Технические планы:

— Завершить переход на .NET 6 и k8s без Windows-машин.
— Регулярные тренировки по надежности и типовым отказам.
— Детализировать SLA, в том числе на скорость отправки и каскады.
— Ввести квоты и быстрее коммуницировать границы доступности.
— Ускорить отправку рассылок во всех каналах за счет смены legacy схемы данных.
— Развертывание во втором дата-центре на Западе (не облаке).
— Завершить разработку Datamesh и системы аналитики, не зависящей от монолита. За счет этого уменьшить объемы хранения операционных данных и нагрузку на CDP.
— Мигрировать ключевые страницы административной панели на архитектуру микрофронтендов для ускорения разработки.
— Частично вынести сервисы лояльности из монолита.
— Начать миграцию монолита на EF Core и движение в сторону Postgre.

Планы по безопасности:

— Получим сертификат ISO/IEC 27001.
— Обновим соответствие ФЗ 152.
— Сделаем важные улучшения в продукте:

маскирование персональных данных в административной панели,

возможность запрета экспортов конкретных полей с персональными данными,

централизованный сбор событий безопасности по всем клиентам в SIEM.

Планы по продукту на 2022

В этом году отдаем долги по отчетам и интерфейсу и запускаемся в США. Амбициозная цель — продвинуться к запуску решения для малого бизнеса.
— Отчеты, интеграция с BI
— Редизайн интерфейса
— Развитие мобильного SDK: Huawei и центр уведомлений
— In-app персонализация мобильных приложений
— Развитие модуля — «Медиа»
— Новые стандартные интеграции
— Управление продуктовыми витринами
— Каталог стандартных механик
— Дополнительные каналы коммуникации
Призываю продуктов аналитиков, .NET-разработчиков, техлидов и SRE-специалистов откликаться на наши вакансии. Или, можете написать мне или на hr@mindbox.ru: с удовольствием пообщаемся и расскажем детальнее.
У нас — всё самое сложное и интересное, что есть в корпоративной разработке на C#. Опционная программа с перспективой, подтвержденной самым уважаемым в России инвестором. Но главное — атмосфера и люди.