Поделиться
Поделиться

Счёт за облако растёт незаметно: забытый GPU после эксперимента, overprovisioned Postgres «на вырост», трафик в чужой регион, три неиспользуемых staging. FinOps — не про «сэкономить любой ценой», а про связку архитектуры, закупок и инженерии так, чтобы рубль инфраструктуры покупал надёжность и скорость поставки.

В OtherCode мы размещаем продукты на Yandex Cloud, Selectel, выделенных и облачных VPS RU, а иногда в гибриде с on-prem заказчика. Ниже — как выбираем площадку, считаем TCO и не запираемся в одном зарубежном hyperscaler.

Зачем считать инфраструктуру как продукт

Инженеры видят latency и CPU. Финансы видят строку в P&L. FinOps соединяет оба взгляда:

| Вопрос | Без FinOps | С FinOps | |--------|------------|----------| | Кто владеет стоимостью сервиса | «Облако само» | Команда продукта / tech lead | | GPU для URAP | Включили и забыли | Job-based, auto-stop, бюджет на эксперимент | | Выбор региона | Где привыкли | Данные, закон, RTT до пользователей | | Резерв мощности | +300% «на всякий» | Rightsizing по p95 + запас |

Для студии и клиентов в РФ отдельно важны: доступность сервисов, платежи, поддержка, риски блокировок и требования к локализации данных. Про замену привычных Google-сервисов в российском контексте мы писали отдельно: Google-сервисы в России и альтернативы.

Карта площадок: что используем и когда

Yandex Cloud

Подходит, когда нужны managed-сервисы без своей возни с патчами:

  • managed PostgreSQL / object storage / сети;
  • пиковые мощности под ML (URAP: обучение, batch OCR);
  • быстрый старт окружения без закупки железа.

Платим за удобство и API автоматизации. Контролируем: размер дисков, неиспользуемые IP, старые снимки, простой VM.

Selectel и аналогичные RU-провайдеры

Хороший баланс цены и контроля: выделенные и облачные ресурсы, понятная поддержка, гибкость под промышленные и SaaS-нагрузки. Часто сажаем API и воркеры ближе к пользователям и интеграциям в РФ.

Dedicated / VPS RU

Основной паттерн для многих продуктов студии — предсказуемый VPS:

  • сайт othercode.ru (Next.js) и связанные Node-сервисы под PM2;
  • Docker Compose для API/workers;
  • предсказуемый monthly bill вместо сюрпризов pay-as-you-go на каждый чих.

VPS выигрывает, когда нагрузка стабильна, команда умеет администрировать и не нужен каждую неделю новый managed-сервис из каталога.

On-prem / контур заказчика

Для enterprise и промышленной телеметрии (контуры рядом с Typhoon/Modbus, Galvatec) часть данных не должна уходить во внешнее облако. Тогда облако — только для шлюза, обновлений и агрегированной аналитики, а «сырьё» остаётся у заказчика.

Anti lock-in: почему не «всё в один US cloud»

Один глобальный провайдер удобен в туториалах. На практике для продуктов с аудиторией и юрлицами в РФ риски включают:

  • платежи и верификацию аккаунтов;
  • сетевую доступность и RTT;
  • compliance и хранение ПДн;
  • внезапные ограничения сервисов и API.

Стратегия OtherCode — переносимые артефакты:

  1. Приложения в Docker, CI в GitLab на своих runners.
  2. Инфраструктура как код / воспроизводимые compose/helm-описания, где уместно.
  3. БД — PostgreSQL (в т.ч. PostGIS для Synapse Stream), а не проприетарный lock-in без необходимости.
  4. Объектное хранилище с S3-совместимым API, чтобы сменить endpoint без переписывания домена.

Мы можем держать staging в одном месте, prod — в другом, или быстро переехать с VPS на Yandex Cloud managed DB, не переписывая бизнес-логику Game API.

Стоимость GPU и AI: отдельная статья бюджета

URAP AI и эксперименты с LLM/OCR легко сжигают бюджет.

| Режим | Где крутим | Как контролируем стоимость | |-------|------------|----------------------------| | Online inference | CPU / лёгкий GPU / оптимизированный runtime | Latency SLA vs $/1k docs | | Batch OCR / retrain | GPU VM по расписанию | Автовыключение, spot/preemptible где допустимо | | Eval в CI | Отдельный runner / ночной pipeline | Не на каждый commit | | Embeddings / RAG | CPU или малый GPU + кэш | Кэш чанков, дедуп документов |

Правило: GPU не для «чтобы было». Сначала измеряем CPU-baseline; GPU включаем, когда экономит wall-clock или открывает нужное качество в рамках SLA.

Content Factory (Telegram) и большинство Next.js/API-нагрузок GPU не требуют. Diom (Flutter) бьёт по бюджету скорее сборками CI и backend RPS, чем видеокартами.

Rightsizing на практике

Rightsizing — регулярный ритуал, не разовый аудит после шока от счёта.

Что смотрим раз в месяц

  • CPU/RAM p95 vs запрошенные limits (контейнеры и VM);
  • размер дисков vs реальные данные + рост;
  • простой staging ночью и на выходных;
  • старые образы в registry и забытые volume snapshots;
  • трафик между зонами/провайдерами (часто дороже compute).

| Симптом | Типичная причина | Действие | |---------|------------------|----------| | CPU < 20% постоянно | Overprovision | Уменьшить тариф / лимиты | | Swap / OOM | Undersize или утечка | Профиль + апсайз точечно | | Диск 90%+ | Логи / бэкапы на том же volume | Ротация, вынос бэкапов | | Счёт GPU вырос ×3 | Забытая VM | Автоstop + алерт на uptime |

Для Synapse Stream с PostGIS отдельно смотрим размер индексов и bloat — «просто добавить CPU» дороже, чем настроить вакуум и запросы. Оптимизация PostgreSQL у нас описана в отдельном материале: PostgreSQL оптимизация.

Модель TCO: не только цена VM

Считаем полную стоимость владения на горизонте 12 месяцев:

  1. Compute + storage + traffic провайдера.
  2. Люди: часы на админку k8s vs VPS.
  3. Простой: стоимость инцидента × вероятность.
  4. Лицензии и managed-наценки.
  5. Миграция: сколько стоит сменить площадку через год.

Иногда «дорогой» managed Postgres дешевле младшего инженера, который ночами чинит репликацию. Иногда наоборот — VPS с понятным бэкапом выгоднее красивого SLA в каталоге.

Пример сравнения (упрощённо)

| Вариант | Плюсы | Минусы | Когда берём | |---------|-------|--------|-------------| | VPS RU + Docker + PM2 | Цена, контроль, простота | Сами патчи и мониторинг | Стабильная нагрузка, small team | | Yandex Cloud managed | Меньше ops на БД/сеть | Выше $/unit, риск «расползания» сервисов | Нужен managed + пики | | Hybrid (VPS app + cloud DB/GPU) | Гибкость | Две сети, два биллинга | AI batch + стабильный API | | On-prem заказчика | Данные дома | Долгий доступ, разный зоопарк | Enterprise / промышленность |

Как FinOps встроен в разработку

  • В GitLab CI параллельные runners ускоряют поставку, но минуты тоже стоят денег — тяжёлые job по правилам.
  • Production-деплои othercode.ru через PM2 не требуют кластера из пяти нод «для солидности».
  • Redis-очереди и кэш снижают повторный compute (дешевле докинуть кэш, чем удвоить CPU под URAP).
  • Метрики продукта (конверсии, ошибки API) смотрим вместе с рублями инфраструктуры — иначе оптимизируем не то.

Для аналитики в РФ опираемся не только на зарубежные стеки: Яндекс Метрика и собственные события в PostgreSQL часто достаточны на старте продукта.

Сетевые и скрытые статьи расходов

В счёте за облако часто «выстреливают» не VM, а побочные сервисы:

  • Исходящий трафик — отдачи файлов, бэкапы «в другой регион», CDN без нужды.
  • Публичные IP и балансировщики — забытый IP после теста стоит каждый месяц.
  • Снимки дисков и старые образы в registry — тихий рост storage.
  • Managed DB storage autoscaling — удобно, пока не осознаёте потолок.
  • NAT / egress между VPC и on-prem — для гибрида Typhoon/Galvatec считаем заранее.

Практика: раз в месяц экспорт billing CSV (или аналог у провайдера) и 30 минут разбора с tech lead продукта. Без этого FinOps остаётся лозунгом.

Резервирование vs on-demand

| Стратегия | Плюс | Минус | |-----------|------|-------| | On-demand | Гибкость | Дорого на стабильной нагрузке | | Reserved / committed | Ниже цена | Нужен прогноз на 6–12 мес | | Spot / preemptible для batch | Дёшево для URAP retrain | Нужны checkpoint и retry | | Свой VPS 24/7 | Предсказуемый bill | Capex/операционка на патчи |

Для othercode.ru и большинства клиентских API мы чаще берём предсказуемую посадку. Для GPU-batch — максимально эфемерные машины.

Безопасность как часть стоимости

Дешёвый хостинг с дырявым SSH и без бэкапов — не экономия. В TCO закладываем:

  • время на hardening и обновления;
  • стоимость инцидента утечки (особенно документы URAP и геоданные Synapse);
  • изоляцию контуров: staging не ходит в prod БД «для удобства»;
  • отдельный бюджет на тестирование restore.

On-prem заказчика иногда дороже облака по людям, но дешевле по риску регуляторики — решение продуктовое, не «религиозное».

Как считаем инфраструктуру на этапе оценки проекта

На пресейле OtherCode закладывает черновой bill of materials:

  1. Ожидаемый RPS / документы в сутки / число устройств Modbus.
  2. Нужен ли GPU и сколько часов в месяц.
  3. Объём хранения (файлы, таймсерии, гео).
  4. Требования к локализации и резервированию.
  5. Кто администрирует: студия, заказчик, гибрид.

Клиент видит не только оценку разработки Next.js/Flutter/API, но и порядок цифр за 12 месяцев хостинга. Это снижает конфликт через полгода, когда «внезапно» приходит счёт за Yandex Cloud.

Связка с продуктами: Diom бьёт по push и API; Content Factory — по числу ботов и медиа; Synapse — по PostGIS и realtime; URAP — по CPU/GPU и object storage. Разные профили — разные рекомендации площадки.

Прагматичный roadmap оптимизации

Если счёт уже вырос, порядок действий обычно такой:

  1. Выключить забытое (GPU, staging, IP).
  2. Rightsizing CPU/RAM по p95.
  3. Кэш и очереди (меньше повторного compute).
  4. Вынести тяжёлую аналитику с primary DB.
  5. Только потом — смена провайдера или k8s «чтобы утилизация была».

Смена облака ради 10% экономии при месяце миграции команды — часто ложный FinOps.

Чеклист перед масштабированием счёта

  • [ ] У сервиса есть владелец стоимости
  • [ ] Есть алерт на аномальный spend / uptime GPU
  • [ ] Staging не равен prod по размеру «на всякий»
  • [ ] Бэкапы восстановлены хотя бы один раз
  • [ ] План миграции на второго провайдера существует на бумаге
  • [ ] AI/GPU отделены бюджетом от online API

Итог

OtherCode выбирает хостинг прагматично: VPS RU и PM2/Docker для предсказуемых продуктов, Yandex Cloud и Selectel — когда нужны managed и пики, GPU — по делу, архитектура — переносимая, без культа одного US-облака. FinOps — часть инженерной культуры, а не табличка в конце квартала.

Если нужно спроектировать инфраструктуру и бюджет под ваш продукт в РФ — напишите нам.