Бесперебойная работа логистической SaaS-платформы CARGO.RUN

Как обеспечить бесперебойную работу логистической SaaS-платформы: опыт CARGO.RUN

В кейсе рассказываем, как цифровая платформа CARGO.RUN пришла к стабильной и отказоустойчивой инфраструктуре. Теперь сервис не только выдерживает постоянный рост данных, но и обеспечивает бесперебойную работу для 15 000 ежедневных пользователей.

Изображение записи

Кейс будет полезен для компаний в следующих сферах:

  • логистика
  • SaaS
  • высоконагруженные сервисы

Задачи:

  • Повысить отказоустойчивость и стабильность инфраструктуры
  • Обеспечить быструю работу с растущими массивами геоданных
  • Создать гибкую и масштабируемую архитектуру для поддержки роста
  • Автоматизировать управление сложной инфраструктурой

О компании

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

Платформа предлагает четыре ключевых продукта:

  • «Логистика» — помогает управлять транспортной компанией,
  • «Топливный калькулятор» — экономить на заправках,
  • «Эксплуатация» — следить за состоянием парка,
  • «Загрузки» — находить грузы.

Каждый из этих модулей решает конкретные боли клиентов — от простоев и перерасхода топлива до беспорядка в документообороте и отчетах.

Сегодня к системе подключено более 16 000 транспортных средств. Услугами CARGO.RUN пользуются свыше 120 транспортных компаний, включая трех перевозчиков из топ-10 по РФ. Такой масштаб бизнеса генерирует колоссальную нагрузку на IT-инфраструктуру.

Вызовы и решения

Повысить отказоустойчивость и стабильность инфраструктуры

Инфраструктура прежнего провайдера была источником постоянных проблем. Случались незапланированные простои. После плановых перезагрузок серверы могли не запуститься из-за сбоев сетевых карт, некорректной маршрутизации или ошибок BIOS. Техническая поддержка реагировала медленно — запланированные 30‑минутные работы нередко растягивались на два часа. 

При этом стабильность платформы CARGO.RUN напрямую транслируется в операционную эффективность их клиентов. Когда логист управляет 80 машинами в реальном времени, любой сбой системы приводит к хаосу и финансовым потерям. Надежная инфраструктура становится конкурентным преимуществом для CARGO.RUN и фактором успеха для их заказчиков.

Предоставили предсказуемую и надежную платформу

Миграция в Selectel началась с аренды нескольких выделенных серверов. Ключевым архитектурным решением стало разделение серверов приложений и баз данных. Такой подход сразу же снизил количество инцидентов и, по ощущениям команды, повысил стабильность сервисов на 20−30%.

Новая инфраструктура позволила команде «снять груз с плеч». Вместо постоянного устранения сбоев инженеры смогли сфокусироваться на развитии платформы.

Для обеспечения максимальной отказоустойчивости СУБД команда CARGO.RUN развернула кластер Patroni. Серверы для этого кластера физически размещены в разных регионах — в Москве и Санкт-Петербурге. Такая геораспределенная схема гарантирует непрерывность работы даже в случае неполадок связи в целом субъекте РФ.

Обеспечить быструю работу с растущими массивами геоданных

Ядро платформы — база данных PostgreSQL с расширениями Timescale для временных рядов и PostGIS для геоданных. Она обрабатывает гигантские объемы информации: координаты, маршруты, данные с датчиков. Объем основной базы достигает 4 ТБ, а общее хранилище данных, включая бэкапы в S3, превышает 41 ТБ.

Подобрали мощные выделенные серверы и объектное хранилище

Команда CARGO.RUN осознанно выбрала выделенные серверы для размещения СУБД. Это было продиктовано несколькими факторами: специфическими требованиями к расширениям PostgreSQL, необходимостью полного контроля над средой для тонкой настройки производительности дисковой подсистемы и экономическими соображениями для масштаба их нагрузки.

Использование выделенных серверов дает полный контроль над окружением. Команда может тонко настраивать параметры ядра ОС и самого PostgreSQL, чтобы добиться идеальной производительности под свою специфическую нагрузку.

Объектное хранилище S3 используется для хранения файлов, генерируемых приложением, а также для резервных копий. Один из важных сценариев его применения — хранение WAL-архивов PostgreSQL в S3. Такой механизм позволяет избежать переполнения дисков на серверах баз данных и обеспечивает надежный инструмент для восстановления.

Создать гибкую и масштабируемую архитектуру для поддержки роста

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

Предоставили управляемый Kubernetes для микросервисов

Команда CARGO.RUN начала свой путь с Docker и Docker Swarm, но в итоге пришла к Kubernetes как к индустриальному стандарту.

Все новые модули CARGO.RUN, а также вспомогательные сервисы, управляются через Managed Kubernetes. Он ускоряет развертывание приложений, автоматизирует балансировку нагрузки и дает отказоустойчивость за счет размещения Control Plane на трех мастер-нодах.

В Managed Kubernetes всю заботу об управлении Control Plane берет на себя провайдер. Клиенту не нужно беспокоиться об управлении, конфигурировании и мониторинге нод.

Для CARGO.RUN это очень актуально, ведь в DevOps-отделе всего три инженера, которые поддерживают сложную, мультирегиональную инфраструктуру.

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

Автоматизировать управление сложной инфраструктурой

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

Внедрили подход Infrastructure as Code с помощью Terraform

Использование Terraform позволило описать всю инфраструктуру в виде кода. Это централизовало управление и сократило время на администрирование. Развертывание новых окружений — например, для тестирования или для нового проекта — теперь происходит по шаблону и занимает кратно меньше времени, чем ручная настройка.

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

Результаты

  • 41 ТБ

    общий объем данных, хранимых в инфраструктуре (рост с 15  ТБ за 2  года)

  • 15 000

    ежедневное количество пользователей платформы

  • в 2,5 раза

    рост производительности одного логиста у клиентов CARGO.RUN (с 30−34 до 80 машин)

  • на 53%

    сокращение порожнего пробега транспорта у клиентов (с 15% до 7%)

«Стабильная и быстрая работа платформы — важная часть успеха наших клиентов. Когда логист ведет 80 машин, работает с отклонениями, маршрутами и загрузками в режиме реального времени — важно, чтобы система отвечала быстро и работала надежно. Инфраструктура Selectel позволяет нам обеспечить именно такую производительность: без перебоев, без просадок по скорости, даже при высокой нагрузке. Это дает нам уверенность, что все будет работать тогда, когда это действительно нужно»,

Сергей Карпов руководитель DevOps-отдела CARGO.RUN