Top Banner
27

Левон Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Jan 14, 2017

Download

Education

Tanya Denisyuk
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"
Page 2: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Очемябудуговорить§ Глобальнаякарта

• Немногоистории• ЧтотакоеГлобальнаяКарта• Gameplay• Игровые событиянаГлобальнойкарте

§ Архитектураитехнологии• Технологическийстек• GIS.Готовимкарту• АрхитектураГлобальнойкарты• Расчетигровогохода• Векторныетайлы

§ ОперированиеГлобальнойкартой• Особенности• Deployment• Сборстатистикииметрик• Немногоонадежности

2

Page 3: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

ГлобальнаяКарта2.0

3

Page 4: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Немногоистории• Немногоистории• Чтотакое

ГлобальнаяКарта

• Gameplay• Игровыесобытия

наГлобальнойКарте

§ Статистика

• Около900игровыхпровинций

• 10-12тысячтанковыхсраженийнаоднойкартевигровыечасы

• До5тысячклановнаоднойкартевдень

4

Page 5: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

ЧтотакоеГлобальнаяКарта• Немногоистории• Чтотакое

Глобальная• Gameplay• Игровыесобытия

наГлобальнойкарте

§ Статистика

• Около10000игровыхпровинций

• 18-20 тысячтанковыхсраженийнаоднойкартевигровыечасы

• До10 тысячклановнаоднойкартевдень

5

Page 6: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Gameplay• Немногоистории• Чтотакое

Глобальная• Gameplay• Игровыесобытия

наГлобальнойкарте

• Фронты• Сезоны• Аукционы• Высадочныепровинции• Квесты

6

Page 7: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

ИгровыесобытиянаГлобальнойКарте• ЧтотакоеГлобальнаяКарта

• Немногоистории• Gameplay• Игровыесобытия

наГлобальнойКарте

7

Page 8: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Архитектураитехнологии

8

Page 9: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Технологическийстек• Python2.7• JS• CSS

• Falcon• SQLAlchemy +alembic

• Postgres9.5• PostGis• Redis

• Kafka• RabbitMQ

• uwsgi• nginx

• Технологическийстек

• GIS.Готовимкарту

• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

9

Page 10: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Подкапотомуbackend• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

”+” “-”

• Быстрый• Прост в использовании• Хорошо документирован

• Не популярен• Мало библиотек• Нет стандартов организации

кода

Falcon

SQLAlchemy +alembic”+” “-”

• Популярный• Хорошо документирован

• ORM

10

Page 11: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Хранениеданных

”+” “-”

• Надежный• Много полезныхиинтересных

плюшек(jsonb,разнообразныеиндексы,расширения)

• Накопленаэкспертиза

• Болеесложноеадминистрирование,чем,скажем,вMySQL

• Партиционирование

Postgres

Redis”+” “-”

• Быстрый• Надежный • RedisQuque• Типы данных• Богатый тулинг

• Используетодноядро• KEYS• Отсутствие персистентности

данных

• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

11

Page 12: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

• MarionetteJS

• Leaflet JS(рисуеткарту)

• UTFGrid

Текущийстек

Минусыподхода

• МногоDOMопераций

• РисуемHTML

• Сложнокэшировать

Подкапотомуfrontend• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

12

Page 13: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Чтохотимизменить

• MarionetteJS->ReactcRedux (уменьшимколичествоDOMопераций)

• UTFGrid ->R-деревья->Векторныетайлы-> WebGL

• Geobuff +Topojson (передачагеоданных)

Подкапотомуfrontend• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

13

Page 14: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

GIS.Готовимкарту

• OpenStreetMap

• Рельефы(высота,глубина– ввидерастра)

• Требованияотгеймдизайнеров

Навход

Инструменты• PostGis – набортиповданных,функцийдля

работысгеоданными

• QGIS+плагины

• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

14

Page 15: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

GIS.Готовимкарту• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

15

Page 16: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

АрхитектураГлобальнойКарты• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

16

Page 17: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Workers

• SendBattle– отсылаетбоинасервер

• Battle – обрабатываетрезультатыбоя

• ClanSync – синхронизируеткартуиклановыйсервис

• History – публикуетвkafka данныеобизмененияхнаГК

• Nextturn– расчетигровогохода

• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

17

Page 18: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Расчетигровогохода

• Запускаетсякаждыйчасровнов00минут

• Пересчитываетигровуюситуацию(запускаетбоизапровинции,просчитываетаукционы,раздаетголду ит.д)

• Компонент• Фаза• Шаг

wot:- phase:leave-maphandler:wot.core.turn.phases.LeaveMapsteps:[leave_map]params:batch_size:100

-wot:- phase:game_statssteps:- name:pre_turn_game_statshandler:wot.core.turn.steps.pre_turn_game_stats

sdk:- phase:create_turnsteps:- name:create_turnhandler:sdk.turn.steps.create_turn

-wot:- phase:pre-turnsteps:- name:start_schedulerhandler:wot.core.turn.steps.start_scheduler

• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

18

Page 19: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Векторныетайлы

• Сохраняемрезультатырасчетходавбазу(геометриювPostgis)• Выделили4слояданных:

• Publicstatic• Publicdynamic• Privatestatic• Privatedynamic

• Redis каккэшдляnginx

• Технологическийстек

• GIS.Готовимкарту• АрхитектураГК• Расчетигрового

хода• Векторныетайлы

19

Page 20: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

ОперированиеГлобальнойКартой

20

Page 21: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Особенности

• Неравномернаянагрузкавтечениеигровогодняидажеодногочаса• Большоеколичествовнешнихпотребителей

• Большоеколичествоигровыхнастроек• Высокаястепенькастомизации подразныерегионы• БоинаГлобальнойкартедолжныпроходитьвстрогоопределённое

время,перенос– отменабояявляетсякритическойпроблемой

• Особенности• Deployment• Сбор

статистикииметрик

• Немногоонадежности

21

Page 22: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Deployment

• Доставляетсяввиде4хпакетов• Backend-package• Frontend-package• Loc-package• Gamedata-package

• Процессдеплоя автоматизированFabric2.0• Рендерконфигурациипошаблону• Доставкаисходногокода/пакетовнапродакшен• Выполнениемиграций• Pre/postшаги

• Смотримвсторонуконтейнеровиоблаков• Docker• Mesos/Marathon/Chronos

• Особенности• Deployment• Сбор

статистикииметрик

• Немногоонадежности

22

Page 23: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Собираемлоги• Особенности• Deployment• Сбор

статистикииметрик

• Немногоонадежности

23

Page 24: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Graphite• Особенности• Deployment• Сбор

статистикииметрик

• Немногоонадежности

24

Page 25: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Graphana• Особенности• Deployment• Сбор

статистикииметрик

• Немногоонадежности

25

Page 26: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Немногоонадежности

• Мониторинг• Триггерынасистемныеметрики• Триггерыналогическиеошибки

• Агрегацияианализлогов• Logstah +elasticsearch+kibana• Sentry• Graphite+Graphana• Логирование науровнеприложениявхранилище

• Нагрузочноетестирование• Анализпрофилянагрузки• Симуляцияигровойактивности

• Инструментарий

• Особенности• Deployment• Сбор

статистикииметрик

• Немногоонадежности

26

Page 27: Левон  Авакян "Архитектура мета игры Wargaming. Глобальная карта 2.0"

Let’sDiscussЛевонАвакян[email protected]