О чём история
Компания agio создаёт облачную платформу для CG‑студий. Она предоставляет творческим командам облачные технические ресурсы, готовые к использованию в CGI — компьютерной графике — и позволяет организовать полноценное CG‑производство в облаке. Уже сейчас несколько молодых студий построили свою ежедневную работу на сервисах agio.
Команда agio с нуля создала свой продукт в Yandex Cloud. Компания воплотила в облачном сервисе многолетний опыт технической организации студии on‑premise. agio тестировала облачную платформу в течение трёх месяцев и затем приступила к созданию сервиса. Вся разработка заняла восемь месяцев: за это время основатели настроили облачную инфраструктуру, развернули производственную функциональность и разработали веб‑приложения для доступа творческих команд.
Задача компании
До запуска agio её основатели Антон Гридчин и Илья Обухов занимались оптимизацией и настройкой технологических процессов в творческих командах. Развитие облачных технологий привело к идее создать платформу для распределённого производства, доступную и крупным, и небольшим студиям, и фрилансерам. Её сервисы дали бы молодым командам доступ к техническим возможностям крупных студий, а технологически развитым коллективам — дополнительные мощности и удобные инструменты интеграции субподрядчиков и индивидуалов.
Перед проектом agio стояли масштабные задачи:
- предоставлять готовые к использованию вычислительные ресурсы для производства компьютерной графики;
- создать приложение для проектной работы CG‑художников — рабочий стол со всеми необходимыми инструментами;
- разработать производственный конвейер на облачной инфраструктуре и предоставить к нему открытый доступ.
Компания agio планировала строить свой сервис поверх облачной платформы, которая должна была соответствовать следующим требованиям:
- детально конфигурируемые виртуальные машины для CPU/GPU‑вычислений;
- конфигурации с дешёвым GPU для рабочих станций;
- API/SDK для менеджмента виртуальных машин;
- S3‑совместимое хранилище для размещения больших объёмов клиентских данных.
Технический директор agio в течение трёх месяцев изучал несколько вариантов облачных платформ. Из всех них необходимым требованиям удовлетворяла только Yandex Cloud. Дополнительным весомым фактором при выборе стала стоимость ресурсов, а именно — Object Storage и прерываемых виртуальных машин.
Собственный облачный сервис на платформе облачного провайдера
В Yandex Cloud компания решает все вопросы от разработки до развёртывания клиентских сервисов. Для этого команда agio выбрала несколько основных сервисов.
Облачная инфраструктура agio
Kubernetes®
В кластере Kubernetes®, развёрнутом на виртуальных машинах Compute Cloud, созданы две ноды, которые несут все сервисы платформы:
- agio API;
- обработчики событий Apache Kafka®;
- рендер‑менеджер на базе OpenCue;
- сервисы аутентификации и авторизации;
- синхронизация данных между хранилищами;
- генерация превью;
- сбор логов (работает связка из сервисов Grafana, Loki и Prometheus).
Yandex Cloud Functions
С помощью функций система агрегирует метрики виртуальных машин и возвращает результат в сервис оповещений. Также в функции команда анализирует, как обрабатываются события из Apache Kafka®.
Хранение данных
Основной массив данных — это изображения, а также промежуточные результаты вычислений. Они передаются по производственной цепочке и являются исходными для других процессов, которые в свою очередь порождают новые данные.
В Object Storage хранятся проектные файлы клиентов платформы, объём хранения динамично меняется. Количество данных на пике производства полнометражного фильма исчисляется сотнями терабайт, для небольших рекламных роликов колеблется в районе 1–2 ТБ.
Клиентские данные, такие как профили пользователей, конфигурации производства, проектные сущности, состояния, связи, хранятся в PostgreSQL. Для управления событиями внутри платформы используется Apache Kafka®, а метаданные файлов хранятся в Redis™. Все эти сервисы развёрнуты на виртуальных машинах Compute Cloud.
Как работает agio
В основном клиенты agio взаимодействуют с платформой через веб‑интерфейс. Но у платформы есть локальный набор интеграций с профессиональным ПО и десктопное приложение сервиса ·drive, которое реализует доступ к проектным данным.
Платформа agio — это в первую очередь студия в облаке. Работа начинается в сервисе ·desk, где художник видит все назначенные ему задачи.
Когда он открывает задачу, сервис ·ws предоставляет доступ к облачной рабочей станции. А если есть физическое рабочее место, сервис ·drive локально синхронизирует необходимые данные и открывает профессиональный софт и сцену в контексте выбранного таска.
Дальше художник делает свою творческую работу. Когда всё готово, система сохраняет, синхронизирует, конвертирует, рендерит, регистрирует выходные данные и отправляет результат на следующий производственный этап.
Рендеринг происходит в сервисе ·farm. При поступлении запроса на рендеринг запускается несколько процессов: проверка параметров, синхронизация данных, создание задач в рендер‑менеджере, запуск виртуальных машин для рендеринга, монтирование data storage проекта. ·farm использует распределённые вычисления для создания последовательности изображений. После того как рендеринг завершён, ненужные ноды удаляются, а файл при необходимости синхронизируется в другое хранилище. Затем сервис считает время рендеринга и списывает деньги с внутреннего счёта клиента.
Компания agio позволяет клиентам провести весь процесс работы над графикой в одном комплексе сервисов от начала и до конца или подключить к своему производству только необходимую часть функциональности платформы. С помощью API системы можно интегрировать сервис в сложившиеся рабочие процессы.
Стабильная работа продукта и сокращение времени на развёртывание
Компания создала облачную платформу для производства CG за 8 месяцев. Сейчас система используется для производства графики в десятках рекламных и кинопроектов от нескольких VFX‑студий.
В дальнейшем команда планирует расширять клиентскую базу в России. Главная задача в этом направлении — привлечь студии, которые уже активно используют облачные ресурсы, показав им комплексный подход в рамках платформы agio. Кроме того, agio планирует выходить на рынок Юго‑Восточной Азии, где уже есть большой спрос на такие технологичные проекты.
Мнение
Для нас Yandex Cloud сейчас — это удобное место для разработки и развития нашего облачного продукта. Являясь внешним сервисом для CG‑студий, мы должны демонстрировать заметные преимущества собственных технических реализаций. Поэтому мы уделяем много внимания оптимизации использования ресурсов и минимизируем непродуктивные затраты наших клиентов с помощью собственных разработок, например в части распределения вычислений. А Yandex Cloud, в свою очередь, предоставляет нам быстрое и устойчивое к нагрузкам файловое хранилище, а также управляемые сервисы баз данных.