WORLD OF TANKS: НА ПУТИ К 1M CCUМАКСИМ МЕЛЬНИКОВ
КТО ЯWargaming.netOrder of WarOrder of War: ChallengeWorld of Tanks developerLinux Mobile hobbyistOpenmokosystemdtelepathy...
WORLD OF TANKS СЕГОДНЯ800k одновременно играющих в пике8M сообщений в секунду300 серверов для обслуживания игры60M посещен...
СОДЕРЖАНИЕВступлениеФрагменты архитектурыИгровой cерверСетевой трафикМетакластерВебОбновление клиентаЗаключениеWorld of Ta...
АРХИТЕКТУРА WORLD OF TANKSклиент игры — тонкий клиент, плеерсервер — расчёт игрового миракластер — сотни процессов работаю...
АРХИТЕКТУРА КЛАСТЕРАStorage*MySQLMySQL*RabbitMQNodesBaseAppCellAppLoginAppManagersBaseAppMgrCellAppMgrDbMgrWorld of Tanks:...
АРХИТЕКТУРА КЛАСТЕРА IIBaseAppAccountChatChannelClanAdminSysMessengerNodeCellAppArenaAvatarVehicleTeamBaseAreaDestructible...
РАЗРАБОТКА СЕРВЕРА1. обычный Python2. GC выключен3. немного C++4. RPC - на базе сообщений5. UDP-based протокол с гарантией...
ОТКАЗОУСТОЙЧИВОСТЬобъекты только в памятирепликация объектов на случай отказаWorld of Tanks: на пути к 1M CCU, Максим Мель...
СЕТЕВОЙ ТРАФИК1. 8M уникальных UDP пакетов в секунду2. 16 Gbps на 800k пользователейWorld of Tanks: на пути к 1M CCU, Макс...
НЕРАВНОМЕРНЫЙ ТРАФИК800k пакетов в 1ms10k пакетов в следующие 99msWorld of Tanks: на пути к 1M CCU, Максим Мельников
ПРОБЛЕМЫ РОСТАсовсем не угадали размер аудитории на стартепостоянный рост аудиториинедоработки и нехватка оборудованияпост...
ПЕРЕЕЗДЕЦмного кластеровбыстрое перемещение между кластерамивыделенный кластер для хранения данныхWorld of Tanks: на пути ...
АРХИТЕКТУРА МЕТАКЛАСТЕРАЦентрпостоянное хранилищеаккаунты (proxy)взаимодействие с web-омПериферия RU1, RU2, ...временное х...
ПРEИМУЩЕСТВА МЕТАКЛАСТЕРА1. масштабируемость2. гео-распределённость3. отказоустойчивость4. независимостьWorld of Tanks: на...
ВЕБрегистрацияновостистатьи и описаниямедиа контентплатёжная формаобработка платежейраздача обновленийуправление пользоват...
ИНТЕГРАЦИЯ С ИГРОВЫМ СЕРВЕРОМAMQP — протокол взаимодействия с игровым серверомXML-RPC обёртка над AMQPреплика данных игры ...
СЕРВИСНАЯ АРХИТЕКТУРАмножество различных проектовпротоколы взаимодействия: AMQP, HTTP, SQL, XML-RPCWorld of Tanks: на пути...
СТЭК ТЕХНОЛОГИЙLNAMPMRLinuxnginxApache (mod_wsgi)MySQLPython (Django)memcachedRabbitMQДругоеuwsgiTwistedPhpRubyPostgreSQLM...
ОБНОВЛЕНИЕ КЛИЕНТАотдельный процесс который занимается обновлениямиподдержка http и torrent протоколов2M игроковразмер обн...
CБОР СТАТИСТИКИ1. Launcherфайлразмервремяпротоколисточник2. tracker3. CDNWorld of Tanks: на пути к 1M CCU, Максим Мельников
РЕШЕНИЕнаши torrent сервера — всегда в top-еweb seed-ыWorld of Tanks: на пути к 1M CCU, Максим Мельников
ИДЕИглавное — скорость и простота разработкине стоит боятся гетерогенной средысинхронный подход везде где можноасинхронный...
СПАСИБО ЗА ВНИМАНИЕ. ВОПРОСЫМаксим Мельниковmailto:m_melnikau@wargaming.nethttps://plus.google.com/114669104565190507739/h...
КОНФИГУРАЦИЯ ТИПИЧНОГО СЕРВЕРА2 cpu ∗ 8 core ∗ 2 threads64 GB RAM4 ethernetWorld of Tanks: на пути к 1M CCU, Максим Мельни...
ОСНОВНАЯ ИГРОВАЯ БАЗАразмер базы: 300 GB384 GB RAMPercona 5.5 (разогрев кэша — 1GBps)40k select-ов, 1k insert-ов, 1k updat...
ДОПОЛНИТЕЛЬНАЯ ИГРОВАЯ БАЗАразмер базы: 4 TB64 GB RAMMySQL 5.5100 GB, 350 млн записей (в день); 1k insert-ов в секунду24 H...
World of Tanks: на пути к 1M CCU
Upcoming SlideShare
Loading in …5
×

World of Tanks: на пути к 1M CCU

2,336 views

Published on

Доклад с ritconf2013, о том, как работает World of Tanks...

Published in: Technology

World of Tanks: на пути к 1M CCU

  1. 1. WORLD OF TANKS: НА ПУТИ К 1M CCUМАКСИМ МЕЛЬНИКОВ
  2. 2. КТО ЯWargaming.netOrder of WarOrder of War: ChallengeWorld of Tanks developerLinux Mobile hobbyistOpenmokosystemdtelepathyGentooWorld of Tanks: на пути к 1M CCU, Максим Мельников
  3. 3. WORLD OF TANKS СЕГОДНЯ800k одновременно играющих в пике8M сообщений в секунду300 серверов для обслуживания игры60M посещений игрового портала в месяц5PB (петабайт) на установку и обновления игрового клиента в месяцWorld of Tanks: на пути к 1M CCU, Максим Мельников
  4. 4. СОДЕРЖАНИЕВступлениеФрагменты архитектурыИгровой cерверСетевой трафикМетакластерВебОбновление клиентаЗаключениеWorld of Tanks: на пути к 1M CCU, Максим Мельников
  5. 5. АРХИТЕКТУРА WORLD OF TANKSклиент игры — тонкий клиент, плеерсервер — расчёт игрового миракластер — сотни процессов работающих как единое целое (сервер)игровой мир — пошаговый, шаги очень маленькиеWorld of Tanks: на пути к 1M CCU, Максим Мельников
  6. 6. АРХИТЕКТУРА КЛАСТЕРАStorage*MySQLMySQL*RabbitMQNodesBaseAppCellAppLoginAppManagersBaseAppMgrCellAppMgrDbMgrWorld of Tanks: на пути к 1M CCU, Максим Мельников
  7. 7. АРХИТЕКТУРА КЛАСТЕРА IIBaseAppAccountChatChannelClanAdminSysMessengerNodeCellAppArenaAvatarVehicleTeamBaseAreaDestructiblesNodeWorld of Tanks: на пути к 1M CCU, Максим Мельников
  8. 8. РАЗРАБОТКА СЕРВЕРА1. обычный Python2. GC выключен3. немного C++4. RPC - на базе сообщений5. UDP-based протокол с гарантией доставкиWorld of Tanks: на пути к 1M CCU, Максим Мельников
  9. 9. ОТКАЗОУСТОЙЧИВОСТЬобъекты только в памятирепликация объектов на случай отказаWorld of Tanks: на пути к 1M CCU, Максим Мельников
  10. 10. СЕТЕВОЙ ТРАФИК1. 8M уникальных UDP пакетов в секунду2. 16 Gbps на 800k пользователейWorld of Tanks: на пути к 1M CCU, Максим Мельников
  11. 11. НЕРАВНОМЕРНЫЙ ТРАФИК800k пакетов в 1ms10k пакетов в следующие 99msWorld of Tanks: на пути к 1M CCU, Максим Мельников
  12. 12. ПРОБЛЕМЫ РОСТАсовсем не угадали размер аудитории на стартепостоянный рост аудиториинедоработки и нехватка оборудованияпостоянный авралпредел масштабирования кластераWorld of Tanks: на пути к 1M CCU, Максим Мельников
  13. 13. ПЕРЕЕЗДЕЦмного кластеровбыстрое перемещение между кластерамивыделенный кластер для хранения данныхWorld of Tanks: на пути к 1M CCU, Максим Мельников
  14. 14. АРХИТЕКТУРА МЕТАКЛАСТЕРАЦентрпостоянное хранилищеаккаунты (proxy)взаимодействие с web-омПериферия RU1, RU2, ...временное хранилищеаккаунтыбоиWorld of Tanks: на пути к 1M CCU, Максим Мельников
  15. 15. ПРEИМУЩЕСТВА МЕТАКЛАСТЕРА1. масштабируемость2. гео-распределённость3. отказоустойчивость4. независимостьWorld of Tanks: на пути к 1M CCU, Максим Мельников
  16. 16. ВЕБрегистрацияновостистатьи и описаниямедиа контентплатёжная формаобработка платежейраздача обновленийуправление пользователямипрофиль игрокастатистикарейтинги...World of Tanks: на пути к 1M CCU, Максим Мельников
  17. 17. ИНТЕГРАЦИЯ С ИГРОВЫМ СЕРВЕРОМAMQP — протокол взаимодействия с игровым серверомXML-RPC обёртка над AMQPреплика данных игры в реляционном видеWorld of Tanks: на пути к 1M CCU, Максим Мельников
  18. 18. СЕРВИСНАЯ АРХИТЕКТУРАмножество различных проектовпротоколы взаимодействия: AMQP, HTTP, SQL, XML-RPCWorld of Tanks: на пути к 1M CCU, Максим Мельников
  19. 19. СТЭК ТЕХНОЛОГИЙLNAMPMRLinuxnginxApache (mod_wsgi)MySQLPython (Django)memcachedRabbitMQДругоеuwsgiTwistedPhpRubyPostgreSQLMongoDBRedisWorld of Tanks: на пути к 1M CCU, Максим Мельников
  20. 20. ОБНОВЛЕНИЕ КЛИЕНТАотдельный процесс который занимается обновлениямиподдержка http и torrent протоколов2M игроковразмер обновления 1GBнет возможности раздавать обновление заранеекороткая сессия участия игроков в раздачеWorld of Tanks: на пути к 1M CCU, Максим Мельников
  21. 21. CБОР СТАТИСТИКИ1. Launcherфайлразмервремяпротоколисточник2. tracker3. CDNWorld of Tanks: на пути к 1M CCU, Максим Мельников
  22. 22. РЕШЕНИЕнаши torrent сервера — всегда в top-еweb seed-ыWorld of Tanks: на пути к 1M CCU, Максим Мельников
  23. 23. ИДЕИглавное — скорость и простота разработкине стоит боятся гетерогенной средысинхронный подход везде где можноасинхронный — только там, где это необходимоAMQP — отличный протокол для реализации RPCработа с объектами в памяти самая быстраяWorld of Tanks: на пути к 1M CCU, Максим Мельников
  24. 24. СПАСИБО ЗА ВНИМАНИЕ. ВОПРОСЫМаксим Мельниковmailto:m_melnikau@wargaming.nethttps://plus.google.com/114669104565190507739/https://twitter.com/max_posedonhttp://wargaming.com
  25. 25. КОНФИГУРАЦИЯ ТИПИЧНОГО СЕРВЕРА2 cpu ∗ 8 core ∗ 2 threads64 GB RAM4 ethernetWorld of Tanks: на пути к 1M CCU, Максим Мельников
  26. 26. ОСНОВНАЯ ИГРОВАЯ БАЗАразмер базы: 300 GB384 GB RAMPercona 5.5 (разогрев кэша — 1GBps)40k select-ов, 1k insert-ов, 1k update-ов в секунду24 HDD ∗ 600 GB ∗ 0.5 = 6 TBWorld of Tanks: на пути к 1M CCU, Максим Мельников
  27. 27. ДОПОЛНИТЕЛЬНАЯ ИГРОВАЯ БАЗАразмер базы: 4 TB64 GB RAMMySQL 5.5100 GB, 350 млн записей (в день); 1k insert-ов в секунду24 HDD ∗ 600 GB ∗ 0.5 = 6 TBext4World of Tanks: на пути к 1M CCU, Максим Мельников

×