Максим Барышников (wargaming.net)
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
Максим Барышников[email protected]
http://wargaming.com/ru/careers/Более 200 вакансий в 12 странах мира