О чём эта история

Анимационная студия «Воронеж» больше десяти лет создаёт полнометражную и сериальную анимацию. Самые яркие проекты — «Волки и Овцы», «Снежная Королева». В 2023 году студия выпустила полнометражный мультфильм «Руслан и Людмила. Больше, чем сказка» и первый сезон анимационного сериала «Супергерои.ру». Для двух последних, чтобы уложиться в сроки, студия использовала ресурсы Yandex Cloud для рендеринга изображений.

Кроме контента, студия разрабатывает нишевое ПО для анимационной индустрии: первый в России 3D-редактор, который затем будут продавать другим студиям, и трекер задач для медиаиндустрии, который разрабатывают как SaaS-сервис в Yandex Cloud.

Задача компании

Анимация — сложная индустрия, все проекты производят в строго ограниченные сроки. При этом постоянно растёт сложность создаваемого контента, и вычислений нужно всё больше. Время визуализации одного кадра анимации может доходить до десяти часов. Художники вдохновлены выросшими за последние несколько лет мощностями и создают всё более сложные сцены. Производство осложняется и тем, что расчёты визуализации делают на последних этапах производства мультфильма. Поэтому часто возникают ситуации, когда собственных мощностей для расчёта не хватает, и в пиковые моменты нужно большое количество машин на короткие сроки. После пиков эти машины остаются незадействованными, поэтому студия «Воронеж» сконцентрировалась на вопросах оптимизации инфраструктуры.

Основная проблема для студии «Воронеж» состоит в том, что производство анимации нелинейно и основные расчёты происходят неравномерно, чаще всего — ближе к концу процесса. Поэтому нагрузки на инфраструктуру студии зачастую трудно прогнозировать: в отдельные периоды времени они пиковые, а в отдельные — оборудование простаивает. Студия «Воронеж» предположила, что с этой проблемой могут справиться масштабируемые облачные ресурсы.

Компания пробовала работать с разными облачными сервисами до 2022 года для других задач. В том числе был опыт работы с компаниями, которые предоставляют выделенный хостинг, общий веб-хостинг, управляемые серверы, хранилища и облако, но этот опыт был не очень удачный. Для передачи данных партнёрам тогда использовали Amazon Simple Storage Service. Разработчики студии используют собственный GitLab как хранилище артефактов.

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

Студия «Воронеж» старается изолировать свои ресурсы от публичного интернета. И именно из соображений безопасности не пользуется услугами ферм для онлайн-рендеринга. Хотя компания частная и ей нужно соблюдать только собственные стандарты безопасности, для студии важно, чтобы у облачного провайдера был сертификат соответствия стандарту ISO 27701.

Yandex Cloud соответствует критериям студии и не просматривает данные клиентов. Интеллектуальная собственность студии защищена. «Воронеж» контролирует всю используемую инфраструктуру, самостоятельно доставляет нужный софт, синхронизирует данные и т. д.

Повлияла на выбор провайдера надёжность Yandex Cloud и возможность быстро и без участия людей протестировать работу облака, запустить нужную инфраструктуру. С другими провайдерами участие человека и согласования нужны постоянно.

И, что очень важно, Yandex Cloud даёт возможность использовать прерываемые машины.

Решение

Процесс производства сцен мультфильма нелинейный. Если сцену нужно пересчитать, то чаще всего делают перерендер. Иногда что-то исправляют на постобработке. Сцен, в которых всё с первого раза получилось идеально, практически не бывает. Поэтому первые варианты сцен делают без финального света, фонов и т. д. Только проверяют движения персонажей и общие идеи. К последним итерациям делают финальный свет и остальные составляющие финальной картинки.

В полнометражном полуторачасовом фильме до двух тысяч сцен, в двадцатиминутной серии мультсериала — 300 сцен. Предугадать заранее, для какого количества сцен потребуется повторный рендеринг — невозможно, а значит, невозможно точно спрогнозировать объём и время максимальных нагрузок на инфраструктуру. Поэтому решением проблемы стала облачная масштабируемая инфраструктура, в которой можно создавать необходимое количество прерываемых виртуальных машин.

Для работы в облаке нужно синхронизировать много данных, и синхронизация должна быть точечной — только нужные при конкретном расчёте данные и данные, полученные после расчётов. Поэтому нужно определить, сколько именно данных должно храниться в облаке. Одна готовая сцена после расчётов может быть размером в 100 ГБ, которые нужно хранить всего несколько часов, до момента синхронизации. Ресурсы для визуализации хранятся на отдельном сервере, и из-за этого существовала проблема масштабирования. В результате наблюдений за процессами студия пришла к выводу, что запись большинства файлов происходит одновременно в конце выполнения задачи. Так команда студии «Воронеж» выстроила гипотезу, где решить проблему масштабирования и скорости записи данных: помогло бы S3-хранилище.

На первый тестовый прототип для работы с прерываемыми виртуальными машинами Yandex Compute Cloud ушло три недели, над проектом работала небольшая команда. Изначально инфраструктуру для рендера разворачивали вручную, но быстро поняли, что это не очень удобно. Для продакшена команда попробовала Terraform. На его отладку ушло две недели. В результате первые расчёты для продакшена делали уже через пять недель.

