Не так давно в нашем блоге мы делились историей экстренной миграции инфраструктуры клиента. Однако бывают ситуации, когда компании не нужно ниоткуда мигрировать — она сразу приходит «жить» в облако без опыта использования on-premise за плечами. Так было с BelkaCar — стартап сразу развернул сервисы в нашем публичном облаке. Обсудим, насколько верным было это решение и как компания планирует развивать свою инфраструктуру.



Сегодня BelkaCar — один из крупнейших сервисов каршеринга в России и входит в десятку крупнейших каршеринговых компаний в мире. BelkaCar работает в Москве и Краснодарском крае, а общее количество пользователей превысило 2 миллиона, причем около 700-750 тысяч из них пользуются сервисом ежемесячно.

Но это сейчас. Когда каршеринг только обратился к нам 5 лет назад с намерением арендовать облачные ресурсы, это был типичный стартап, не связанный ни с одним крупным проектом. Как и любому такому стартапу, BelkaCar пришлось некоторое время существовать в условиях непредсказуемости и неопределенности. Выстрелит ли он, а если выстрелит, то когда, — было неизвестно.

Но даже в такой ситуации нужно иметь в виду, что в один прекрасный день количество пользователей и спрос на услуги может измениться. Бизнес точно обрадуется, а ИТ-директор и технические специалисты должны быть уверены, что вычислительные ресурсы смогут выдержать кратно возросшую нагрузку. Поэтому BelkaCar сразу выбрала облако: IaaS позволяет быстро масштабироваться (как минимум горизонтально), не резервировать дополнительные мощности и, что принципиально важно для стартапа, не увеличивать CAPEX, работая только с оптимальными OPEX-расходами.

Инфраструктура: тогда и сейчас


Определившись с провайдером, BelkaCar арендовала в облаке пару десятков виртуальных машин. Были запущены первые сервисы, обеспечивающие основной функционал работы каршеринга — сервисы взаимодействия с автомобилями (телематика), сервисы управления пользователями, поездками, тарифами, биллинговый сервис, базовые внутренние административные сервисы для управления автопарком.

С тех пор прошло уже 5 лет. Количество пользователей выросло с нескольких сотен почти до двух миллионов, а виртуальные машины стали исчисляться сотнями.

Как бы просто ни выглядела работа сервиса для пользователя, на самом деле каршеринг достаточно сложно устроен как организационно, так и технологически.

Сейчас инфраструктура стартапа, объединенная в единую каршеринговую платформу, состоит из большого количества сервисов:

  • мобильные приложения для физических лиц и корпоративных клиентов;
  • телематические сервисы;
  • управления автопарком (техническое обслуживание и ремонт, заправки, мойки, шиномонтаж, работа с ДТП, перегоны автомобилей);
  • CRM, call center и другие сервисы департамента клиентского обслуживания;
  • верификации пользователей;
  • взыскания задолженностей;
  • динамического ценообразования;
  • биллинга с сертификацией PCI DSS Level 1;
  • коммуникаций с пользователями (reengagement);
  • поведенческой аналитики;
  • безопасного вождения;
  • многочисленные интеграции с внешними сервисами.

Кроме этого в 2021 году начали активно развиваться новые бизнес-направления. Была запущена платформа подписок на автомобили, запущены первые построенные на ней сервисы по подписке на автомобили ŠKODA и AUDI.

Чтобы обеспечить необходимый уровень надежности и производительности работы сервисов, компания использует более 700 виртуальных машин для prod, stage и test-сред. Суммарный объем потребляемых ресурсов колеблется на уровне 3000 vCPU, 3 Tb RAM и 300 Tb хранилища.



Инфраструктура каршеринга существует в непрерывно высоконагруженном состоянии. Пиковые нагрузки превышают 4000-5000 запросов в секунду. Основной вклад в профиль нагрузки дает сервис телематики, который связывает серверы непосредственно с автомобилями. Именно он отвечает за то, чтобы пользователи смогли арендовать машину в автоматическом режиме — открыть/закрыть её, запустить/заглушить двигатель, удаленно прогреть салон. Также сервис получает от автомобиля большое количество информации о координатах автомобиля на карте, состоянии его узлов, возникновении ситуаций, типичных для ДТП, а также о поведении пользователя за рулем и стиле его вождения.

Где облако показывает себя с лучшей стороны


Гибкое и оперативное масштабирование

Периодически BelkaCar, как и любая другая компания, сталкивается с пиковыми нагрузками на инфраструктуру во время маркетинговых активностей. Например, конверсия массовых push-рассылок в открытие приложения иногда достигает 20%, и тогда нагрузка на отдельные критические сервисы может ненадолго превысить типичную в 4-5 раз. Кратковременное увеличение ресурсов на виртуальных машинах конкретных сервисов помогает пережить такие ситуации без падений и серьезных замедлений работы функционала платформы.

