+ All Categories
Home > Documents > Лекция 3

Лекция 3

Date post: 19-Jan-2016
Category:
Upload: fallon
View: 62 times
Download: 0 times
Share this document with a friend
Description:
Разработка многопользовательских онлайн игр. Архитектура Dozory.ru и Chernovik-online.ru. Лекция 3. О чем эта лекция?. Проект dozory.ru За два года 2.5 млн уникальных поситителей В среднем 10-12 тысяч поситетелей в день Пиковые нагрузки – 3000-3500 одновременно играющих пользователей - PowerPoint PPT Presentation
25
Разработка многопользовательских онлайн игр. Архитектура Dozory.ru и Chernovik- online.ru Лекция 3
Transcript
Page 1: Лекция 3

Разработка многопользовательских онлайн игр.

Архитектура Dozory.ru и Chernovik-online.ru

Лекция 3

Page 2: Лекция 3

О чем эта лекция?

Проект dozory.ru За два года 2.5 млн уникальных поситителей В среднем 10-12 тысяч поситетелей в день Пиковые нагрузки – 3000-3500 одновременно

играющих пользователей Проект chernovik-online.ru – открытая бета

Как они устроены изнутры? Программно и аппаратно

Page 3: Лекция 3

Что нужно от вас?

Просите расшифровать непонятные термины

Задавайте вопросы если хотите узнать больше по какой-то теме

Критикуйте! Вместе можем придумать как улучшить архитектуру

Page 4: Лекция 3

О нас в прошедшем времени

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

сервера на проект, вместо одного на десять) Активно изучаем новые технологии и любим

их применять, особенно в новых проектах

Page 5: Лекция 3

Дозоры. Как придумалии как все начиналось

Всей компании хотелось поработать над “своим” проектом

Идея родилась в многочисленных обсуждениях, выбирали между банерной сетью и игрой

Пробуем прототипы Первые трудности в коммуникациях

Page 6: Лекция 3

Выбор архитектуры

Сервер на С Или CGI на perl

Page 7: Лекция 3

Выбираем CGI

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

Page 8: Лекция 3

Как устроена первая версия?

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

Page 9: Лекция 3

Как устроено само приложение?

Модель Представление Контроллер

Page 10: Лекция 3

Альфа тест. Запуск первой версии

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

чем проблема :)

Page 11: Лекция 3

1е правило проектированиявысокнагрузочных систем

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

Page 12: Лекция 3

Что же было не так?

Мы не сделали lock's на кеш

Page 13: Лекция 3

Игра и база даных

3я нормальная форма Как ускорить? Если можете не обращаться к БД – не

обращайтесь (Петр Зайцев)

Page 14: Лекция 3

Механизмы кеширование

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

Page 15: Лекция 3

Кеширование объектов

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

Page 16: Лекция 3

10 000 онлайн.Что делать?

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

Page 17: Лекция 3

Как обеспечить устойчивость работы? 24/7

HA cluster (LVS) Апачи через ldirector Дублирование сайтов на двух машинах Дублирование базы данных Модули для бэкендов расшарены по nfs

(drdb для синхронизации) Пишем с бэкэндов по fuse-ssh

Page 18: Лекция 3

Новые технологии

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

Page 19: Лекция 3

Финальная схема

16 физических серверов

Page 20: Лекция 3

Еще схема

Page 21: Лекция 3

Что изменилось после нас?

Более мощные машины на бэкенды Nginx перед тяжелыми апачами Перевели некоторые расчеты на отдельные

демоны Заменили XML+XSLT на json

Page 22: Лекция 3

Черновик

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

Page 23: Лекция 3

Схема работы

Page 24: Лекция 3

Технически все должно быть хорошо

Так ли это – покажет время

Page 25: Лекция 3

25й кадр

http://inventos.ru/study [email protected], [email protected]

В отдел разработки игр мы ищем геймдизайнера!


Recommended