Как обеспечить бесперебойную работу логистической SaaS-платформы: опыт CARGO.RUN
В кейсе рассказываем, как цифровая платформа CARGO.RUN пришла к стабильной и отказоустойчивой инфраструктуре. Теперь сервис не только выдерживает постоянный рост данных, но и обеспечивает бесперебойную работу для 15 000 ежедневных пользователей.
Задачи:
- Повысить отказоустойчивость и стабильность инфраструктуры
- Обеспечить быструю работу с растущими массивами геоданных
- Создать гибкую и масштабируемую архитектуру для поддержки роста
- Автоматизировать управление сложной инфраструктурой
Продукты и услуги Selectel:
О компании
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 позволяет нам обеспечить именно такую производительность: без перебоев, без просадок по скорости, даже при высокой нагрузке. Это дает нам уверенность, что все будет работать тогда, когда это действительно нужно»,