ݺߣ

ݺߣShare a Scribd company logo
Масштабирование
сети VR-
аттракционов
CinemaVR
Андрей Татаринов
v9
Про VRTech и меня
• VRTech – фонд, вкладывается в VR-проекты
• Андрей Татаринов
• CTO в VRTech
• До этого CTO в Спутник, Zvooq, Enter
Про CinemaVR
• Сеть аттракционов
виртуальной реальности
• Размещение рядом с
кинотеатрами в Москве и
Петербурге
• Модульная архитектура
• Уникальные игры по сюжетам
фильмов
• Сеть франшиз
Сеть CinemaVR
• Москва
• Санкт-Петербург
• Краснодар
Куб CinemaVR
Компоненты системы
• VR
• HTC Vive, SteamVR
• Контент
• Собственная разработка – unity/unreal
• Сторонний контент
• Управление локацией
• Агент – C#
• Сервер локации – Ruby on Rails
• Глобальный сервер – Ruby on Rails
• Управление конфигурацией
• Chef
• Мониторинг/Аналитика
• Prometheus, Grafana, Kibana, Jupyter
CinemaVR в цифрах
• На момент запуска
• 10 локаций
• 40 Win-машин + 10 Linux-серверов
• Сейчас
• 40 локаций
• 100 Win-машин + 40 Linux-серверов
• Облако
Подход к разработке
• Итеративное развитие
• Минимизация необратимых решений
• Постоянное изменение
• Контроль сложности
• (!) Баланс временных и постоянных решений
• Вовремя превращать временное в постоянное
Платформа CinemaVR
• Централизованное управление и поддержка
• Автоматизация бизнес-процессов
• Низкие требования к обслуживающему персоналу
• Устойчивость к внешним условиям
Интернет
Задачи платформы
• Управление конфигурацией / дистрибуция контента
• Мониторинг
• Управление локацией
Управление конфигурацией
• Централизованное управление
• Необратимое решение
• Кандидаты:
• Ansible, Chef, Puppet, Salt, …
Управление конфигурацией
• Push
• Нет агента
• Проще, удобнее, интуитивнее
• Ansible, (?)Salt
• Pull
• Агент на каждом хосте
• Сложнее в настройке
• Chef, Puppet
• Подходит только pull
• Хост может быть недоступен – интернет
• Изменение может не примениться с первого раза – интернет
• Chef, т.к. Puppet платный для Windows
Управление конфигурацией
Управление конфигурацией
Управление конфигурацией
1. Установить Win 10 Pro
2. Запустить bootstrap chef-client
Управление конфигурацией
Управление конфигурацией
Управление конфигурацией
Управление конфигурацией
Дистрибуция контента
• Игры большие
• 2-10Гб / игра
• 5-7 апдейтов после релиза
Дистрибуция контента
Дистрибуция контента
Дистрибуция контента
Управление конфигурацией
Управление конфигурацией
Управление конфигурацией
Управление конфигурацией
Управление конфигурацией
Управление конфигурацией
Мониторинг
Мониторинг
• Nagios/Zabbix
• Не достаточно гибкие в работе с метриками
• Graphite
• Не выдержал нагрузку по количеству метрик
• Prometheus
• Ок
Мониторинг
• ~700 метрик с локации → всего 26~28K метрик
• Сбор каждые 15 секунд
Мониторинг
• ~700 метрик с локации → всего 26~28K метрик
• Сбор каждые 15 секунд
• CPU/Диск/Память/Сеть
• GPU – нагрузка/память/температура
• Бизнес-процессы – версия и работоспособность компонент,
версия игр, факт запуска игры и тп
Мониторинг
Мониторинг
Алерты
• Системные метрики
• GPU
• Работоспособность систем:
• Сервер локации
• Статус работы chef
• Синхронизация
• Время срабатывания – 10 ~ 60 мин
Алерты
Алерты
Управление локацией
• Обслуживание одного клиента
• Принять билет/промокод
• Зарегистрировать в системе
• Запустить игру
• Остановить игру по истечении сессии
• Сохранить результат (игровой счет)
• Должно работать всегда
Управление локацией
Управление локацией
Управление локацией
Синхронизация данных
Централизованные процессы:
• Промокоды
• Лояльность
• Скоринг
• Отчетность / аналитика
Ограничение:
• Не копировать полную информацию на каждую локацию
Синхронизация данных
Промокоды:
• Выдать промокод по запросу
• Принять на площадке / валидировать
• Погасить
• Сформировать отчетность по использованию
Синхронизация данных
Синхронизация данных
Новые вводные:
• Уникальные промокоды (с привязкой к телефону)
• Разные свойства (длительность, допустимый контент)
Синхронизация данных
Синхронизация данных
Синхронизация данных
Синхронизация данных
JSON
Синхронизация данных
Синхронизация данных
Синхронизация данных
Синхронизация данных
Выводы
Хорошо:
• Начинать с простого, временного решения
• Переделывать по мере необходимости
• Минимизировать необратимые решения
• Контролировать баланс временных и постоянных решений
• Поддерживать общую сложность так, чтобы обойтись без rock-
stars
Спасибо
Андрей Татаринов
at@vrtech.global

More Related Content

Масштабирование CinemaVR