3. WARGAMING: тыл — фронту!
SPA
Exporter
WGNI
WGNP
WGNR
WGRS
PAPI
WGCL
VROT
Portal
Support
WarGAG
Forum WGN
ClanWars
4. WARGAMING: тыл — фронту!
Много компонентов
×
N игр (WoT, WoWP, WoWS…)
×
M реалмов (RU, EU, NA, CN, ASIA…)
=
WARGAMING WEB
5. WARGAMING: тыл — фронту!
• каждый компонент разрабатывается отдельно
…вплоть до отдельной команды и менеджера
• ввзаимодействует с другими компонентами через API
или контракт
• зависимости управляются также, как в любом
пакетном менеджере
Разработка компонентов
8. WARGAMING: тыл — фронту!
AMQP
WGNI
WGRS
AMQP
HTTP API :: call()
WGCL
HTTP API :: call()
HTTP API :: call()
HTTPHTTP
PAPI
HTTP API :: call() HTTP API :: call()
jabberd
Backyard
Взаимодействие компонентов
Exporter
AMQP
Portal
SPA
HTTP API :: call()
HTTP API :: call()
AMQP
9. WARGAMING: тыл — фронту!
• AMQP и HTTP API — основные способы
взаимодействия
• Взаимодействие не всегда упорядочено
• Есть случаи, когда один компонент читает
из БД другого
10. WARGAMING: тыл — фронту!
• 500+ Gb только данных игроков
• 1500 логинов в секунду
• 100+ боев заканчивается в
секунду
• 3000+ игровых событий в
секунду
12. WARGAMING: тыл — фронту!
AMQP
WGNI
WGRS
AMQP
HTTP API :: call()
WGCL
HTTP API :: call()
HTTP API :: call()
HTTPHTTP
PAPI
HTTP API :: call() HTTP API :: call()
jabberd
Backyard
Взаимодействие компонентов
Exporter
AMQP
Portal
SPA
HTTP API :: call()
HTTP API :: call()
AMQP
13. 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
14. WARGAMING: тыл — фронту!
• RabbitMQ— messaging that just works
• Гибкий: маршрутизация, federated exchanges, etc.
• Multi-protocol: AMQP, MQTT, STOMP…
• Хорошие клиентские библиотеки
• Плагины
15. WARGAMING: тыл — фронту!
• Kafka — распределенный коммит-лог
• Надежный: пишем сразу на диск и реплицируем
• Быстрый: сотни мегабайт RW/sec
• Масштабируемый: репликация и партиционирование
16. WARGAMING: тыл — фронту!
Эпилог: Q&A
Максим Барышников
m_baryshnikov@wargaming.net
http://wargaming.com/ru/careers/
Более 200 вакансий в 12 странах мира