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

В статье: на каком железе работает облачная платформа, как мы выкупили все приличные 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 обслуживать и тысячу, и три тысячи клиентов.

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