Сейчас у проекта гибридная инфраструктура. Переключение на локальную и облачную инфраструктуру происходит автоматически. Вне пиковых нагрузок визуализация проходит локально, при нехватке ресурсов нужные сцены рендерят в облаке. Собственный софт для управления задачами развёрнут и локально, и в облаке. Когда появляется задача на рендеринг, трекер автоматически считает, какие ресурсы нужны для визуализации. Затем Terraform разворачивает в облаке нужную инфраструктуру. Когда рендеринг заканчивается, либо начинается расчёт следующей задачи, либо, если очереди нет, балансировщик отключает ненужные машины, а просчитанные сцены отправляются обратно в инфраструктуру студии. Пока схема работает неидеально, потому что студия находится в Воронеже и скорость передачи данных не всегда высокая. Сейчас студия ещё отлаживает работу автоматического балансировщика — компонент Instance Groups не очень подходит под специфическую работу с визуализацией, иногда создаёт слишком много или слишком мало машин, может отключить машину, которая ещё не закончила расчёты.

Из-за того, что сервисы Yandex Cloud используются только при пиковых нагрузках, нужна выборочная синхронизация ресурсов в облаке и на серверах компании. Для части данных критична производительность обработки, для них используются ВМ Yandex Compute Cloud с NFS-кешем для блоков данных. Для данных, которые не нужно записывать частично или нужно хранить длительное время, студия использует бакеты Yandex Cloud Object Storage. Компания использует несколько постоянно работающих серверов как горячее хранилище, а для хранения финального результата рендеринга также служит бакет Yandex Cloud Object Storage.

Сейчас студия активно работает над несколькими продуктами, которые будут доступны к покупке другими участниками рынка.

Один из таких продуктов — система управления задачами в медиаиндустрии. Приспособить под задачи медиаиндустрии стандартный трекер не получается, а специализированных решений на мировом рынке всего два. В задачах, свойственных индустрии, много специализированных сущностей и сложная иерархия. Например, анимационный сериал поделён на серии, серия — на сиквенсы и шоты, каждый шот длится несколько секунд. Нужно отслеживать смену планов — задачи привязаны к планам. Другой пример: персонажи мультфильма и их окружение, одежда, фоны, реквизит и интерьер. У каждого своя 3D-модель, материалы, структура. На уже подготовленные материалы приходят фидбэки, нужно следить за коммуникацией и изменениями на проекте.

Поэтому студия взялась за разработку собственной системы с учётом особенностей работы создателей контента. А затем оказалось, что на такую систему есть запрос на рынке, поэтому сейчас студия «Воронеж» разрабатывает SaaS-сервис для других студий. Для каждого клиента система разворачивает отдельный инстанс, сейчас команда автоматизирует этот процесс. В трекере хранятся превью видео, поэтому сервис должен обеспечивать безопасность интеллектуальной собственности и поддержку коллективной работы над видео — большого количества итераций, транскодинга, ревью видео и т. п. Для этого продукта студия планирует использовать Object Storage и, возможно, DataLens.

Следующий продукт в линейке — 3D-редактор, который создают при поддержке Российского Фонда Информационных Технологий. Этот редактор студия сама использует для визуализации контента. На рынке он появился в конце ноября. Лучший вариант развёртывания для подобного продукта — облачная инфраструктура, так как 3D-визуализация требует большого количества вычислительных ресурсов. Студия «Воронеж» убеждена, что их продукт будет топовым на рынке аналогичных решений. С помощью 3D-редактора можно будет создавать различные типы освещения или причёсок, использовать изображения множества текстур, описаний материалов. Современные игры, кино и анимацию делают именно так, с учётом множества деталей. Команда студии искала интегрированное решение, но не нашла на рынке ничего подходящего и поэтому создаёт продукт самостоятельно, используя свои знания в области анимации.

Результаты

До начала работы с Yandex Cloud студия «Воронеж» не использовала облака для рендеринга анимации. С помощью Yandex Cloud компания создала гибридную инфраструктуру, в которой реализовала визуализацию мультфильма «Руслан и Людмила» и сериала «Супергерои.ру». В инфраструктуре Yandex Cloud компания создала уже более 400 минут анимации. ПО для 3D-визуализации и трекер показали себя в этом проекте настолько хорошо, что студия решила вывести эти продукты на рынок.

В создании мультфильмов всегда строгие дедлайны. Анонсы выходят за несколько месяцев до премьеры. Переносы обходятся очень дорого, потому что производство от начала и до конца длится несколько лет. Выход контента в срок — главный для студии результат использования сервисов Yandex Cloud. При этом компания сохраняет контроль над контентом и инфраструктурой, без которых использовать облако не решилась бы. Благодаря использованию прерываемых машин «Воронеж» существенно экономит — вычислительные мощности не простаивают вне пиковых нагрузок. Разнообразие и гибкость использования сервисов Yandex Cloud дают возможность реализовать сложную, нестандартную инфраструктуру. Надёжность выхода продуктов повысилась, а сервисы Yandex Cloud не ложатся под нагрузкой.

После перехода в облако произошли изменения в бизнес-процессах компании. Теперь студии никогда не приходится жертвовать качеством картинки.

В ближайших планах студии «Воронеж» улучшить скорость передачи данных и адаптировать для себя автоскейлинг.