Не платіть за простій GPU. Забезпечуйте обчислювальні ресурси just-in-time, обробляйте робоче навантаження та вимикайте їх — перетворюючи капітальні витрати на операційні витрати за кожне завдання.
Ваше робоче навантаження є нерівномірним — завдання кодування відео, які різко зростають при завантаженні контенту; запуски навчання ML, яким потрібно 8 GPU протягом 4 годин, а потім нічого; завдання пакетного інференсу, що запускаються бізнес-подіями; або конвеєри рендерингу, що працюють вночі. Ви або надлишково забезпечені ресурсами (платите за простій ресурсів 80% часу), або недостатньо забезпечені (завдання стоять у черзі годинами під час піків). Вам потрібна архітектура, яка надає рівно стільки обчислювальних ресурсів, скільки вам потрібно, коли вам це потрібно, і звільняє їх після завершення завдання — без штрафу за "холодний старт", який робить "scale to zero" непрактичним для робочих навантажень GPU.
Explore more design patterns and system architectures
Наші архітектори можуть допомогти вам проектувати та будувати системи, використовуючи цей шаблон для ваших конкретних вимог.
Зв'яжіться з нами
Архітектура масштабування "on-off" керує обчислювальними ресурсами за допомогою гарячого/холодного пулу (warm/cold pooling), забезпечення ресурсів на основі черги завдань та автоматичного видалення (teardown). Теплий пул (warm pool) підтримує невелику кількість попередньо ініціалізованих екземплярів, готових до негайного використання. Холодний пул (cold pool) забезпечує додаткову потужність з spot/preemptible екземплярів, коли попит перевищує можливості теплого пулу. Оркестратор завдань (job orchestrator) направляє роботу до доступних екземплярів, відстежує прогрес, обробляє повторні спроби у разі припинення роботи spot екземплярів і запускає масштабування вниз (scale-down), коли черга спустошується. Цей шаблон особливо важливий для робочих навантажень GPU, де холодний старт (завантаження контейнера + завантаження моделі) може займати 3-10 хвилин.
Система зосереджена на черзі завдань (job queue) (SQS, Redis або кастомна), яка буферує вхідні запити на роботу. Контролер масштабування (scaling controller) відстежує глибину черги та забезпечує екземпляри спочатку з теплого пулу (warm pool), а потім з холодного пулу (cold pool) (spot instances). Кожен робочий екземпляр (worker instance) витягує завдання з черги, виконує робоче навантаження (кодування, навчання, інференс), повідомляє про завершення та повертається до пулу або завершує роботу. Менеджер контрольних точок (checkpoint manager) обробляє припинення роботи spot екземплярів, зберігаючи проміжний стан в S3, дозволяючи завданням відновлюватися на іншому екземплярі без початку з нуля.
| Рівень | Технології |
|---|---|
| Обчислення | AWS EC2 Spot (G5/P4), GCP Preemptible (A2/L4), RunPod Serverless, Modal |
| Оркестрація | Kubernetes (Karpenter для автомасштабування), AWS Batch, кастомний оркестратор завдань |
| Черга завдань | AWS SQS, BullMQ (Redis), Temporal, Celery |
| Зберігання | S3 (контрольні точки, артефакти моделі), NVMe (кеш моделі), EFS (спільний робочий простір) |
| Моніторинг | CloudWatch/Prometheus (глибина черги, використання екземплярів, затримка завдань), кастомні панелі вартості |
| Використовувати, коли | Уникати, коли |
|---|---|
| Робоче навантаження є нерівномірним — піковий попит перевищує середній у 5+ разів | Трафік стабільний та передбачуваний — зарезервовані екземпляри відповідного розміру дешевші |
| Завдання GPU/високообчислювальні, які дорогі під час простою | Робоче навантаження є легким процесом CPU, що підходить для безсерверних рішень (Lambda) |
| Завдання можуть витримати холодний старт 1-5 хвилин для забезпечення холодного пулу | Потрібна затримка запуску завдання менше секунди — вам потрібна завжди ввімкнена інфраструктура |
| Оптимізація вартості є основним пріоритетом, а spot pricing пропонує 60-90% економії | Переривання spot екземпляра призведе до втрати даних, яку не може пом'якшити контрольна точка |
MW розробляє масштабування "on-off" з урахуванням "вартості за завдання" — ми моделюємо загальну вартість обробки однієї одиниці роботи (одне відео, один запуск навчання, один пакетний інференс) за різними стратегіями масштабування та вибираємо ту, що мінімізує вартість при необхідному SLA затримки. Наші реалізації включають панелі вартості в реальному часі, які показують вартість за завдання, використання інфраструктури та економію на spot екземплярах. Ми створили інфраструктуру GPU "on-off", яка знизила витрати на обробку відео на 70% порівняно із зарезервованими екземплярами, та кластери для навчання ML, які забезпечують 64 GPU для 4-годинного запуску навчання та автоматично їх звільняють.
Безпека – це не функція, яку додають після запуску. Це архітектурна властивість — система або була розроблена з її урахуванням, або ні.
Клієнти MicrocosmWorks з великою кількістю пакетних або періодичних робочих навантажень зазвичай спостерігають 60-80% скорочення витрат на хмару після впровадження on-off масштабування, оскільки обчислювальні ресурси працюють лише під час активних вікон обробки, а не 24/7. Ми розробляємо політики масштабування на основі фактичної телеметрії використання — наприклад, конвеєр обробки даних, що працює 4 години щодня, оплачує лише ці 4 години замість повних 24. Наші архітектори аналізують ваші моделі робочих навантажень під час фази дослідження, щоб спрогнозувати точну економію до початку будь-якого впровадження.
Час холодного старту варіюється від 2-3 секунд для контейнерних застосунків на попередньо розігрітих пулах вузлів до 5-10 хвилин для робочих навантажень, що вимагають спеціалізованих GPU інстансів або завантаження великих моделей, і MicrocosmWorks використовує кілька технік для мінімізації цієї затримки. Ми впроваджуємо предиктивне масштабування, що запускає ресурси до очікуваного попиту, використовуючи історичні моделі трафіку та заплановані події, а також використовуємо попереднє вивантаження образів контейнерів та резервування теплих пулів для робочих навантажень, чутливих до затримок. Для застосунків, які не можуть терпіти жодного холодного старту, ми підтримуємо мінімальний теплий базовий рівень, що агресивно масштабується вгору, коли з'являється попит.
MicrocosmWorks впроваджує реактивне авто-масштабування з агресивними політиками масштабування вгору, що запускаються глибиною черги, завантаженням CPU або спеціальними метриками застосунків, у поєднанні з більш поступовими політиками масштабування вниз, які включають періоди охолодження для уникнення надмірного перемикання. Ми налаштовуємо буфери надлишкового резервування під час подій масштабування вгору, щоб система передбачала постійне зростання, а не наздоганяла попит по одному інстансу. Для справді непередбачуваних сплесків, таких як флеш-розпродажі або вірусні події, ми попередньо виділяємо потужності, використовуючи керовані подіями тригери з вашого маркетингового або операційного календаря.
MicrocosmWorks застосовує on-off масштабування до баз даних, використовуючи безсерверні пропозиції баз даних, такі як Aurora Serverless, Neon або PlanetScale, які масштабують обчислювальні ресурси до нуля під час простою, зберігаючи сховище постійним та миттєво доступним. Для робочих навантажень зі станом, які не можуть використовувати безсерверні бази даних, ми впроваджуємо масштабування реплік для читання, що додає та видаляє репліки на основі навантаження запитів, зберігаючи мінімальний первинний інстанс завжди запущеним. Цей гібридний підхід надає клієнтам переваги масштабування для їхнього рівня даних без складності управління станом бази даних під час циклів зупинки та перезапуску.
MicrocosmWorks розгортає комплексну спостережуваність масштабування, яка відстежує кількість інстансів, затримку подій масштабування, невдалі спроби масштабування та розрив між бажаною та фактичною потужністю в реальному часі за допомогою дашбордів Grafana або Datadog. Ми налаштовуємо багатоканальні оповіщення про збої масштабування, тривале високе використання, що свідчить про занадто низьку стелю масштабування, та аномалії витрат, що вказують на неконтрольоване масштабування. Наші runbooks включають автоматизоване виправлення для поширених режимів відмови, таких як досягнення лімітів інстансів хмарного провайдера або виникнення помилок недостатньої потужності в певних зонах доступності.