Компромиссная  производительность Михаил Токовинин ( QSOFT)
Что такое «большой» проект Сотни тысяч, миллионы, десятки миллионов хитов;   Бесперебойная работа;   Сложная структура  ( серверный парк,   большое количество   кода ) ; Большое количество данных. В чем измерять нагрузку? Технический отдел меряет посещаемость в хитах (желательно в единицу времени)  Соотношение хитов и посетителей зависит от типа проекта
Что такое рост нагрузки? Рост ресурсов, требуемых на обработку потока запросов; Рост ресурсов, требуемых для хранения пользовательских данных; Рост ресурсов, требуемых для передачи данных между пользователями и сервером. Типичные узкие места: База данных (объемы и производительность), Производительность серверов, Скорость и объемы жестких дисков,
Как с этим быть? План по нагрузкам; Нагрузочное тестирование для определения производительности системы; Инвестиции в повышение предела по производительности
Масштабирование Горизонтальное: Увеличение производительности системы за счет подключения дополнительных  cерверов. Но как быть с базой данных? Вертикальное: Увеличение производительности системы за счет увеличения сервера. Но всегда есть предел! Функциональное разбиение: Разные функциональные части работают и хранятся на разных серверах системы.  Шардинг: Разбиение данных на кусочки, которые раскладываются по серверам-шардам. Есть статический (по первой букве) и динамический (с координирующим центром)
Может перестраховаться?
Проекты, Риски, Деньги Любой проект действует в условиях ограниченных ресурсов Проект представляет собой комплекс задач, решение каждой из которых критично для успеха проекта Проект, а точнее каждая составная задача содержит в себе множество рисков. И производительность, лишь одна из задач Производительность только кажется самой сложной и необходимой задачей (люди боятся неизвестного или того, в чем плохо разбираются)
Производительность как риск Производительность содержит себе во много раз меньше рисков, чем, например, сама разработка или «продвижение» и легко поддается планированию Реализация рисков по производительности растянуты во времени и у владельцев проекта есть время на  исправление ошибок (в отличие, например, от рисков надежности или безопасности)  Производительность – это приятные хлопоты
Достаточная производ-ность Стоит понимать, что для снижения рисков по производительности проект должен удовлетворять требованиям «достаточной производительности». Нет необходимости переплачивать за то, чего еще нет и скоро не будет. Вероятность необходимости полной переделки системы больше связана с рисками самой разработкой, чем с рисками по производительности Всегда есть запас по времени, чтобы все успеть
Нормальный цикл
Быстрая помощь Программные решения наиболее эффективны, но требуют много времени; кроме того, требуемый уровень специалистов иногда запредельно высок; Более мощное аппаратное обеспечение; Редуцирование функциональности; Уменьшение качества; Оптимизация нагрузки;
Вопросы? Михаил Токовинин,  [email_address]   Директор компании  QSOFT ( www.qsoft.ru )  Блог:  http://mtoko.livejournal.com

м.токовинин компромиссная производительность

  • 1.
  • 2.
    Что такое «большой»проект Сотни тысяч, миллионы, десятки миллионов хитов; Бесперебойная работа; Сложная структура ( серверный парк, большое количество кода ) ; Большое количество данных. В чем измерять нагрузку? Технический отдел меряет посещаемость в хитах (желательно в единицу времени) Соотношение хитов и посетителей зависит от типа проекта
  • 3.
    Что такое ростнагрузки? Рост ресурсов, требуемых на обработку потока запросов; Рост ресурсов, требуемых для хранения пользовательских данных; Рост ресурсов, требуемых для передачи данных между пользователями и сервером. Типичные узкие места: База данных (объемы и производительность), Производительность серверов, Скорость и объемы жестких дисков,
  • 4.
    Как с этимбыть? План по нагрузкам; Нагрузочное тестирование для определения производительности системы; Инвестиции в повышение предела по производительности
  • 5.
    Масштабирование Горизонтальное: Увеличениепроизводительности системы за счет подключения дополнительных cерверов. Но как быть с базой данных? Вертикальное: Увеличение производительности системы за счет увеличения сервера. Но всегда есть предел! Функциональное разбиение: Разные функциональные части работают и хранятся на разных серверах системы. Шардинг: Разбиение данных на кусочки, которые раскладываются по серверам-шардам. Есть статический (по первой букве) и динамический (с координирующим центром)
  • 6.
  • 7.
    Проекты, Риски, ДеньгиЛюбой проект действует в условиях ограниченных ресурсов Проект представляет собой комплекс задач, решение каждой из которых критично для успеха проекта Проект, а точнее каждая составная задача содержит в себе множество рисков. И производительность, лишь одна из задач Производительность только кажется самой сложной и необходимой задачей (люди боятся неизвестного или того, в чем плохо разбираются)
  • 8.
    Производительность как рискПроизводительность содержит себе во много раз меньше рисков, чем, например, сама разработка или «продвижение» и легко поддается планированию Реализация рисков по производительности растянуты во времени и у владельцев проекта есть время на исправление ошибок (в отличие, например, от рисков надежности или безопасности) Производительность – это приятные хлопоты
  • 9.
    Достаточная производ-ность Стоитпонимать, что для снижения рисков по производительности проект должен удовлетворять требованиям «достаточной производительности». Нет необходимости переплачивать за то, чего еще нет и скоро не будет. Вероятность необходимости полной переделки системы больше связана с рисками самой разработкой, чем с рисками по производительности Всегда есть запас по времени, чтобы все успеть
  • 10.
  • 11.
    Быстрая помощь Программныерешения наиболее эффективны, но требуют много времени; кроме того, требуемый уровень специалистов иногда запредельно высок; Более мощное аппаратное обеспечение; Редуцирование функциональности; Уменьшение качества; Оптимизация нагрузки;
  • 12.
    Вопросы? Михаил Токовинин, [email_address] Директор компании QSOFT ( www.qsoft.ru ) Блог: http://mtoko.livejournal.com