SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
ДОСТАВЛЯЯ
ВЕБ-КОНТЕНТ
В ИГРУ
Максим Щепелин, Wargaming
MMO battle-arena с использованием военной техники,
первой половины XX века
Геймплей состоит из player vs. player боёв, где каждый
игрок управляет единицей военной техники.
ЧТО ТАКОЕ WORLD OF TANKS?
WORLD OF TANKS В ЦИФРАХ
• 30+ млн. игроков
• В пике 1.1+ млн игроков онлайн
• 200+ логинов в игру за секунду
• 100+ боев создается за секунду
• 5000+ Tb раздается при каждом обновлении
• Релизный цикл – 7 недель
44
ВЕБ-СЕРВИСЫ ВОКРУГ ИГРЫ
Server
Game client
Accounts
Clans
…
Ratings
Meta-games
API Gateway
ПРОБЛЕМЫ
• Клиент – огромный монолит
• Долгий релизный цикл
• Вносить небольшие изменения – дорого
66
СЕРВИСЫ ВОКРУГ ИГРЫ
Game client
EventsBoards
Clans
…
Ratings
Meta-games
7
CHROMIUM EMBEDDED FRAMEWORK
Chromium Embedded Framework (CEF) — open source фреймворк
для встраивания Chromium в приложение.
Позволяет разработчику не погружаться в 12М строк кода
Chromium.
Основной контрибьютор – Adobe
7
КТО ИСПОЛЬЗУЕТ CEF
ВОЗМОЖНОСТИ
CEF
10
• Remote debug protocol
• Все возможности DevTools
• Автоматизация через Selenium
ОТЛАДКА
12
INTER-PROCESS COMMUNICATION
PROTOCOL
12
• Обмен данными между игрой и браузером
• Игра – источник данных для веб-приложения
• Использование нативных диалогов из javascript
13
Inter Process Communication protocol
13
ВЕБ-ПРИЛОЖЕНИЕ
В ИГРЕ
16
TECHNOLOGY STACK
• React
• Redux
• Moment
• Intl
• css-modules
16
17
SHARED
COMPONENT

LIBRARY
18
ПРЕИМУЩЕСТВА ИСПОЛЬЗОВАНИЯ CEF
19
• Отдельный релизный цикл
• Бизнес-логика изолирована от кодовой базы игры
• Soft-launch и canary релизы
REACTIVE
UPDATES
NGINX КАК WEBSOCKET СЕРВЕР
BackendFrontend Nginx
web socket http
Подробнее: https://goo.gl/nkhDFo
23
NGINX PUSH-STREAM-MODULE
РАСХОД ПАМЯТИ
• Message – 200 bytes
• Channel – 270 bytes
• Subscriber – 6550 bytes
24
НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ
• Intel Xeon E5-2670 2.60GHz (8 core) 8gb RAM, CentOS 7
• 100к соединений на 24 часа
• 97% CPU utilization (16 nginx workers)
• 8262 сообщений рассылается за секунду
• 6900 RAM использовано
• 0 разрывов соединения
ПРЕИМУЩЕСТВА ИСПОЛЬЗОВАНИЯ CEF
25
• Отдельный от клиента релизный цикл
• Бизнес-логика изолирована от кодовой базы игры
• Soft-launch и canary релизы
• Веб-UI ведёт себя как нативный UI
• Инструменты user-tracking
ПРОИЗВОДИ-
ТЕЛЬНОСТЬ
27
CEF OFF-SCREEN RENDERING
Game process
Browser process Renderer process
GPU process
Подробнее: https://goo.gl/WLzBvn
IPC
IPC
IPC
29
ПОТРЕБЛЕНИЕ
ПАМЯТИ
КОНФИГУРАЦИИ ЖЕЛЕЗА
Minimal
Win XP 32-bit, AMD Athlon 3500+, 1.5GB RAM,
GeForce 6800 256.0 MB
Low
Win 7 64-bit, Intel Core 2 Duo, 4096MB RAM,
GeForce 8600 GT 2gb
Average
Win 7 64-bit, Core i3-2100, 4096MB RAM,
GeForce GTS450 1GB
Потребление памяти браузером
ВРЕМЯ
ЗАГРУЗКИ
РЕЗУЛЬТАТЫ
• Три крупных фичи сделаны в браузере
• Повышение скорости разработки
• Изменения в веб-фичах не требуют тестирования клиента
• Двухнедельные релизные циклы
• Soft launch функциональности
38
ВЫВОДЫ
• Хорошое решение для доставки динамического
контета в desktop приложение
• Не предназначен для встраивания в приложения
требовательные к ресурсам
• В режиме off-screen rendering не потдериживает
hardware acceleration
• Из-за Windows XP chromium 49 версии
Максим Щепелин
m.schepelin@gmail.com
ВОПРОСЫ?

