Что может Веб-кластер
Цели и задачи
Модуль Веб-кластер – это комбинация технологических решений, которые позволяют распределить один сайт на несколько серверов, решая тем самым несколько задач:
- обеспечение высокой доступности сайта;
- его масштабирование в условиях возрастающей нагрузки;
- балансирование нагрузки, трафика, данных между несколькими серверами.
Работа Веб-кластера поддерживается на уровне самой платформы «1С-Битрикс», поэтому вносить какие-либо изменения в код существующих и новых проектов не потребуется. Для настройки веб-кластера может потребоваться начальная квалификация в области системного администрирования.
Модуль Веб-кластер позволяет использовать:
- Вертикальный шардинг (вынесение отдельных частей базы данных (модулей) на отдельные серверы MySQL, например, "Поиск" и "Веб-аналитика");
- Репликацию MySQL и балансирование нагрузки между серверами;
- Распределенный кеш данных (memcached);
- Непрерывность сессий между веб-серверами (хранение сессий в базе данных);
- Кластеризацию веб-сервера:
- Синхронизация файлов;
- Балансирование нагрузки между серверами.
Модуль "Веб-кластер" решает несколько очень важных практических бизнес-задач, каждую из которых мы рассмотрим далее в этом уроке:
- Масштабирование веб-проекта, повышение производительности;
- Резервирование всех узлов системы, обеспечение отказоустойчивости и непрерывной доступности;
- Real-time backup;
- Снижение стоимости трафика, простая система CDN.
Масштабирование веб-проекта,
повышение производительности
Рост популярности и посещаемости веб проекта требует увеличения ресурсов (CPU, памяти, дискового пространства). До определенного порога задача решается просто. С виртуального хостинга сайт переносится на VPS VPS (англ. virtual private server) – виртуальный выделенный сервер. , затем – на свой выделенный сервер, затем – на более мощный сервер. При этом каждый новый перенос сайта на новые ресурсы сопровождается временной недоступностью сайта в период переезда. Но рано или поздно ресурсов оказывается недостаточно.
"1С-Битрикс: Веб-кластер" гибко, в реальном времени, масштабирует именно те ресурсы (база данных или веб-сервер), которые востребованы в настоящий момент. Просто добавляя/отключая новые машины по мере необходимости.
Ключевые особенности технологии:
- каждая машина ("нода") в кластере может быть разной сущности: виртуальный хост, VPS, выделенный сервер,
инстанс
Инстанс в облачных вычислениях – это серверный ресурс, предоставляемый сторонними облачными сервисами.
Подробнее... в "облаке" (например, Amazon EC2); - ноды могут быть распределены любым удобным образом – вплоть до нахождения в разных датацентрах;
- добавление нод различной мощности в среднем дает пропорциональный прирост производительности.
Подобный подход позволяет последовательно по мере необходимости наращивать ресурсы для проекта.
Примерные рекомендации по "железу"
Интернет-магазин с посещаемостью примерно 150 человек за 10 минут, папка сайта весит 700ГБ, БД 10ГБ.
- Для memcached: Intel Xeon E-2236 3.4 ГГц, 6 ядер 16 ГБ DDR4 2 × 480 ГБ SSD
- Для App сервера: Intel Xeon E3-1230 3.4 ГГц, 4 ядра 32 ГБ DDR4 2 × 240 ГБ SSD 2 × 2000 ГБ HDD
- Для сервера БД: Intel Xeon E-2236 3.4 ГГц, 6 ядер 64 ГБ DDR4 2 × 960 ГБ SSD
Резервирование всех узлов системы, обеспечение
отказоустойчивости и непрерывной доступности
Выход из строя оборудования или авария в датацентре может привести к многочасовой недоступности сайта. А это чревато последствиями:
- потерянные заказы (в случае интернет-магазина);
- впустую потраченные деньги на рекламу;
- потеря репутации;
- потеря позиций в выдаче поисковых систем в случае переиндексации поисковым роботом в момент недоступности сайта.
Кластеризация всех составляющих сайта (веб-сервер и база данных) с помощью "1С-Битрикс: Веб-кластер" минимизирует время простоя системы. В зависимости от того, как именно реализована балансировка нагрузки между нодами кластера, время недоступности сайта может составить 5-15 минут, а в отдельных случаях и вовсе может быть сведено к нулю.
Как это работает: при аварии на отдельных нодах вышедшие из строя узлы кластера помечаются неактивными (OFFLINE), а нагрузка на систему автоматически распределяется между оставшимися узлами.
В пиках нагрузки может пропорционально возрасти время отдачи страниц сайта посетителям, но работоспособность не будет нарушена. В штатном же режиме работы при наличии достаточного резерва производительности клиенты вообще не заметят каких-либо изменений.
После устранения причин аварии вновь вводятся в работу вышедшие из строя ноды, тем самым распределив нагрузку между большим числом серверов.
Real-time backup
Крайне важный аспект создания резервных копий – частота их обновлений. Если бэкапы создаются не очень часто, например, раз в неделю (а для больших проектов, это, к сожалению, не редкость), то в случае аварии есть риск потерять все изменения (код разработчиков, данные самого сайта, пользовательские данные) вплоть до семи дней.
"1С-Битрикс: Веб-кластер" подключает одну из нод в качестве бэкап-сервера. Это может быть не очень дорогой сервер или, например, VPS. В настройках веб-кластера отмечается, что данная нода используется только для бэкапа, и она не участвует в распределении нагрузки от посещений сайта. При этом данные сайта (и файлы, и база данных) дублируются в реальном времени. В случае аварии будут восстановлены актуальные данные на момент сбоя. Для максимально быстрого восстановления обращения к сайту могут быть переключены непосредственно на резервный бэкап-сервер.
Снижение стоимости трафика,
простая система CDN
Перед владельцами сайтов с "тяжелым" контентом (аудио, видео, фото) стоит серьезная задача: минимизировать стоимость трафика проекта в сочетании с обеспечением высокой скорости доступа для всех посетителей независимо от территориального распределения.
Ноды веб-кластера размещают в разных датацентрах (например, три сервера: в США, в Европе и в России). Дополнительные инструменты (например, базы GeoIP) автоматически определяют регион посетителя сайта и перенаправляют его запрос на соответствующую ноду кластера. (Подобный механизм, регулирующий загрузку контента в зависимости от географического положения клиента, называется CDN – Content Delivery Network).
Документация по теме
и Ваше мнение важно для нас