SlideShare a Scribd company logo
WARGAMING: тыл — фронту!
Максим Барышников
Solutions Architect
Часть первая: организационная
2
3
• Более 200 человек
• 40+ проектов
• Досье 60М игроков
• 2М уникальных посетителей в день релиза
только на worldoftanks.ru
В цифрах
4
Auth Service
Game Data API
WG Open ID
BackOffice
Rating System
Public API
Clans
Vehicle
Recovery
Portal
Support
WarGAG
Forums
Wargaming.net
ClanWars
5
Много компонентов
×
N игр (WoT, WoWP, WoWS…)
×
M реалмов (RU, EU, NA, CN, ASIA…)
=
WARGAMING WEB
6
• каждый компонент разрабатывается отдельно
…вплоть до отдельной команды и менеджера
• ввзаимодействует с другими компонентами через API
или контракт
• зависимости управляются также, как в любом
пакетном менеджере
Разработка компонентов
7
Часть вторая: техническая
8
Технологии
9
AMQP
Open ID
RS
AMQP
HTTP API :: call()
Clans
HTTP API :: call()
HTTP API :: call()
HTTPHTTP
Public API
HTTP API :: call() HTTP API :: call()
jabberd
Backyard
Взаимодействие компонентов
Game API
AMQP
Portal
Auth Service
HTTP API :: call()
HTTP API :: call()
AMQP
10
• AMQP и HTTP API — основные способы
взаимодействия
• Взаимодействие не всегда упорядочено
• Есть случаи, когда один компонент читает из
БД другого
11
• 500+ Gb только данных игроков
• 1500 логинов в секунду
• 100+ боев заканчивается в секунду
• 3000+ игровых событий в секунду
12
Часть третья: технические планы
13
AMQP
Open ID
RS
AMQP
HTTP API :: call()
Clans
HTTP API :: call()
HTTP API :: call()
HTTPHTTP
Public API
HTTP API :: call() HTTP API :: call()
jabberd
Backyard
Взаимодействие компонентов
Game API
AMQP
Portal
Auth Service
HTTP API :: call()
HTTP API :: call()
AMQP
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
15
• RabbitMQ— messaging that just works
• Гибкий: маршрутизация, federated exchanges, etc.
• Multi-protocol: AMQP, MQTT, STOMP…
• Хорошие клиентские библиотеки
• Плагины
16
• Kafka — распределенный коммит-лог
• Надежный: пишем сразу на диск и реплицируем
• Быстрый: сотни мегабайт RW/sec
• Масштабируемый: репликация и партиционирование
Эпилог: Q&A
Барышников Максим
Solutions Architect
Developer Partner Program
• Документация
• Поддержка
• Примеры
• API Explorer
• …
https://ru.wargaming.net/developers/

More Related Content

Viewers also liked (17)

PDF
Почему я пишу хороший код, но его никто не ценит, кроме моей мамы / Павел Меш...
Python Meetup
 
PPTX
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
Python Meetup
 
PDF
Practical Python Packaging / Стас Рудаков / Web Developer Wargaming
Python Meetup
 
PDF
Язык программирования GO
Python Meetup
 
PDF
Python&Printer / Андрей Пучко / penta.by
Python Meetup
 
PDF
Очередной скучный доклад про логгирование
Python Meetup
 
PDF
Redis. Как мы боролись со сложностью
Python Meetup
 
PDF
Обзор фреймворка Twisted
Python Meetup
 
PDF
Про асинхронность / Максим Щепелин / Web Developer Wargaming
Python Meetup
 
PPTX
OpenSource CMS и ERP система в одном флаконе / Олег Курьян / технический дире...
Python Meetup
 
PPTX
Обзор способов написания конкурентных программ в питоне
Python Meetup
 
PDF
Pebble
Python Meetup
 
PPTX
Максим Щепелин. "Unittesting. Как?"
Python Meetup
 
PPTX
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Python Meetup
 
PPT
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Python Meetup
 
PPTX
S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014
Python Meetup
 
PPTX
Python AST / Николай Карелин / VPI Development Center [Python Meetup 27.03.15]
Python Meetup
 