Mais conteúdo relacionado

Mais procurados

Антон Качалов - Популярно об IPMI и UEFI
Антон Качалов - Популярно об IPMI и UEFI Антон Качалов - Популярно об IPMI и UEFI
Антон Качалов - Популярно об IPMI и UEFI
Yandex
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
Ontico
 
построение виртуальных стендов
построение виртуальных стендовпостроение виртуальных стендов
построение виртуальных стендов
Yandex
 
Xen экономия
Xen экономияXen экономия
Xen экономия
Liudmila Li
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 12
Н. Иготти. Виртуализация и виртуальные машины. Лекция 12Н. Иготти. Виртуализация и виртуальные машины. Лекция 12
Н. Иготти. Виртуализация и виртуальные машины. Лекция 12
Computer Science Club
 

Mais procurados (20)

Антон Качалов - Популярно об IPMI и UEFI
Антон Качалов - Популярно об IPMI и UEFI Антон Качалов - Популярно об IPMI и UEFI
Антон Качалов - Популярно об IPMI и UEFI
 
Frontend talk for backenders
Frontend talk for backendersFrontend talk for backenders
Frontend talk for backenders
 
през катя
през катяпрез катя
през катя
 
Определение pass/fail критериев при тестировании и анализе производительности
Определение pass/fail критериев при тестировании и анализе производительностиОпределение pass/fail критериев при тестировании и анализе производительности
Определение pass/fail критериев при тестировании и анализе производительности
 
Модификации KVM для работы в кластере, Андрей Шетухин
Модификации KVM для работы в кластере, Андрей ШетухинМодификации KVM для работы в кластере, Андрей Шетухин
Модификации KVM для работы в кластере, Андрей Шетухин
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
 
ESXi 5.x CPU scheduler
ESXi 5.x CPU schedulerESXi 5.x CPU scheduler
ESXi 5.x CPU scheduler
 
Как правильно выбирать хостинг
Как правильно выбирать хостингКак правильно выбирать хостинг
Как правильно выбирать хостинг
 
От уютного блога до распределенной инфраструктуры
От уютного блога до распределенной инфраструктурыОт уютного блога до распределенной инфраструктуры
От уютного блога до распределенной инфраструктуры
 
Cobbler
CobblerCobbler
Cobbler
 
построение виртуальных стендов
построение виртуальных стендовпостроение виртуальных стендов
построение виртуальных стендов
 
Обзор технологий Microsoft Hyper-V: введение в виртуализацию
Обзор технологий Microsoft Hyper-V: введение в виртуализациюОбзор технологий Microsoft Hyper-V: введение в виртуализацию
Обзор технологий Microsoft Hyper-V: введение в виртуализацию
 
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
 
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...
 
UCloud™ - новые возможности облака в 2019г.
UCloud™ - новые возможности облака в 2019г. UCloud™ - новые возможности облака в 2019г.
UCloud™ - новые возможности облака в 2019г.
 
Гиперконвергентность в трех измерениях: решения, технологии, эффективность
Гиперконвергентность в трех измерениях: решения, технологии, эффективностьГиперконвергентность в трех измерениях: решения, технологии, эффективность
Гиперконвергентность в трех измерениях: решения, технологии, эффективность
 
System Center 2012 Operations Manager + SP1
System Center 2012 Operations Manager + SP1 System Center 2012 Operations Manager + SP1
System Center 2012 Operations Manager + SP1
 
MySQL 101
MySQL 101MySQL 101
MySQL 101
 
Xen экономия
Xen экономияXen экономия
Xen экономия
 
