О чём история

Компания 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, где художник видит все назначенные ему задачи.

Сервис ·desk

Когда он открывает задачу, сервис ·ws предоставляет доступ к облачной рабочей станции. А если есть физическое рабочее место, сервис ·drive локально синхронизирует необходимые данные и открывает профессиональный софт и сцену в контексте выбранного таска.

Принципиальная схема работы agio

Дальше художник делает свою творческую работу. Когда всё готово, система сохраняет, синхронизирует, конвертирует, рендерит, регистрирует выходные данные и отправляет результат на следующий производственный этап.

Рендеринг происходит в сервисе ·farm. При поступлении запроса на рендеринг запускается несколько процессов: проверка параметров, синхронизация данных, создание задач в рендер‑менеджере, запуск виртуальных машин для рендеринга, монтирование data storage проекта. ·farm использует распределённые вычисления для создания последовательности изображений. После того как рендеринг завершён, ненужные ноды удаляются, а файл при необходимости синхронизируется в другое хранилище. Затем сервис считает время рендеринга и списывает деньги с внутреннего счёта клиента.

Интерфейс ·farm

Компания agio позволяет клиентам провести весь процесс работы над графикой в одном комплексе сервисов от начала и до конца или подключить к своему производству только необходимую часть функциональности платформы. С помощью API системы можно интегрировать сервис в сложившиеся рабочие процессы.

Стабильная работа продукта и сокращение времени на развёртывание

Компания создала облачную платформу для производства CG за 8 месяцев. Сейчас система используется для производства графики в десятках рекламных и кинопроектов от нескольких VFX‑студий.

В дальнейшем команда планирует расширять клиентскую базу в России. Главная задача в этом направлении — привлечь студии, которые уже активно используют облачные ресурсы, показав им комплексный подход в рамках платформы agio. Кроме того, agio планирует выходить на рынок Юго‑Восточной Азии, где уже есть большой спрос на такие технологичные проекты.

Мнение

Антон Гридчин,
основатель agio
Антон Гридчин,
основатель agio

Для нас Yandex Cloud сейчас — это удобное место для разработки и развития нашего облачного продукта. Являясь внешним сервисом для CG‑студий, мы должны демонстрировать заметные преимущества собственных технических реализаций. Поэтому мы уделяем много внимания оптимизации использования ресурсов и минимизируем непродуктивные затраты наших клиентов с помощью собственных разработок, например в части распределения вычислений. А Yandex Cloud, в свою очередь, предоставляет нам быстрое и устойчивое к нагрузкам файловое хранилище, а также управляемые сервисы баз данных.