Почему я пишу хороший код, но его никто не ценит, кроме моей мамы / Павел Меш...
Python Meetup
 
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
Python Meetup
 
Practical Python Packaging / Стас Рудаков / Web Developer Wargaming
Python Meetup
 
Язык программирования GO
Python Meetup
 
Python&Printer / Андрей Пучко / penta.by
Python Meetup
 
Очередной скучный доклад про логгирование
Python Meetup
 
Redis. Как мы боролись со сложностью
Python Meetup
 
Обзор фреймворка Twisted
Python Meetup
 
Про асинхронность / Максим Щепелин / Web Developer Wargaming
Python Meetup
 
OpenSource CMS и ERP система в одном флаконе / Олег Курьян / технический дире...
Python Meetup
 
Обзор способов написания конкурентных программ в питоне
Python Meetup
 
Максим Щепелин. "Unittesting. Как?"
Python Meetup
 
Machine learning with Python / Олег Шидловский / Doist [Python Meetup 27.03.15]
Python Meetup
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Python Meetup
 
S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014
Python Meetup
 
Python AST / Николай Карелин / VPI Development Center [Python Meetup 27.03.15]
Python Meetup
 

Similar to Wargaming: тыл - фронту! (20)

PPTX
Максим Барышников (Wargaming.net)
Ontico
 
ODP
Многопользовательские браузерные игры нового типа
Anton Volkov
 
PPSX
Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».
Андрей Бростовский
 
ODP
Tanki Online — multiplayer 3D-action in browser
Anton Volkov
 
PPT
Разработка GUI игрового проекта на Scaleform
Dmitry Dichkovsky
 
PDF
Максим Щепелин - Доставляя веб-контент в игру
FDConf
 
PPT
«Путь от инди-разработчика до гейм-дизайнера в студии»
Stfalcon Meetups
 
PDF
Wargaming web
Maksim Melnikau
 
PDF
Максим Мельников - Wargaming Web
IT Share
 
PDF
Тестовое задание для веб-программиста
DEVTYPE
 
PDF
2WinPower
2winpower
 
PPTX
Как пережить запуск онлайн-игры и справиться с мертвыми душами / Андрей Трифа...
Ontico
 
PPT
1С-Битрикс - Производительность
Alexander Demidov
 
ODP
Earn millions with a casual gameplay
Anton Volkov
 
PPTX
Porting Unity game to PS4: tips & tricks
DevGAMM Conference
 
PDF
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Yandex
 
PDF
Cовременный станок верстальщика
mcslayer
 
PPT
Backendless BaaS. Dinosaurus for Jeeconf 2013
backendless
 
PPTX
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
DevGAMM Conference
 
Максим Барышников (Wargaming.net)
Ontico
 
Многопользовательские браузерные игры нового типа
Anton Volkov
 
Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».
Андрей Бростовский
 
Tanki Online — multiplayer 3D-action in browser
Anton Volkov
 
Разработка GUI игрового проекта на Scaleform
Dmitry Dichkovsky
 
Максим Щепелин - Доставляя веб-контент в игру
FDConf
 
«Путь от инди-разработчика до гейм-дизайнера в студии»
Stfalcon Meetups
 
Wargaming web
Maksim Melnikau
 
Максим Мельников - Wargaming Web
IT Share
 
Тестовое задание для веб-программиста
DEVTYPE
 
2WinPower
2winpower
 
Как пережить запуск онлайн-игры и справиться с мертвыми душами / Андрей Трифа...
Ontico
 
1С-Битрикс - Производительность
Alexander Demidov
 
Earn millions with a casual gameplay
Anton Volkov
 
Porting Unity game to PS4: tips & tricks
DevGAMM Conference
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Yandex
 
Cовременный станок верстальщика
mcslayer
 
Backendless BaaS. Dinosaurus for Jeeconf 2013
backendless
 
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
DevGAMM Conference
 
Ad

More from Python Meetup (12)

PDF
Python для анализа данных
Python Meetup
 
PDF
Асинхронное распределенное выполнение задач. Stdlib, Celery, RQ и собственные...
Python Meetup
 
