2. Про VRTech и меня
• VRTech – фонд, вкладывается в VR-проекты
• Андрей Татаринов
• CTO в VRTech
• До этого CTO в Спутник, Zvooq, Enter
3. Про CinemaVR
• Сеть аттракционов
виртуальной реальности
• Размещение рядом с
кинотеатрами в Москве и
Петербурге
• Модульная архитектура
• Уникальные игры по сюжетам
фильмов
• Сеть франшиз
6. Компоненты системы
• VR
• HTC Vive, SteamVR
• Контент
• Собственная разработка – unity/unreal
• Сторонний контент
• Управление локацией
• Агент – C#
• Сервер локации – Ruby on Rails
• Глобальный сервер – Ruby on Rails
• Управление конфигурацией
• Chef
• Мониторинг/Аналитика
• Prometheus, Grafana, Kibana, Jupyter
7. CinemaVR в цифрах
• На момент запуска
• 10 локаций
• 40 Win-машин + 10 Linux-серверов
• Сейчас
• 40 локаций
• 100 Win-машин + 40 Linux-серверов
• Облако
8. Подход к разработке
• Итеративное развитие
• Минимизация необратимых решений
• Постоянное изменение
• Контроль сложности
• (!) Баланс временных и постоянных решений
• Вовремя превращать временное в постоянное
9. Платформа CinemaVR
• Централизованное управление и поддержка
• Автоматизация бизнес-процессов
• Низкие требования к обслуживающему персоналу
• Устойчивость к внешним условиям
13. Управление конфигурацией
• Push
• Нет агента
• Проще, удобнее, интуитивнее
• Ansible, (?)Salt
• Pull
• Агент на каждом хосте
• Сложнее в настройке
• Chef, Puppet
• Подходит только pull
• Хост может быть недоступен – интернет
• Изменение может не примениться с первого раза – интернет
• Chef, т.к. Puppet платный для Windows
34. Мониторинг
• ~700 метрик с локации → всего 26~28K метрик
• Сбор каждые 15 секунд
• CPU/Диск/Память/Сеть
• GPU – нагрузка/память/температура
• Бизнес-процессы – версия и работоспособность компонент,
версия игр, факт запуска игры и тп
40. Управление локацией
• Обслуживание одного клиента
• Принять билет/промокод
• Зарегистрировать в системе
• Запустить игру
• Остановить игру по истечении сессии
• Сохранить результат (игровой счет)
• Должно работать всегда
56. Выводы
Хорошо:
• Начинать с простого, временного решения
• Переделывать по мере необходимости
• Минимизировать необратимые решения
• Контролировать баланс временных и постоянных решений
• Поддерживать общую сложность так, чтобы обойтись без rock-
stars