Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)

240 views

Published on

HighLoad++ 2017

Зал Калининград, 7 ноября, 14:00

Тезисы:
http://www.highload.ru/2017/abstracts/2939.html

CinemaVR - это сеть аттракционов виртуальной реальности, расположенных в торговых центрах и кинотеатрах.

Сеть была запущена 1-го января с 10 локациями, в августе локаций было 25, к концу года будет 80.

На каждой локации 4-8 игровых машин и локальный сервер (итого: флот в сотню машин), которыми нужно управлять: контролировать, что конфигурация операционной системы соответствует целевой; что игровой контент и сопряженные сервисы скопированы и настроены; мониторить загрузку, статус работы, нетиповые события; собирать бизнес-события и синхронизировать данные, которые должны быть общими во всей сети.
...

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Масштабирование сети VR-аттракционов CinemaVR / Андрей Татаринов (VRTech)

  1. 1. Масштабирование сети VR- аттракционов CinemaVR Андрей Татаринов v9
  2. 2. Про VRTech и меня • VRTech – фонд, вкладывается в VR-проекты • Андрей Татаринов • CTO в VRTech • До этого CTO в Спутник, Zvooq, Enter
  3. 3. Про CinemaVR • Сеть аттракционов виртуальной реальности • Размещение рядом с кинотеатрами в Москве и Петербурге • Модульная архитектура • Уникальные игры по сюжетам фильмов • Сеть франшиз
  4. 4. Сеть CinemaVR • Москва • Санкт-Петербург • Краснодар
  5. 5. Куб CinemaVR
  6. 6. Компоненты системы • VR • HTC Vive, SteamVR • Контент • Собственная разработка – unity/unreal • Сторонний контент • Управление локацией • Агент – C# • Сервер локации – Ruby on Rails • Глобальный сервер – Ruby on Rails • Управление конфигурацией • Chef • Мониторинг/Аналитика • Prometheus, Grafana, Kibana, Jupyter
  7. 7. CinemaVR в цифрах • На момент запуска • 10 локаций • 40 Win-машин + 10 Linux-серверов • Сейчас • 40 локаций • 100 Win-машин + 40 Linux-серверов • Облако
  8. 8. Подход к разработке • Итеративное развитие • Минимизация необратимых решений • Постоянное изменение • Контроль сложности • (!) Баланс временных и постоянных решений • Вовремя превращать временное в постоянное
  9. 9. Платформа CinemaVR • Централизованное управление и поддержка • Автоматизация бизнес-процессов • Низкие требования к обслуживающему персоналу • Устойчивость к внешним условиям
  10. 10. Интернет
  11. 11. Задачи платформы • Управление конфигурацией / дистрибуция контента • Мониторинг • Управление локацией
  12. 12. Управление конфигурацией • Централизованное управление • Необратимое решение • Кандидаты: • Ansible, Chef, Puppet, Salt, …
  13. 13. Управление конфигурацией • Push • Нет агента • Проще, удобнее, интуитивнее • Ansible, (?)Salt • Pull • Агент на каждом хосте • Сложнее в настройке • Chef, Puppet • Подходит только pull • Хост может быть недоступен – интернет • Изменение может не примениться с первого раза – интернет • Chef, т.к. Puppet платный для Windows
  14. 14. Управление конфигурацией
  15. 15. Управление конфигурацией
  16. 16. Управление конфигурацией 1. Установить Win 10 Pro 2. Запустить bootstrap chef-client
  17. 17. Управление конфигурацией
  18. 18. Управление конфигурацией
  19. 19. Управление конфигурацией
  20. 20. Управление конфигурацией
  21. 21. Дистрибуция контента • Игры большие • 2-10Гб / игра • 5-7 апдейтов после релиза
  22. 22. Дистрибуция контента
  23. 23. Дистрибуция контента
  24. 24. Дистрибуция контента
  25. 25. Управление конфигурацией
  26. 26. Управление конфигурацией
  27. 27. Управление конфигурацией
  28. 28. Управление конфигурацией
  29. 29. Управление конфигурацией
  30. 30. Управление конфигурацией
  31. 31. Мониторинг
  32. 32. Мониторинг • Nagios/Zabbix • Не достаточно гибкие в работе с метриками • Graphite • Не выдержал нагрузку по количеству метрик • Prometheus • Ок
  33. 33. Мониторинг • ~700 метрик с локации → всего 26~28K метрик • Сбор каждые 15 секунд
  34. 34. Мониторинг • ~700 метрик с локации → всего 26~28K метрик • Сбор каждые 15 секунд • CPU/Диск/Память/Сеть • GPU – нагрузка/память/температура • Бизнес-процессы – версия и работоспособность компонент, версия игр, факт запуска игры и тп
  35. 35. Мониторинг
  36. 36. Мониторинг
  37. 37. Алерты • Системные метрики • GPU • Работоспособность систем: • Сервер локации • Статус работы chef • Синхронизация • Время срабатывания – 10 ~ 60 мин
  38. 38. Алерты
  39. 39. Алерты
  40. 40. Управление локацией • Обслуживание одного клиента • Принять билет/промокод • Зарегистрировать в системе • Запустить игру • Остановить игру по истечении сессии • Сохранить результат (игровой счет) • Должно работать всегда
  41. 41. Управление локацией
  42. 42. Управление локацией
  43. 43. Управление локацией
  44. 44. Синхронизация данных Централизованные процессы: • Промокоды • Лояльность • Скоринг • Отчетность / аналитика Ограничение: • Не копировать полную информацию на каждую локацию
  45. 45. Синхронизация данных Промокоды: • Выдать промокод по запросу • Принять на площадке / валидировать • Погасить • Сформировать отчетность по использованию
  46. 46. Синхронизация данных
  47. 47. Синхронизация данных Новые вводные: • Уникальные промокоды (с привязкой к телефону) • Разные свойства (длительность, допустимый контент)
  48. 48. Синхронизация данных
  49. 49. Синхронизация данных
  50. 50. Синхронизация данных
  51. 51. Синхронизация данных JSON
  52. 52. Синхронизация данных
  53. 53. Синхронизация данных
  54. 54. Синхронизация данных
  55. 55. Синхронизация данных
  56. 56. Выводы Хорошо: • Начинать с простого, временного решения • Переделывать по мере необходимости • Минимизировать необратимые решения • Контролировать баланс временных и постоянных решений • Поддерживать общую сложность так, чтобы обойтись без rock- stars
  57. 57. Спасибо Андрей Татаринов at@vrtech.global

×