Но бывают и обратные ситуации. В 2020 году сервисы каршеринга столкнулись с covid-запретом на работу в Москве, который продлился с 13 апреля по 25 мая. Тогда BelkaCar «свернула» облачные ресурсы почти в несколько раз, а вместе с ними упали и затраты на хостинг — это помогло пережить хоть и недолгий, но тем не менее сложный для компании период.

Машинное обучение и Data Analysis

BelkaCar активно занимается обработкой собираемых данных, в частности, по таким направлениям как:

  • динамическое ценообразование на основе различных факторов — загруженности автопарка в отдельных зонах, предсказаний о направлении движения пользователя, погодных факторов;
  • предиктивная аналитика по состоянию узлов автомобилей в динамике их эксплуатации, в которой заинтересованы партнеры, в первую очередь производители автомобилей;
  • безопасное вождение и скоринг пользователей;
  • моделирование для расчета геозон старта/завершения аренды;
  • аналитика по поиску и локализации fraud-активностей пользователей;
  • проверка продуктовых гипотез на базе накопленных массивов данных.

Все эти активности требуют кратковременного выделения большого количества ресурсов, что в облаке реализовать все-таки проще, чем на своей площадке. Компания берет какое-то количество мощностей (vCPU, RAM и пр.), а когда задача выполнена, освобождает их и перестает оплачивать.

Защита персональных данных

Защита персональных данных — крайне важная и максимально приоритетная задача для компаний, обрабатывающих большие массивы ПДн.

Современное законодательство Российской Федерации изобилует нормативными актами различного уровня, которые обеспечивают регулирование этой чувствительной области. С каждым годом спектр этих актов охватывает все новые и новые области, повышается уровень требований по защищенности ИСПДн. Любая компания, обрабатывающая персональные данные россиян, должна обеспечить требования, главные из которых указаны в:

  • федеральных законах 152-ФЗ, 242-ФЗ;
  • приказе ФСТЭК №21 и их методических документах;
  • постановлении Правительства Российской Федерации № 1119.

Размещение в защищенном облаке снимает огромную часть работы по приведению инфраструктуры в соответствие законодательству. Использование облачных сегментов, защищенных по требованиям 152-ФЗ и локализованных на территории Российской Федерации в соответствии с требованиями 242-ФЗ, помогает защитить данные на техническом уровне и сильно помочь в успешном прохождении проверок регуляторов.

Сертификация PCI DSS 3.2 Level 1

Каршеринг обрабатывает большое количество финансовых транзакций (более 10 миллионов в год), что приводит, в свою очередь, к необходимости проведения сертификации по требованиям стандарта PCI DSS Level 1 (при количестве транзакций более 6 млн. в год). Наличие у нас аттестата соответствия требованиям позволило BelkaCar существенно уменьшить количество подготавливаемых документов и технических мероприятий по аттестации и успешно пройти сертификацию.

Резервное копирование

Увы, нередко при выборе облачных технологий важность многоуровневого и географически распределенного резервного копирования недооценивается. Потеря данных может негативно отразиться на бизнесе.

В BelkaCar используются несколько подходов к резервному копированию:

  • snapshot-бэкапы виртуальных машин с использованием Veeam Backup;
  • бэкапы БД с использованием утилит БД, хранение горячего бэкапа в сторадже с быстрым доступом;
  • хранение исторических бэкапов в нескольких облачных ЦОД провайдера с использованием Swift Storage позволяют решить проблемы катастрофоустойчивости.

Возможность построения гибридных решений

Компании, у которых постоянно увеличивается нагрузка на сервисы и объемы этих сервисов с точки зрения данных, в какой-то момент задумываются о создании гибридного облака.

Тут компания решила пойти по уже проверенному пути и тоже использовать провайдерские мощности. Сейчас BelkaCar совместно с нашей командой работает над построением и миграцией ресурсов в выделенное защищенное облако. При этом критические сервисы будут вынесены в эксклюзивные облачные ресурсы, параллельно с которыми будут использоваться расширяемые ресурсы публичного облака. Такая архитектура, с одной стороны, гарантирует изоляцию от других потребителей и позволяет быть уверенным в контроле над основными ресурсами этого сегмента, а с другой — дает возможность использования дополнительных мощностей в случаях, когда в них появляется необходимость.

Комментарии (2)


  1. Exclipt
    24.12.2021 23:43
    +4

    Прочитал статью, чтобы понять как "научиться выдерживать мощные нагрузки", весь ответ "дааа, сразу в облаке развернулись", потратил время, и даже кармы на минус не хватает. Грустно.


    1. Kotofeus
      25.12.2021 00:29
      -2

      Потому что провайдер не всегда знает, что конкретно крутится внутри инфры клиентов)