Максим Барышников (Wargaming.net)

Post on 15-May-2015

368 views 1 download

Tags:

transcript

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

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

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

Часть первая, менеджерская

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

SPAExporter

WGNI

WGNP

WGNR

WGRS

PAPI

WGCLVROT

PortalSupport

WarGAG

Forum WGN

ClanWars

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

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

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

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

WARGAMING WEB

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

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

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

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

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

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

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

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

Технологии

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

AMQP WGNIWGRS

AMQP

HTTP API :: call()

WGCL

HTTP API :: call()

HTTP API :: call()

HTT

PH

TTP

PAPI

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

jabberdBackyard

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

Exporter

AMQ

P

Portal

SPAHTTP API :: call()

HTTP API :: call()

AMQ

P

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

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

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

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

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

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

секунду• 3000+ игровых событий в

секунду

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

Часть третья, техническое будущее

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

AMQP WGNIWGRS

AMQP

HTTP API :: call()

WGCL

HTTP API :: call()

HTTP API :: call()

HTT

PH

TTP

PAPI

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

jabberdBackyard

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

Exporter

AMQ

P

Portal

SPAHTTP API :: call()

HTTP API :: call()

AMQ

P

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

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

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

• RabbitMQ— messaging that just works

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

• Multi-protocol: AMQP, MQTT, STOMP…

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

• Плагины

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

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

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

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

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

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

Эпилог: Q&A

Максим Барышниковm_baryshnikov@wargaming.net

http://wargaming.com/ru/careers/Более 200 вакансий в 12 странах мира