Н. Иготти. Виртуализация и виртуальные машины. Лекция 12
Н. Иготти. Виртуализация и виртуальные машины. Лекция 12Н. Иготти. Виртуализация и виртуальные машины. Лекция 12
Н. Иготти. Виртуализация и виртуальные машины. Лекция 12
 

Semelhante a Максим Щепелин - Доставляя веб-контент в игру

Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1
Cisco Russia
 
Дизайн небольшого ЦОД часть 2
Дизайн небольшого ЦОД часть 2Дизайн небольшого ЦОД часть 2
Дизайн небольшого ЦОД часть 2
Cisco Russia
 
Miscosoft Singularity - konkurs presentation
Miscosoft Singularity - konkurs presentationMiscosoft Singularity - konkurs presentation
Miscosoft Singularity - konkurs presentation
Vasilii Diachenko
 
World of Tanks: несколько идей из опыта разработки
World of Tanks: несколько идей из опыта разработкиWorld of Tanks: несколько идей из опыта разработки
World of Tanks: несколько идей из опыта разработки
Maksim Melnikau
 
Cisco solutions for dc whiteboarding
Cisco solutions for dc whiteboardingCisco solutions for dc whiteboarding
Cisco solutions for dc whiteboarding
Nick Turunov
 
Cisco solutions for dc whiteboarding
Cisco solutions for dc whiteboardingCisco solutions for dc whiteboarding
Cisco solutions for dc whiteboarding
Nick Turunov
 

Semelhante a Максим Щепелин - Доставляя веб-контент в игру (20)

Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
Эксплуатация container-based-инфраструктур / Николай Сивко (okmeter.io)
 
Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1
 
Дизайн небольшого ЦОД часть 2
Дизайн небольшого ЦОД часть 2Дизайн небольшого ЦОД часть 2
Дизайн небольшого ЦОД часть 2
 
Видео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
Видео + Конференция. Обзор современных ВКС архитектур. Лев ЯкуповВидео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
Видео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
 
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
 
Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?
 
Оптимизация ЦОД подходы ЕМС и Cisco к построению эффективных ИТ-инфраструктур
Оптимизация ЦОД подходы ЕМС и Cisco к построению эффективных ИТ-инфраструктурОптимизация ЦОД подходы ЕМС и Cisco к построению эффективных ИТ-инфраструктур
Оптимизация ЦОД подходы ЕМС и Cisco к построению эффективных ИТ-инфраструктур
 
Windows Azure Internals
Windows Azure InternalsWindows Azure Internals
Windows Azure Internals
 
Видео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
Видео + Конференция. Обзор современных ВКС архитектур. Лев ЯкуповВидео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
Видео + Конференция. Обзор современных ВКС архитектур. Лев Якупов
 
Miscosoft Singularity - konkurs presentation
Miscosoft Singularity - konkurs presentationMiscosoft Singularity - konkurs presentation
Miscosoft Singularity - konkurs presentation
 
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
Unity: WebGL и IL2CPP — будущее скриптинга в Unity»
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
 
Cisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференцийCisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференций
 
World of Tanks: несколько идей из опыта разработки
World of Tanks: несколько идей из опыта разработкиWorld of Tanks: несколько идей из опыта разработки
World of Tanks: несколько идей из опыта разработки
 
Cisco solutions for dc whiteboarding
Cisco solutions for dc whiteboardingCisco solutions for dc whiteboarding
Cisco solutions for dc whiteboarding
 
Cisco solutions for dc whiteboarding
Cisco solutions for dc whiteboardingCisco solutions for dc whiteboarding
Cisco solutions for dc whiteboarding
 
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
Сетевой инженер 2.0. Что нужно знать о программируемости в корпоративной сети?
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
 
Процессоры Intel® Xeon® E5-2600 v3
Процессоры Intel® Xeon® E5-2600 v3Процессоры Intel® Xeon® E5-2600 v3
Процессоры Intel® Xeon® E5-2600 v3
 
Новости гиперковергенции
Новости гиперковергенцииНовости гиперковергенции
Новости гиперковергенции
 

Mais de FDConf

Антон Киршанов - «Квант изменения. Реактивные реакции на React.
Антон Киршанов - «Квант изменения. Реактивные реакции на React.Антон Киршанов - «Квант изменения. Реактивные реакции на React.
Антон Киршанов - «Квант изменения. Реактивные реакции на React.
FDConf
 
