18
WARGAMING: тыл — фронту! Максим Барышников Solutions Architect

Wargaming: тыл - фронту!

Embed Size (px)

DESCRIPTION

Максим Барышников "Wargaming: тыл - фронту!" Чтобы игра стала успешной (а из успешной превратилась в легендарную), недостаточно самой игры, сколь бы хороша она ни была. Помимо всего прочего, действительно массовой игре нужна очень развитая веб-часть. О ней и пойдет речь.

Citation preview

Page 1: Wargaming: тыл - фронту!

WARGAMING: тыл — фронту!

Максим БарышниковSolutions Architect

Page 2: Wargaming: тыл - фронту!

2

Часть первая: организационная

Page 3: Wargaming: тыл - фронту!

3

• Более 200 человек• 40+ проектов• Досье 60М игроков• 2М уникальных посетителей в день релиза

только на worldoftanks.ru

В цифрах

Page 4: Wargaming: тыл - фронту!

4

Auth Service

Game Data APIWG Open ID

BackOffice

Rating System

Public API

ClansVehicle

RecoveryPortal

Support

WarGAG

ForumsWargaming.net

ClanWars

Page 5: Wargaming: тыл - фронту!

5

Много компонентов×

N игр (WoT, WoWP, WoWS…)×

M реалмов (RU, EU, NA, CN, ASIA…)=

WARGAMING WEB

Page 6: Wargaming: тыл - фронту!

6

• каждый компонент разрабатывается отдельно…вплоть до отдельной команды и менеджера

• ввзаимодействует с другими компонентами через APIили контракт

• зависимости управляются также, как в любомпакетном менеджере

Разработка компонентов

Page 7: Wargaming: тыл - фронту!

7

Часть вторая: техническая

Page 8: Wargaming: тыл - фронту!

8

Технологии

Page 9: Wargaming: тыл - фронту!

9

AMQP Open IDRS

AMQP

HTTP API :: call()

Clans

HTTP API :: call()

HTTP API :: call()

HTTP

HTTP

Public API

HTTP API :: call() HTTP API :: call()

jabberdBackyard

Взаимодействие компонентов

Game API

AMQ

P

Portal

Auth ServiceHTTP API :: call()

HTTP API :: call()

AMQ

P

Page 10: Wargaming: тыл - фронту!

10

• AMQP и HTTP API — основные способы взаимодействия

• Взаимодействие не всегда упорядочено

• Есть случаи, когда один компонент читает из БД другого

Page 11: Wargaming: тыл - фронту!

11

• 500+ Gb только данных игроков• 1500 логинов в секунду• 100+ боев заканчивается в секунду• 3000+ игровых событий в секунду

Page 12: Wargaming: тыл - фронту!

12

Часть третья: технические планы

Page 13: Wargaming: тыл - фронту!

13

AMQP Open IDRS

AMQP

HTTP API :: call()

Clans

HTTP API :: call()

HTTP API :: call()

HTTP

HTTP

Public API

HTTP API :: call() HTTP API :: call()

jabberdBackyard

Взаимодействие компонентов

Game API

AMQ

P

Portal

Auth ServiceHTTP API :: call()

HTTP API :: call()

AMQ

P

Page 14: Wargaming: тыл - фронту!

14

Event-Driven SOA

Service Bus

Event Bus

Компонент

pub/sub call()

Компонент

pub/sub call()

Компонент

pub/sub call()

Компонент

pub/sub call()

Компонент

pub/sub call()

Компонент

pub/sub call()

call()pub/sub call()pub/sub call()pub/sub

Page 15: Wargaming: тыл - фронту!

15

• RabbitMQ— messaging that just works

• Гибкий: маршрутизация, federated exchanges, etc.

• Multi-protocol: AMQP, MQTT, STOMP…

• Хорошие клиентские библиотеки

• Плагины

Page 16: Wargaming: тыл - фронту!

16

• Kafka — распределенный коммит-лог

• Надежный: пишем сразу на диск и реплицируем

• Быстрый: сотни мегабайт RW/sec

• Масштабируемый: репликация и партиционирование

Page 17: Wargaming: тыл - фронту!

Эпилог: Q&A

Барышников МаксимSolutions Architect

Page 18: Wargaming: тыл - фронту!

Developer Partner Program• Документация• Поддержка• Примеры• API Explorer• …

https://ru.wargaming.net/developers/