surfup

Логистический SaaS

Деплой за 15 минут вместо ночных ручных выкаток

Логистика · DevOps · Kubernetes · CI/CD · Мониторинг
Контекст проекта

Клиент — логистический сервис: десятки тысяч заказов в день, вечерние и распродажные пики, жёсткие SLA перед магазинами-партнёрами. Инфраструктура выросла стихийно: разрозненные VPS, конфигурации «на серверах», деплой руками по инструкции в вики. Каждый релиз — ночная выкатка с простоем, каждый пик — риск потери заказов. Инцидент в предновогодней распродаже, когда платформа не работала четыре часа и сервис выплатил компенсации партнёрам, и стал поводом обратиться к нам.

01 · Задача

Перевести платформу на управляемую инфраструктуру без остановки бизнеса:

инфраструктура как код, автоматическая поставка, контейнеризация и оркестрация, наблюдаемость и предсказуемое восстановление после сбоев. Критерий успеха сформулировал основатель: «деплой в рабочее время, без даунтайма и без человека с доступом по SSH».

02 · Что сделали

Мы двигались по проверенной последовательности: сначала контейнеры и воспроизводимые окружения, затем автоматизация поставки, и только после этого — оркестрация с автоскейлингом.

  • Провели аудит инфраструктуры: карта сервисов и зависимостей, замеры пикового профиля нагрузки, реестр ручных операций, которые чаще всего приводили к авариям.
  • Контейнеризовали сервисы: унифицировали сборку, вынесли конфигурацию из кода в переменные окружения, подняли идентичные dev/stage/prod.
  • Описали инфраструктуру кодом на Terraform: окружения разворачиваются из репозитория, ручные изменения в консоли облачного провайдера запрещены.
  • Собрали конвейер GitLab CI: тесты и сборка образов автоматически, деплой на stage — сразу, в prod — по кнопке после ревью; откат — одним действием.
  • Перевели платформу на Kubernetes с автоскейлингом: вечерние и распродажные пики платформа встречает дополнительными инстансами, а не авральными ручными работами.
  • Развернули мониторинг и алертинг: метрики золотого сигнала — латентность, ошибки, трафик, насыщение — с дежурством и эскалацией по графику.
  • Настроили бэкапы и disaster recovery: регламент восстановления, репетиция сбоя на stage с измерением фактического MTTR.

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

03 · Результат

Экономика проекта сложилась из трёх частей: прямая экономия на инфраструктуре — минус 32% за счёт автоскейлинга и отказа от постоянно разогретых «пиковых» мощностей; экономия часов команды, которые раньше уходили на ночные выкатки; и главное — сохранение выручки в пиках, которые теперь проходят без инцидентов. Крупный клиент-сеть магазинов продлил контракт именно после первой распродажи на новой инфраструктуре.

04 · Ключевые результаты
ПоказательРезультат
Деплой релиза3–4 часа вручную → 15 минут автоматически
Частота релизов2–3 в месяц → Почти ежедневно
Доступность платформы97,8% → 99,95%
Пиковые нагрузкиРиск простоя → Автоскейлинг без участия человека

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

Итоги пяти месяцев
деплой релиза (было 3–4 часа вручную)
15 мин
доступность платформы (было 97,8%)
99,95%
восстановление после сбоя (было 2–4 часа)
20–30 мин
стоимость инфраструктуры
−32%
До и после
Деплой релиза, минут
До3–4 часа
После15 мин
меньше — лучше
Восстановление (MTTR), минут
До2–4 часа
После20–30 мин
меньше — лучше
Недоступность платформы
До2,2%
После0,05%
меньше — лучше

Показаны верхние границы диапазонов (4 часа, 30 минут). Недоступность = 100% − доступность.

Конвейер поставки
  1. 01Commit
  2. 02Тесты
  3. 03Сборка образа
  4. 04Stageсразу
  5. 05Prodпо кнопке после ревью
Дальнейшее развитие

Точки развития инфраструктуры на следующий цикл:

  • FinOps-практика — алерты на аномалии затрат и прозрачность стоимости по командам.
  • GitOps-подход — состояние prod описано в репозитории, изменения только через pull request.
  • Multi-region — реплика критичных сервисов для устойчивости к авариям провайдера.
Отзыв клиента
Раньше релиз — это ночь, кофе и молитва. Теперь это кнопка и пятнадцать минут. Первую распродажу без инцидентов мы отмечали всей компанией.

— Технический директор логистического сервиса

Последние материалы

Все материалы

Практические статьи и гайды SurfUp.

Гайд · 10 мин

Страницы «что такое…» и ИИ-ответы: потеря кликов или спрос

Визиты справочного раздела банка упали на 24% при спросе −13%. Как отличить потерю кликов из-за ИИ-блока от падения спроса и измерить это на своих данных.

Читать
Гайд · 8 мин

Трафик упал после апдейта Google

Как понять, что трафик упал из-за апдейта Google, а не из-за сезонности или поломки. Хронология апдейтов 2026, проверка из шести вопросов и план на первые 14 дней.

Читать
Гайд · 9 мин

Спрос упал или сайт потерял: как сверять трафик с Wordstat

Спрос на вклады упал на 75%, трафик на 37%; по картам спрос −35%, трафик −63%. Как сверять трафик со спросом и не принять рынок за проблему сайта.

Читать