PDF
Использование gevent для эмуляции высокой нагрузки
Python Meetup
 
PDF
Введение в GIL и новый GIL
Python Meetup
 
PDF
Недостатки Python
Python Meetup
 
PDF
Социальный игровой сервер на Python: от первого коммита до продакшена
Python Meetup
 
PDF
Портируем на Python 3
Python Meetup
 
PDF
Garbage collector and a bit of memory management
Python Meetup
 
PPTX
Неочевидное поведение некоторых конструкций
Python Meetup
 
PDF
Pyton – пробуем функциональный стиль
Python Meetup
 
PDF
Dictionary в Python. По мотивам Objects/dictnotes.txt
Python Meetup
 
PDF
"Внутренности" CPython, часть II
Python Meetup
 
Python для анализа данных
Python Meetup
 
Асинхронное распределенное выполнение задач. Stdlib, Celery, RQ и собственные...
Python Meetup
 
Использование gevent для эмуляции высокой нагрузки
Python Meetup
 
Введение в GIL и новый GIL
Python Meetup
 
Недостатки Python
Python Meetup
 
Социальный игровой сервер на Python: от первого коммита до продакшена
Python Meetup
 
Портируем на Python 3
Python Meetup
 
Garbage collector and a bit of memory management
Python Meetup
 
Неочевидное поведение некоторых конструкций
Python Meetup
 
Pyton – пробуем функциональный стиль
Python Meetup
 
Dictionary в Python. По мотивам Objects/dictnotes.txt
Python Meetup
 
"Внутренности" CPython, часть II
Python Meetup
 
Ad

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

  • 1. WARGAMING: тыл — фронту! Максим Барышников Solutions Architect
  • 3. 3 • Более 200 человек • 40+ проектов • Досье 60М игроков • 2М уникальных посетителей в день релиза только на worldoftanks.ru В цифрах
  • 4. 4 Auth Service Game Data API WG Open ID BackOffice Rating System Public API Clans Vehicle Recovery Portal Support WarGAG Forums Wargaming.net ClanWars
  • 5. 5 Много компонентов × N игр (WoT, WoWP, WoWS…) × M реалмов (RU, EU, NA, CN, ASIA…) = WARGAMING WEB
  • 6. 6 • каждый компонент разрабатывается отдельно …вплоть до отдельной команды и менеджера • ввзаимодействует с другими компонентами через API или контракт • зависимости управляются также, как в любом пакетном менеджере Разработка компонентов
  • 9. 9 AMQP Open ID RS AMQP HTTP API :: call() Clans HTTP API :: call() HTTP API :: call() HTTPHTTP Public API HTTP API :: call() HTTP API :: call() jabberd Backyard Взаимодействие компонентов Game API AMQP Portal Auth Service HTTP API :: call() HTTP API :: call() AMQP
  • 10. 10 • AMQP и HTTP API — основные способы взаимодействия • Взаимодействие не всегда упорядочено • Есть случаи, когда один компонент читает из БД другого
  • 11. 11 • 500+ Gb только данных игроков • 1500 логинов в секунду • 100+ боев заканчивается в секунду • 3000+ игровых событий в секунду
  • 13. 13 AMQP Open ID RS AMQP HTTP API :: call() Clans HTTP API :: call() HTTP API :: call() HTTPHTTP Public API HTTP API :: call() HTTP API :: call() jabberd Backyard Взаимодействие компонентов Game API AMQP Portal Auth Service HTTP API :: call() HTTP API :: call() AMQP
  • 14. 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
  • 15. 15 • RabbitMQ— messaging that just works • Гибкий: маршрутизация, federated exchanges, etc. • Multi-protocol: AMQP, MQTT, STOMP… • Хорошие клиентские библиотеки • Плагины
  • 16. 16 • Kafka — распределенный коммит-лог • Надежный: пишем сразу на диск и реплицируем • Быстрый: сотни мегабайт RW/sec • Масштабируемый: репликация и партиционирование
  • 18. Developer Partner Program • Документация • Поддержка • Примеры • API Explorer • … https://ru.wargaming.net/developers/