В погоне за производительностью
В погоне за производительностьюВ погоне за производительностью
В погоне за производительностью
FDConf
 
Redux. From twitter hype to production
Redux. From twitter hype to productionRedux. From twitter hype to production
Redux. From twitter hype to production
FDConf
 

Mais de FDConf (20)

Антон Киршанов - «Квант изменения. Реактивные реакции на React.
Антон Киршанов - «Квант изменения. Реактивные реакции на React.Антон Киршанов - «Квант изменения. Реактивные реакции на React.
Антон Киршанов - «Квант изменения. Реактивные реакции на React.
 
Игорь Еростенко - Создаем виртуальный тур
Игорь Еростенко - Создаем виртуальный турИгорь Еростенко - Создаем виртуальный тур
Игорь Еростенко - Создаем виртуальный тур
 
Илья Климов - Reason: маргиналы против хайпа
Илья Климов - Reason: маргиналы против хайпаИлья Климов - Reason: маргиналы против хайпа
Илья Климов - Reason: маргиналы против хайпа
 
Александр Черноокий - Как правило "победитель получает все" работает и не раб...
Александр Черноокий - Как правило "победитель получает все" работает и не раб...Александр Черноокий - Как правило "победитель получает все" работает и не раб...
Александр Черноокий - Как правило "победитель получает все" работает и не раб...
 
Михаил Волчек - Что такое Цифровая мастерская?
Михаил Волчек - Что такое Цифровая мастерская?Михаил Волчек - Что такое Цифровая мастерская?
Михаил Волчек - Что такое Цифровая мастерская?
 
Radoslav Stankov - Handling GraphQL with React and Apollo
Radoslav Stankov - Handling GraphQL with React and ApolloRadoslav Stankov - Handling GraphQL with React and Apollo
Radoslav Stankov - Handling GraphQL with React and Apollo
 
Виктор Русакович - Выборы, выборы, все фреймворки… приторны
Виктор Русакович - Выборы, выборы, все фреймворки… приторныВиктор Русакович - Выборы, выборы, все фреймворки… приторны
Виктор Русакович - Выборы, выборы, все фреймворки… приторны
 
Slobodan Stojanovic - 8 1/2 things about serverless
Slobodan Stojanovic - 8 1/2 things about serverless Slobodan Stojanovic - 8 1/2 things about serverless
Slobodan Stojanovic - 8 1/2 things about serverless
 
Тимофей Лавренюк - Почему мне зашел PWA?
Тимофей Лавренюк - Почему мне зашел PWA?Тимофей Лавренюк - Почему мне зашел PWA?
Тимофей Лавренюк - Почему мне зашел PWA?
 
В погоне за производительностью
В погоне за производительностьюВ погоне за производительностью
В погоне за производительностью
 
Если у вас нету тестов...
Если у вас нету тестов...Если у вас нету тестов...
Если у вас нету тестов...
 
Migrate your React.js application from (m)Observable to Redux
Migrate your React.js application from (m)Observable to ReduxMigrate your React.js application from (m)Observable to Redux
Migrate your React.js application from (m)Observable to Redux
 
Dart: питание и сила для вашего проекта
Dart: питание и сила для вашего проектаDart: питание и сила для вашего проекта
Dart: питание и сила для вашего проекта
 
Scalable Angular 2 Application Architecture
Scalable Angular 2 Application ArchitectureScalable Angular 2 Application Architecture
Scalable Angular 2 Application Architecture
 
JavaScript: прошлое, настоящее и будущее.
JavaScript: прошлое, настоящее и будущее.JavaScript: прошлое, настоящее и будущее.
JavaScript: прошлое, настоящее и будущее.
 
CSSO — сжимаем CSS
CSSO — сжимаем CSSCSSO — сжимаем CSS
CSSO — сжимаем CSS
 
Redux. From twitter hype to production
Redux. From twitter hype to productionRedux. From twitter hype to production
Redux. From twitter hype to production
 
Будь первым
Будь первымБудь первым
Будь первым
 
"Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native ""Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native "
 
"Пиринговый веб на JavaScript"
"Пиринговый веб на JavaScript""Пиринговый веб на JavaScript"
"Пиринговый веб на JavaScript"
 

Максим Щепелин - Доставляя веб-контент в игру