Шаблон масштабування On-Off для робочих навантажень AI та обробки відео
Платформа для обробки відео на базі AI потребувала обробки дуже мінливих робочих навантажень — від нуля завдань у неробочий час до сотень одночасних завдань з обробки відео та AI inference під час пікових навантажень — не сплачуючи за простій GPU та обчислювальні ресурси.
Обговоріть Ваш Проєкт
Виклик
Робочі навантаження AI та обробки відео за своєю суттю є переривчастими та дорогими:
- GPU instances є дорогими незалежно від того, чи обробляють вони завдання, чи простоюють
- Video encoding, transcription та AI inference вимагають різних профілів ресурсів
- Співвідношення пікового до мінімального навантаження становило 50:1 — понад 200 завдань під час піку, майже нуль вночі
- Традиційне auto-scaling було занадто повільним (5-10 хвилин cold start) для чутливих до часу запитів користувачів
- Фіксована інфраструктура, виділена для пікових навантажень, означала 80%+ втрат у непікові години
Наше Рішення
Ми реалізували шаблон масштабування On-Off — гібридну архітектуру, де обчислювальні ресурси надаються just-in-time для активних робочих навантажень і повністю звільняються, коли простоюють, з warm pools для завдань, чутливих до затримки, і cold pools для пакетних завдань.
Архітектура
- Черга завдань (Job Queue): Черга завдань на основі бази даних з класифікацією пріоритетів
- Оркестратор (Orchestrator): Сервіс, що керує життєвим циклом ресурсів та маршрутизацією завдань
- GPU Workers (AI): Cloud GPU pods для inference (розпізнавання об'єктів, транскрипція, розпізнавання мовців)
- CPU Workers (Відео): Cloud VMs для video encoding та rendering
- Warm Pool: Попередньо ініціалізовані instances для завдань, чутливих до затримки (< 30 секунд запуску)
- Cold Pool: On-demand instances для batch/bulk обробки (2-5 хвилин запуску є прийнятними)
Реалізація шаблону On-Off
Стани життєвого циклу ресурсів
Ресурси проходять визначений життєвий цикл: від повністю звільнених (нульова вартість), через виділення та розігрів (завантаження моделей, перевірки працездатності), до станів готовності та обробки, потім через cooldown window перед поверненням до стану звільнення.
Стратегія Warm Pool
Для обробки, чутливої до затримки (ініційована користувачем, очікує результатів за хвилини):
- Підтримувати мінімальний warm pool instances протягом робочих годин
- Попередньо завантажувати AI моделі під час запуску контейнера
- Маршрутизувати вхідні завдання спочатку до warm instances
- Масштабувати додаткові warm instances, коли глибина черги перевищує поріг
- Налаштовуваний cooldown timer підтримує instances активними між спорадичними завданнями
Стратегія Cold Pool
Для пакетної обробки (нічні об'ємні завдання, нетермінові повторні кодування):
- За замовчуванням нуль instances працюють
- Черга завдань (Job queue) запускає виділення ресурсів при надходженні пакетних завдань
- Instances, оптимізовані для bulk обробки, з пріоритетом пропускної здатності над затримкою
- Завершувати роботу негайно після завершення пакета
- Використовувати spot/preemptible instances для значної економії коштів
Класифікація та маршрутизація завдань
Завдання автоматично класифікуються за пріоритетом та типом, потім маршрутизуються до відповідного пулу:
- Високопріоритетні AI завдання, ініційовані користувачем, маршрутизуються до warm GPU pools
- Критичні real-time завдання маршрутизуються до постійно активних dedicated instances
- Середньопріоритетні encoding завдання маршрутизуються до warm або cold CPU pools
- Низькопріоритетні batch завдання маршрутизуються до cold spot/preemptible instances
Логіка оркестратора
Тригери масштабування вгору
- Глибина черги перевищує налаштовуваний поріг
- Середній час очікування перевищує SLA для рівня пріоритету
- Заплановане нарощування до відомих пікових годин
- Ручний тригер через admin API для очікуваних піків трафіку
Тригери масштабування вниз
- Жодне завдання не оброблялося протягом cooldown window
- Заплановане згортання після пікових годин
- Всі завдання в черзі виконано, без нових надходжень
- Досягнуто порогового значення вартості для розрахункового періоду
Моніторинг стану та відновлення
- Регулярні health probes на всіх активних instances
- Несправні instances автоматично замінюються
- Невдалі завдання повторно ставляться в чергу з лічильником спроб і маршрутизуються до іншого instance
- Dead letter queue для завдань, що перевищили максимальну кількість спроб
Вплив на витрати
Шаблон On-Off забезпечив приблизно 70% зниження витрат порівняно з постійно активною фіксованою інфраструктурою шляхом усунення простою обчислювальних ресурсів у непікові години, оптимізації розміру ресурсів для кожного типу завдань та використання spot instances для пакетних робочих навантажень.
Основні функції
- Нульова вартість простою — Ресурси повністю звільняються, коли не обробляють завдання
- Warm Pools — Попередньо ініціалізовані instances для робочих навантажень, чутливих до затримки
- Cold Pools — On-demand виділення ресурсів для пакетних завдань за найнижчою вартістю
- Класифікація завдань — Автоматична маршрутизація на основі пріоритету, типу та вимог до затримки
- Cooldown Windows — Налаштовуваний тайм-аут простою запобігає передчасному масштабуванню вниз між сплесками
- Підтримка Spot/Preemptible — Пакетні завдання маршрутизуються до instances зі знижкою для значної економії
- Моніторинг стану та відновлення — Автоматична заміна несправних instances з повторним додаванням завдань у чергу
- Заплановане масштабування — Передбачення відомих шаблонів трафіку за допомогою правил виділення ресурсів за часом
Результати
Технологічний Стек
caseStudyDetail.more Кейси
Ознайомтесь з іншими нашими технічними впровадженнями
Використання RunPod для масштабованого, економічно ефективного висновку AI
Платформа відеоаналітики на базі AI потребувала високопродуктивних GPU обчислень для виявлення об'єктів у реальному часі та висновку через декілька паралельних відеопотоків — без надмірної вартості виділених GPU серверів, що працюють 24/7.
Обробка рахунків-фактур за допомогою AI, OCR та інтеграції з QuickBooks
Середній бізнес, який щомісяця обробляє сотні рахунків-фактур від постачальників, потребував усунення ручного введення даних шляхом автоматичного вилучення даних рахунків-фактур за допомогою AI/OCR та їх прямої синхронізації з QuickBooks для ведення бухгалтерського обліку та відстеження платежів.
Готові Трансформувати Свій Бізнес?
Давайте обговоримо, як ми можемо застосувати подібні рішення для ваших завдань.