Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)

520 views

Published on

  • Be the first to comment

World of Tanks: на пути к 1 млн CCU / Максим Мельников (Wargaming.net)

  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. ПРЕЕМУЩЕСТВА МЕТАКЛАСТЕРА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, Максим Мельников

×