Левон Авакян "Архитектура мета игры wargaming....

27

Upload: tanya-denisyuk

Post on 14-Jan-2017

87 views

Category:

Education


8 download

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]