Веб-кластер Bitrix
Модуль веб-кластер
это комбинация технологических решений, которые позволяют распределить один сайт на несколько серверов, решая тем самым несколько задач:
- Обеспечение высокой доступности сайта
- Масштабирование проекта в условиях возрастающей нагрузки
- Балансирование нагрузки между несколькими серверами
Любой новый или работающий проект на Битрикс, может быть представлен как веб-кластер взаимозаменяемых серверов. Основные задачи, которые позволяет решить подобная конфигурация проекта:
- При увеличении посещаемости можно быстро добавить в кластер новые сервера
- В случае выхода из строя одного из серверов кластера система продолжает беспрерывно обслуживать Клиентов
- Балансирование нагрузки, трафика, данных между несколькими серверами
- Система позволяет снимать резервные копии со специально выделенных узлов кластера, не влияя на работу сайта
Для каких задач нужен веб-кластер
Кластер необходим для гибкого решения задач увеличения нагрузки и повышения стабильности сервиса. Так, при увеличении посещаемости можно быстро добавить в кластер новые серверы. А в случае выхода из строя одного из серверов кластера система продолжает беспрерывно обслуживать посетителе.
Не менее важная задача – это балансирование нагрузки, траффика, данных между несколькими серверами. При этому система позволяет снимать резервные копии со специально выделенных узлов кластера, не влияя на работу сайта, не выключая машины и не тормозя их.
Отдельно стоят задачи гео-распределения. Когда вы запускаете географический веб-кластер, он позволяет поднимать целые группы серверов. В каждой из этих групп работает свой мастер – в независимых друг от друга датацентрах. Таким образом, ваши сайты, ваш бизнес полностью защищены от недоступности самих датацентров и каналов связи.
Технологии которые включает в себя веб-кластер
- Вертикальный шардинг, вынесение модулей на отдельные серверы MySQL, подробнее
- Репликация MySQL и балансирование нагрузки между серверами, подробнее
- Распределенный кеш данных
memcached
, подробнее - Непрерывность сессий между веб-серверами, хранение сессий в базе данных, подробнее
- Кластеризация веб-сервера, синхронизация файлов и Балансирование нагрузки между серверами
- Независимость от дата-центра, в случае отказа одного дата-центра, в работу мгновенно включается другой, без необходимости восстановления из бэкапа
При разделении проекта на несколько веб-серверов необходимо всегда помнить о двух задачах и решать их:
- Синхронизация данных, файлов между серверами
- Балансировка нагрузки между серверами
Вертикальный шардинг
Разделение одной базы данных веб-приложения на две и более базы данных за счет выделения отдельных модулей, без изменения логики работы веб-приложения.
В отдельные базы можно вынести следующие модули продукта:
- Веб-аналитика
- Поиск
Репликация MySQL и балансирование нагрузки между серверами
Платформа «1С-Битрикс: Управление сайтом» позволяет гибко балансировать нагрузку между серверами, участвующими в репликации.
Ключевые особенности:
- Гибкая балансировка нагрузки SQL
- Простота администрирования
- Дешевое и быстрое неограниченное масштабирование
- Онлайн бэкап
- Не требуется доработка логики веб-приложения
Распределенный кеш данных memcached
«1С-Битрикс: Веб-кластер» позволяет использовать пул серверов memcached
для работы с кешем данных.
Технология позволяет кэшировать данные в оперативной памяти множества доступных серверов. Распределение реализуется путём сегментирования данных по значению хэша ключа по аналогии с сокетами хэш-таблицы. Клиентская библиотека, используя ключ данных, вычисляет хэш и использует его для выбора соответствующего сервера.
Это обеспечивает:
- Высокую эффективность, за счет централизованного использования кеша веб-приложением
- Надежность, за счет устойчивости подсистемы кешировния к выходу из строя отдельных компонентов
- Неограниченную масштабируемость, за счет добавления новых
memcached
серверов
Непрерывность сессий между веб-серверами, хранение сессий в базе данных
Для организации непрерывности сессий между веб-серверами необходимо включить хранение сессий в базе данных, а сами базы данных у нас реплицируются, как было указано выше.
Возможность хранения данных пользовательских сессий в базе данных обеспечивает «прозрачность» сессии для всех веб-серверов кластера:
- После авторизации на одном из серверов пользователь должен считаться авторизованных и для всех других серверов
- Окончание сессии на любом сервере должно означать ее окончание на всех серверах сразу