Читаем Корпоративный веб-сайт на 100%. Требуйте от сайта большего! полностью

♦ Использование стандартного общераспространенного оборудования (причем, несерверного класса)

♦ Использование бесплатного программного обеспечения

♦ Использование более дешевых компонент

♦ Использование программных решений вместо дополнительного оборудования

Важно понимать, что указанные способы могут применяться только в ограниченном перечне случаев и почти всегда ведут к снижению качества работы веб-сайта или повышению рисков его бесперебойного функционирования.

81. Архитектура и масштабирование

...

Программно-аппаратная архитектура – это комплекс аппаратных средств и работающего на нем программного обеспечения, поддерживающий бесперебойное функционирование веб-системы в различных режимах. Различные архитектуры обладают различной масштабируемостью – предельными значениями по объему хранимых данных и количеству одновременно работающих пользователей при заданных параметрах работы.

Масштабируемость должна обеспечивать предсказуемый рост системных характеристик веб-сайта – таких, как: количество поддерживаемых пользователей, быстрота реакции, общая производительность.

...

Ключевые параметры масштабируемости:

• поддержка многопроцессорной обработки

• гибкость архитектуры

Другими словами, сайт должен сохранять работоспособность при модернизации и возрастании нагрузок на него.

Направления масштабирования

Принято выделять два основных направления масштабирования:

Горизонтальное масштабирование – разбиение системы на более мелкие структурные компоненты и разнесение их по отдельным физическим машинам (или их группам) и/или увеличение количества серверов, параллельно выполняющих одну и ту же функцию

Вертикальное масштабирование – увеличение производительности каждого компонента системы c целью повышения ее общей производительности

Мы рекомендуем вам убедиться в том, что оба этих способа масштабирования учтены на вашем сайте.

Архитектура серверов

Более 95 % корпоративных сайтов могут качественно функционировать на одном выделенном сервере (или даже виртуальном хостинге ).

Такой сервер способен обслуживать 10 000–100 000 загрузок страниц в сутки, что соответствует 3000-50 000 уникальным пользователям (количество зависит от мощности сервера, используемой системы управления контентом, количества страниц, качества конфигурирования системного программного обеспечения, структуры и содержания сайта).

Около 5 % самых посещаемых сайтов (10 000 и более пользователей в сутки) не могут качественно функционировать на одном выделенном сервере, для их размещения требуется использовать минимум два сервера.

В этом случае различные уровни системы (СУБД, frontend, backend) распределяют по разным серверам. Наиболее эффективное и распространенное решение – отдельный сервер СУБД и отдельный для frontend + backend.

Если позволяет программная архитектура, frontend и backend могут быть разделены на отдельные машины. За счет такого распределения уровней системы ее производительность (количество генерируемых страниц в единицу времени) вырастет в 1,5–2,5 раза.

Дополнительную производительность к этой схеме можно получить при использовании технологии многоуровневого кэширования и репликации данных . Это позволяет увеличить производительность системы при работе на двух-трех серверах еще в 1,5-10 раз.

В редких случаях сайты изначально специально проектируются под многосерверную архитектуру (таких корпоративных сайтов в русскоязычном Интернете менее 1000).

В такой ситуации применение большинства систем управления контентом становится ограниченным и для работы со специально спроектированными данными создаются специальные интерфейсы управления.

При этом отдельные данные могут храниться и обрабатываться в СУБД одного сервера, а другие данные – в СУБД другого сервера и при выдаче страницы «склеиваться» на уровне сборки страницы из шаблона.

Таким образом, должно быть принято решение об использовании определенной структуры серверов :

Выделенный сервер

Небольшое количество серверов

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже