GH GambleHub

Оптимізація витрат на інфраструктуру

Коротке резюме

Фінансова ефективність інфраструктури впирається в три речі:

1. Прозора вимірюваність (теги, showback/chargeback, $/одиницю цінності).

2. Інженерна дисципліна (rightsizing, авто-скейл, правильні класи сховищ/кешів/мереж).

3. Архітектурні рішення (куди «витікають» байти і мілісекунди).

Мета - знизити TCO при збереженні SLO і швидкості розробки.

Бізнес-метрики та unit-economics

$/1000 RPS - вартість обробки 1000 запитів на ключових маршрутах.
$/мс p95 - вартість зниження хвоста затримок на 1 мс (важливо для конверсії).
$/гравець/місяць або $/депозит - для iGaming/фінтех.
TCO = compute + storage + network egress + managed-сервіси + ліцензії + підтримка.
Капіталізація технічного боргу: фіксуйте, скільки коштує «непочинена» латентність/витоку логів.

Приклад:
  • Якщо API коштує $120/год і віддає 60k RPS при цільовому p95, то $/1000 RPS ≈ $2/год. Будь-яка оптимізація повинна порівнюватися з цією «ціною одиниці».

Інвентаризація та тегування

Теги обов'язкові: `env`, `owner`, `product`, `service`, `region`, `cost-center`, `tier`.
Showback/Chargeback: щотижневі звіти по командах/сервісах.
Контроль «нічийних» ресурсів: без тегів - не розгортаємо, не продовжуємо.

SQL-ескіз для DWH звіту (ідея):
sql
SELECT env, product, service,
SUM(cost_usd) AS cost_month,
SUM(rps) AS rps_month,
SUM(cost_usd)/NULLIF(SUM(rps)/1000,0) AS usd_per_1k_rps
FROM finops_daily
WHERE usage_date BETWEEN:from AND:to
GROUP BY 1,2,3;

Rightsizing і класи інстансів

CPU/Memory профілі: знімайте профілі під навантаженням; знижуйте запити/ліміти до «робочої точки» CPU 50-70%.
Розмір інстансів: часто вигідніше N маленьких замість M великих (краще bin-packing + CA).
ARM-інстанси: дешевше при порівнянній продуктивності, якщо стек сумісний.
Гарячі/холодні пули: тримайте невеликий warm-запас замість постійного «жиру».

Знижки та моделі споживання

Reserved/Savings Plans/Committed Use: бронюйте стійку базу (40-70% економії).
Spot/Preemptible: для некритичних/асинхронних задач, CI, аналітики, кеш-воркерів.
Mix-стратегія: база - reserved, піки - on-demand, фон - spot.

Авто-скейлінг та еластичність

HPA/KEDA за SLO-сигналами (latency, queue lag, RPS), а не тільки за CPU.
Cluster Autoscaler з warm pools і image pre-pull для швидких стартів.
Scale-down з гістерезисом, щоб не «пиляти» кластери (анти-флаппінг).

Мережа і egress - тихий «пожирач» бюджету

CDN/tiered-cache/origin-shield знижують egress з origin.
Стиснення (Brotli/gzip), webp/avif, диф-API (передавати тільки змінені поля).
Групуйте виклики до зовнішніх API, використовуйте keepalive/retry-budget.
Менше чатів всередині DC: event-driven, батчинг, агрегація подій.

Сховища та дані

Класи зберігання: гаряче (NVMe), тепле (gp2/gp3), холодне (S3/Glacier/архів).
Lifecycle-політики: автоматичний переклад «старих» об'єктів на дешеві класи.
Стиснення/партіонування в DWH, TTL на тимчасові таблиці/снапшоти.
Відмова від надмірної реплікації: розумний RF, економні snapshot-політики.
Кешування: Redis/Memcached для hot-set замість «дорогих» читань з БД.

Логи, метрики, трейси - платити з розумом

Семплювання логів (rate-limit за рівнем/шаблоном), «структурні» логи замість балаканини.
Tail-based sampling для трас (зберігаємо «хвости» p99 і помилки, решта - агресивно ріжемо).
Downsampling метрик: агрегація в push-гейтах, зберігання high-res тільки 7-14 днів.
Фільтрація PII - знижує і ризики, і обсяг.

Архітектура і «вартість мілісекунди»

HTTP/2/3 + resumption: менше handshake → менше CPU/egress/латентність.
Ключ кешу і TTL: високий hit-ratio - прямі гроші (менше origin і DB).
gRPC/протобаф для сервіс-сервіс: менше байтів.
Batch/stream для фонових завдань; ідемпотентність → менше ретраїв.
Вибір БД: не зберігайте «все в одній» - дешеві KV/кеші для частих читань, аналітика - в колонночном DWH.
Схеми даних: короткі поля/стислі типи, контроль кардиналітету індексів.

DR, резерви та мульти-регіон

Мета по бізнесу: RTO/RPO → вартість DR. не переплачуйте за актив-актив, якщо достатньо актив-пасив.
Зберігайте холодні резервні копії в дешевому класі, репліка - диференціальна.
Єдиний пакет РоР/регіонів: кожна зона тягне ≥60% піку → витримуємо відмову сусіда без «золотої» надмірності.

Оточення та CI/CD

Автосплячка стейджингів/прев'ю-оточень, авто-TTL.
Runner-и CI на spot, кеш артефактів, обмеження паралелізму.
Тест-дані компактні, генерація on-the-fly, а не зберігання гігабайт.

Управління постачальниками та ліцензіями

Переглядайте обсяги та прайс-типи раз на квартал.
Конкурентний бекап-провайдер - аргумент в торзі.
Ліцензії (АПМ/безпека): розраховуйте $ за корисний сигнал, а не за «всі логи світу».

Процеси та управління

FinOps-церемонії: щотижневий звіт по командах, щомісячний Cost Review (топ-10 «витоків», action items).
Guardrails: квоти на проект/неймспейс, бюджет-альберти, заборона розгортати ресурси без тегів.
Blameless пост-морем по «цінових інцидентів» (витік логів, runaway autoscale).
IaC: всі ліміти, класи, TTL - в репозиторії, PR-рев'ю.

Чек-лист економії

  • Теги/шоубек/чарджбек включені, «нічийних» ресурсів немає.
  • Rightsizing за профілями, ARM/інші типи оцінені.
  • Коміт-знижки закривають базу, spot - фон/аналітика/CI.
  • HPA/KEDA по SLO-метрикам, CA з warm-пулами.
  • CDN/tiered-cache, стиснення, ключ кеша без «шуму».
  • Сховища: класи, lifecycle, TTL, кеші для hot-set.
  • Логи/трейси: семплювання, tail-based, PII-фільтри.
  • DR по RTO/RPO, холодні бекапи в дешевому класі.
  • Оточення з авто-TTL, CI на spot.
  • FinOps-ритми і guardrails в IaC.

Типові помилки

«Оптимізація без метрик»: немає $/1000 RPS → не можна порівняти варіанти.
Відключені/невикористані ресурси висять місяцями.
Зберігання «всього» в гарячому класі, відсутність lifecycle.
Логи як «чорна діра»: 100% ingest, 0% вживання.
Авто-скейл по CPU без урахування latency/черг → переплата і SLO-регрес.
Занадто агресивний DR без бізнес-обґрунтування.
Мікросервіси «для галочки» - зростання міжсервісного трафіку і накладних.

Міні-плейбуки

1) Швидкий аудит рахунку (48 годин)

1. Зріз по топ-10 сервісах/регіону. 2) По кожному - $/1000 RPS, hit-ratio CDN, egress.
2. Викотити TTL/кеш-ключі, вимкнути «галасливі» логи. 4) Включити lifecycle на S3/об'єкти.

2) Зниження egress на 25%

1. Tiered-cache+shield, `stale-while-revalidate`. 2) Стиснути зображення в webp/avif.
2. Диф-API і gzip/brotli на текст. 4) Перевірити повторні запити/ретраї.

3) Зріз витрат на БД

1. Топ-запити (p95/IO) → індекси/батчування. 2) Hot-set в Redis.
2. Архівація старих даних (TTL), read-replicas на дешевому сторі.

4) Припинення «пилки» скейла

1. Збільшити stabilization/cooldown. 2) MinReplicas> 0 на піку.
2. Передпрогрів конектів/TLS. 4) Зрізати зайві ретраї.

Приклад «економного» Nginx (стиснення, кеш, SWR)

nginx proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=EDGE:512m max_size=50g inactive=7d;

server {
listen 443 ssl http2 reuseport;

Compression brotli on; brotli_comp_level 5; gzip on;

Static: year, immutable location/assets/{
add_header Cache-Control "public, max-age=31536000, immutable" always;
try_files $uri =404;
}

Semi-dynamics: s-maxage + SWR location/catalog/{
proxy_cache EDGE;
add_header Cache-Control "public, s-maxage=600, max-age=120, stale-while-revalidate=900, stale-if-error=86400" always;
proxy_ignore_headers Set-Cookie;
proxy_pass https://origin_catalog;
}
}

Специфіка для iGaming/фінтех

Піки (матчі/турніри): заздалегідь підняти'minReplicas'і прогріти CDN/TLS, але тримати headroom точково - тільки на гарячих шляхах (каталоги, лобі, матчі), решта - в деград-режим.
Платежі/PSP: кеш довідників (BIN, ліміти), ідемпотентність знижує вартість дублів, окремий egress-пул для білих списків провайдерів.
Антифрод/боти: «сірі» маршрути і дешеві челенджі на краю замість дорогої глибокої перевірки по кожному запиту.
Лайв-контент/провайдери: кеш на краю + обмеження частоти оновлень; CDN-контракти переглядати до великих івентів.

Підсумок

Оптимізація витрат - це не разова чистка, а постійний FinOps-процес: вимірюйте цінність ($/одиницю), автоматизуйте економні рішення (кеш/TTL/семплювання), використовуйте знижки і правильні класи ресурсів, тримайте еластичність під SLO і не ускладнюйте архітектуру там, де вона не окупається. Так ви знизите TCO, зберігши швидкість продукту і стійкість платформи.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.