Как устроена наша инфраструктура, и почему мы не боимся пожаров

В статье: на каком железе работает облачная платформа, как мы выкупили все приличные SSD в России, автоматизировали закупки серверных стоек и масштабируем рост с помощью облачных технологий. Особенно интересно будет IT-директорам, специалистам по ИБ и разработчикам.
Немного цифр:
  • Отправляем 1,3 млрд email-сообщений в месяц, до 70 миллионов в день
  • Обрабатываем более 5 млрд запросов к нашему API в месяц
  • На нашей программе лояльности работает более 5000 онлайн и офлайн-магазинов по всей России и СНГ
  • Храним более 350 млн профилей
  • 25 млрд фактов о клиентах суммарно по всем БД
  • 47 тысяч сегментов
  • Общий объем БД — 41TB
  • Ежедневно рассчитываем более 1 млрд персональных рекомендаций
  • Пересчитываем рекомендации в реальном времени в течение 5 секунд

Как устроены передача и хранение клиентских данных

Данные попадают к нам через единый API шлюз. В среднем мы обрабатываем 150 тысяч запросов в минуту в дневное время.
Картинка
Количество запросов в минуту и за сутки
Данные распределяются по раздельным клиентским базам данных (БД). Из соображений безопасности у каждого клиента база данных изолирована, и данные одного клиента никак не пересекаются с данными других клиентов. Так мы гарантируем безопасное хранение.
Накопленные данные хранятся в платформе. На основе собранных данных маркетолог клиента без помощи IT настраивает и запускает механики, строит сегменты, настраивает акции, отправляет рассылки, выгружает отчеты.
Картинка
После внедрения платформы «Флорист.ру» снизил затраты IT на поддержку рассылок до нуля — маркетолог всё делает сам
С технической точки зрения, активности маркетолога сводятся к тому, чтобы прочитать данные из БД, каким-то образом их обработать и записать результат обработки обратно в БД. Таким образом, типы нагрузки можно разделить на два: хранение данных и их обработка. Не случайно Федеральный закон № 152-ФЗ «О Федеральных данных» и GDPR (General Data Protection Regulation) оперируют именно этими двумя категориями.

Что за железо использует платформа, и где оно находится физически

Физически данные располагаются на наших собственных серверах на территории РФ в ЦОДе Data Line. Это дата-центр уровня Tier III: в России нет более высокоуровневых коммерческих ЦОДов, чем этот. Для всех ресурсов, включая питание и охлаждение, обеспечивается резерв по схеме N+1, есть два ввода электропитания от разных подстанций. Данные передаются по 10-гигабитной оптической сети на оборудовании Dell.
Здание расположено отдельно, территория изолирована и охраняется. Data Line аттестован на соответствие Федеральному закону № 152-ФЗ. Mindbox также отвечает требованиям ФЗ: летом 2019 года компания прошла первичный аудит корпоративной безопасности в Group-IB и получила положительное заключение. Также компания успешно выдержала тесты на проникновение.
Картинка
Машинные залы и инженерные помещения размещаются в гермозонах, которые защищают оборудование от протечек и пыли и сдерживают распространение огня в течение 45 минут
Мы работаем с Data Line 11 лет, почти с момента основания компании, и за всё это время по вине ЦОД было всего два инцидента. Про них расскажет CIO Mindbox, Игорь Кудрин.
Картинка
CIO Игорь Кудрин не боится пожаров

Какие серверы мы закупаем

Для хранения данных мы используем серверы бренда Dell. Типовая конфигурация сервера выглядит так:
  • Процессор 2x CPU Intel Xeon Gold 6146 3.2 Ghz
  • Оперативная память 192GB RAM
  • Жесткий диск 6,4TB NVME SSD
Эта самая эффективная конфигурация под MS SQL Server Standard — ПО баз данных, которое мы используем, — с точки зрения производительности и стоимости лицензий.
При этом нужные нам диски SSD с большой производительностью IOPS на чтение данных — большая редкость, и на рынке появляются по одной-две штуки. Мы выкупаем все доступные диски в РФ и встаем на очередь за следующими, поэтому у наших поставщиков («Никс», Regard) всегда дефицит.
Всего у нас 50 серверов БД. Используем автоматическую модель закупок, которая отслеживает актуальное потребление серверов, а также смотрит планы продаж и заранее, за 3 месяца, ставит закупку в бюджет.
Картинка
Фрагмент автоматической модели закупок. Начиная с июня планируем закупать по 2 сервера в месяц
Иными словами, мы всегда имеем запас по производительности и вовремя реагируем на изменения в планах.
Обработка данных — другая задача, поэтому под неё покупается другое оборудование. Оперативной памяти гораздо больше, а накопительные диски — меньше:
  • Процессор 2x Intel Xeon Gold 6154 CPU
  • Оперативная память 384 GB RAM
  • Жесткий диск 256GB SSD
Эта нагрузка требует много CPU и мало дисковой памяти: данные не пишутся на диск, а обрабатываются в памяти. По этой причине их гораздо проще запускать — к ним не нужно покупать дефицитные SSD.

Как обеспечивается бесперебойность работы

Mindbox использует стандартные метрики: CPU (количество миллисекунд процессора, которое потрачено на задачу) и wall-clock time (календарное время, которое потрачено на задачу).
Картинка
CTO Никита Прудников — один из тех, кому приходят ночные SMS
На все потенциально узкие места также настроены алерты, а разработчики проектируют систему так, чтобы она переживала отказы.

Что будет дальше

Сейчас в Mindbox более 300 клиентов, завершивших интеграцию. В этом году мы планируем увеличить их количество на 160: плюс 60% нагрузки. Чтобы улучшить масштабирование и снизить риск ошибок, планируем переехать со своих серверов в облако. Это повлечет за собой увеличение расходов на железо, но избавит от необходимости обслуживания сети.
Сейчас разработчики Mindbox трудятся над тем, чтобы разделить монолитное приложение, которое подвержено отказам и остро на них реагирует, на микросервисы, которые менее подвержены отказам. По словам Игоря, смена парадигмы поможет Mindbox обслуживать и тысячу, и три тысячи клиентов.

Почитайте еще: