Не платіть за бездіяльні GPU. Забезпечте обчислювальні ресурси вчасно, обробіть робоче навантаження та знищте їх — перетворюючи капітальні витрати на операційні витрати за роботу.
Ваше робоче навантаження є сплесковим — завдання кодування відео, які зростають, коли завантажується контент, запуски навчання ML, які потребують 8 GPU протягом 4 годин, а потім нічого, завдання пакетного інференсу, що запускаються бізнес-подіями, або рендеринг, що виконується вночі. Ви або перепроєктовані (платите за бездіяльні ресурси 80% часу), або недопроєктовані (завдання стоять у черзі годинами під час піків). Вам потрібна архітектура, яка забезпечує саме ті обчислювальні ресурси, які вам потрібні, коли вони потрібні, і звільняє їх, коли завдання завершено — без штрафу за холодний старт, що робить "масштабування до нуля" непрактичним для GPU-навантажень.
Explore more design patterns and system architectures
Наші архітектори можуть допомогти вам проектувати та будувати системи, використовуючи цей шаблон для ваших конкретних вимог.
Зв'яжіться з нами
Архітектура масштабування ввімкнення-вимкнення керує обчислювальними ресурсами через теплі/холодні пули, забезпечення за допомогою черги завдань та автоматичне знищення. Теплий пул підтримує невелику кількість попередньо ініціалізованих інстансів, готових до негайного використання. Холодний пул забезпечує додаткову ємність з інстансів spot/preemptible, коли попит перевищує теплий пул. Оркестратор завдань направляє роботу на доступні інстанси, контролює прогрес, обробляє повторні спроби при виселенні spot та запускає масштабування вниз, коли черга спорожняється. Шаблон є особливо критичним для GPU-навантажень, де холодний старт (завантаження контейнера + завантаження моделі) може зайняти 3-10 хвилин.
Система зосереджена на черзі завдань (SQS, Redis або користувацька), яка буферизує вхідні запити на роботу. Контролер масштабування контролює глибину черги та забезпечує інстанси спочатку з теплого пулу, потім з холодного пулу (інстанси spot). Кожен інстанс робітника витягує завдання з черги, виконує робоче навантаження (кодування, навчання, інференс), повідомляє про завершення та повертається в пул або завершує роботу. Менеджер контрольних точок обробляє виселення 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/високі обчислювальні завдання, які дорогі у бездіяльності | Робоче навантаження є легким процесором, що підходить для серверлес (Lambda) |
| Завдання можуть терпіти 1-5 хвилинний холодний старт для забезпечення холодного пулу | Потрібна затримка запуску завдань менше секунди — вам потрібна інфраструктура завжди увімкнена |
| Оптимізація витрат є основною турботою, і ціноутворення spot пропонує 60-90% заощаджень | Переривання spot спричинить втрату даних, яку контрольні точки не можуть пом'якшити |
MW проектує масштабування ввімкнення-вимкнення з поглядом на "вартість за завдання" — ми моделюємо загальну вартість обробки одного одиниці роботи (одне відео, один запуск навчання, один пакетний інференс) за різними стратегіями масштабування та вибираємо ту, яка мінімізує вартість при необхідному SLA затримки. Наші реалізації включають інформаційні панелі витрат у реальному часі, які показують вартість за завдання, використання інфраструктури та заощадження spot. Ми побудували інфраструктуру GPU з масштабуванням ввімкнення-вимкнення, яка знизила витрати на обробку відео на 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 scaling до баз даних, використовуючи пропозиції serverless баз даних, такі як Aurora Serverless, Neon або PlanetScale, які масштабують compute до нуля під час періодів простою, зберігаючи при цьому сховище постійним та миттєво доступним. Для stateful workloads, які не можуть використовувати serverless баз даних, ми впроваджуємо read-replica scaling, яке додає та видаляє репліки на основі навантаження запитів, зберігаючи при цьому мінімальний primary instance завжди запущеним. Цей гібридний підхід надає клієнтам переваги масштабування щодо витрат для їхнього data tier без складності керування станом бази даних під час циклів зупинки та перезапуску.
MicrocosmWorks розгортає комплексну спостережуваність масштабування, яка відстежує кількість інстансів, затримку подій масштабування, невдалі спроби масштабування та розрив між бажаною та фактичною потужністю в реальному часі за допомогою дашбордів Grafana або Datadog. Ми налаштовуємо багатоканальні сповіщення щодо збоїв масштабування, тривалої високої завантаженості, що свідчить про те, що верхня межа масштабування занадто низька, та аномалій витрат, які вказують на неконтрольоване масштабування. Наші ранербуки включають автоматизоване усунення для поширених типів збоїв, таких як досягнення лімітів інстансів хмарного провайдера або виникнення помилок недостатньої потужності в конкретних зонах доступності.