'

Лекция 3

Понравилась презентация – покажи это...





Слайд 0

Разработка многопользовательских онлайн игр. Архитектура Dozory.ru и Chernovik-online.ru Лекция 3


Слайд 1

О чем эта лекция? Проект dozory.ru За два года 2.5 млн уникальных поситителей В среднем 10-12 тысяч поситетелей в день Пиковые нагрузки – 3000-3500 одновременно играющих пользователей Проект chernovik-online.ru – открытая бета Как они устроены изнутры? Программно и аппаратно


Слайд 2

Что нужно от вас? Просите расшифровать непонятные термины Задавайте вопросы если хотите узнать больше по какой-то теме Критикуйте! Вместе можем придумать как улучшить архитектуру


Слайд 3

О нас в прошедшем времени Несколько лет веб разработки Сайты, интернет магазины, CSM, .... Был опыт нагруженного проекта (целых два сервера на проект, вместо одного на десять) Активно изучаем новые технологии и любим их применять, особенно в новых проектах


Слайд 4

Дозоры. Как придумали и как все начиналось Всей компании хотелось поработать над “своим” проектом Идея родилась в многочисленных обсуждениях, выбирали между банерной сетью и игрой Пробуем прототипы Первые трудности в коммуникациях


Слайд 5

Выбор архитектуры Сервер на С Или CGI на perl


Слайд 6

Выбираем CGI Мы знали как работают web проекты Вообще не представляли специфику игр Количество perl разработчиков больше Прототипы были на том же perl


Слайд 7

Как устроена первая версия? mod_perl Не оптимизированный MySQL Есть зачатки кеширования


Слайд 8

Как устроено само приложение? Модель Представление Контроллер


Слайд 9

Альфа тест. Запуск первой версии 3 месяца активной разработки Внутренний тест – 10 человек из офиса Запуск – падение через 3 минуты Поиск ошибок практически до утра После сна сразу несколько человек поняли в чем проблема :)


Слайд 10

1е правило проектирования высокнагрузочных систем Если что-либо может чисто теоретически произойти – оно обязательно произойдет!


Слайд 11

Что же было не так? Мы не сделали lock's на кеш


Слайд 12

Игра и база даных 3я нормальная форма Как ускорить? Если можете не обращаться к БД – не обращайтесь (Петр Зайцев)


Слайд 13

Механизмы кеширование Кеширование есть в самой БД Файлы Shared memory Memcached


Слайд 14

Кеширование объектов Один объект содрежит в кеше всех потомков Каждый объект в кеше отдельной записью


Слайд 15

10 000 онлайн. Что делать? Оптимизация MySQL, innodb Memcached Perscached и person_storer Memcached для локов критичных объектов


Слайд 16

Как обеспечить устойчивость работы? 24/7 HA cluster (LVS) Апачи через ldirector Дублирование сайтов на двух машинах Дублирование базы данных Модули для бэкендов расшарены по nfs (drdb для синхронизации) Пишем с бэкэндов по fuse-ssh


Слайд 17

Новые технологии Нас настиг Web 2.0 Ушли то фреймов XML+XSLT как замена представления


Слайд 18

Финальная схема 16 физических серверов


Слайд 19

Еще схема


Слайд 20

Что изменилось после нас? Более мощные машины на бэкенды Nginx перед тяжелыми апачами Перевели некоторые расчеты на отдельные демоны Заменили XML+XSLT на json


Слайд 21

Черновик Выбор технологий Выбор архитектуры


Слайд 22

Схема работы


Слайд 23

Технически все должно быть хорошо Так ли это – покажет время


Слайд 24

25й кадр http://inventos.ru/study intern@inventos.ru, study@inventos.ru В отдел разработки игр мы ищем геймдизайнера!


×

HTML:





Ссылка: