SlideShare una empresa de Scribd logo
1 de 18
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/

Más contenido relacionado

Destacado

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

Destacado (17)

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

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

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

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

Максим Барышников (Wargaming.net)
Максим Барышников (Wargaming.net)Максим Барышников (Wargaming.net)
Максим Барышников (Wargaming.net)
 
Многопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типаМногопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типа
 
Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».
Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».
Докладчик: Пётр Камышников, глава команды интерфейса на проекте «Аллоды Онлайн».
 
Tanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browserTanki Online — multiplayer 3D-action in browser
Tanki Online — multiplayer 3D-action in browser
 
Разработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на ScaleformРазработка GUI игрового проекта на Scaleform
Разработка GUI игрового проекта на Scaleform
 
Максим Щепелин - Доставляя веб-контент в игру
Максим Щепелин - Доставляя веб-контент в игруМаксим Щепелин - Доставляя веб-контент в игру
Максим Щепелин - Доставляя веб-контент в игру
 
«Путь от инди-разработчика до гейм-дизайнера в студии»
«Путь от инди-разработчика до гейм-дизайнера в студии»«Путь от инди-разработчика до гейм-дизайнера в студии»
«Путь от инди-разработчика до гейм-дизайнера в студии»
 
Wargaming web
Wargaming webWargaming web
Wargaming web
 
Максим Мельников - Wargaming Web
Максим Мельников - Wargaming WebМаксим Мельников - Wargaming Web
Максим Мельников - Wargaming Web
 
Тестовое задание для веб-программиста
Тестовое задание для веб-программистаТестовое задание для веб-программиста
Тестовое задание для веб-программиста
 
2WinPower
2WinPower2WinPower
2WinPower
 
2056
20562056
2056
 
Как пережить запуск онлайн-игры и справиться с мертвыми душами / Андрей Трифа...
Как пережить запуск онлайн-игры и справиться с мертвыми душами / Андрей Трифа...Как пережить запуск онлайн-игры и справиться с мертвыми душами / Андрей Трифа...
Как пережить запуск онлайн-игры и справиться с мертвыми душами / Андрей Трифа...
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Earn millions with a casual gameplay
Earn millions with a casual gameplayEarn millions with a casual gameplay
Earn millions with a casual gameplay
 
Porting Unity game to PS4: tips & tricks
Porting Unity game to PS4: tips & tricksPorting Unity game to PS4: tips & tricks
Porting Unity game to PS4: tips & tricks
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщика
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
 
Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013
 
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
 

Más de Python Meetup

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

Más de Python Meetup (12)

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

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/