Сколько стоит сделать кластер серверов для сайта с высокой нагрузкой на 1С-Битрикс

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

В каких случаях 1 сервера становится мало?

Дополнительный сервер нужен, если:

  1. Особенности проекта вынуждают вынести базу данных, кеш или другую часть сайта на отдельный сервер

    1. Нагрузка большая, ничего не помогает ( код оптимизировали, базу настроили, память и процессор — лучшее из возможного).

    2. Сайт должен открываться быстро для пользователей из разных стран

  2. Резервный сервер с проектом, на случай аварии на основном.

Если сайт на Битриксе не справляется с нагрузкой

Вы создали интернет-магазин на 1С-Битрикс. Сайт работает, приносит деньги, но — тормозит.

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

Что делать? Правильный алгоритм:

  1. выполняем оптимизацию,

  2. увеличиваем ресурсы сервера,

  3. добавляем ещё серверы и строим из них кластер.

Оптимизация интернет-магазина

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

Процесс похож на постройку гоночного автомобиля. Выкидываем всё лишнее, оставляем необходимый минимум. Автомобиль должен стать легким.

Процесс оптимизации подробно описан в статье: подготовка интернет-магазина к высоким нагрузкам . Когда оптимизировать уже нечего, можно переходить к серверу.

Изменения на сервере. Масштабирование интернет-магазина

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

Масштабирование бывает 2-х видов: вертикальное и горизонтальное. Вертикальное масштабирование это увеличение ресурсов на одном сервере ( замена процессора, добавление оперативной памяти и т. д. ). Горизонтальное масштабирование это увеличение количества серверов.

Увеличение ресурсов сервера ( вертикальное масштабирование интернет-магазина)

Перед тем как что-то увеличивать, нужно понять чего нам не хватает. Для этого мы проводим нагрузочное тестирования и смотрим, что закончится раньше: процессор, память, сеть или диски.

Нагрузочные тестирование показывает, что интернет-магазин с 60 000 SKU на одном VDS сервере способен выдерживать нагрузку 300 RPS ( это 300 запросов в секунду).
Это запросы, которые NGINX отправляет в APACHE, т.е. запросы к страницам сайта, а не JS/CSS и картинкам.

Если конвертировать RPS в пользователей, сайт будет работать при посещаемости 100 000 пользователей в сутки.

Добавление серверов ( горизонтальное масштабирование сайта на 1С-Битрикс)

Существуют разные способы горизонтального масштабирования. Большинство из них подробно описаны в интернете. Однако, не все совместимы с проектами на 1С-Битрикс. Кроме этого, не каждая редакция 1С-Битрикс позволяет это сделать. Например, для интернет-магазинов нужна редакция « Бизнес», т.к. в ней есть модуль « Веб-кластер».

Процедура настройки кластера из 2 серверов выглядит так:

  1. Покупаем 2 одинаковых выделенных сервера

  2. Устанавливаем на все серверы специальный софт « Битрикс Веб-окружение »

  3. Один из серверов выбираем основным, он будет называться MASTER

  4. Второй сервер будет ему подчиняться и называется SLAVE

  5. На MASTER-сервере разворачивается резервная копия сайта

  6. Битрикс веб-окружение позволяет распространить файлы и базу данных сайта на SLAVE-сервер

  7. На MASTER и SLAVE серверах настраиваем общую систему кеширования

  8. Тестируем работу сайта

На все эти процедуры уходит 16−24 часа работ.

Как работает кластер из нескольких серверов?

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

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

К сожалению, Битрикс устроен так, что он не может полностью отдавать запросы SLAVE-серверу, не нагружая MASTER. Однако, даже частичное делегирование, повышает максимальное количество пользователей, которое способен обслужить ваш сайт.

Как меняется стоимость сопровождения проекта?

На стоимости и скорости разработки это никак не сказывается. Дорожает только хостинг и услуги администрирования.

Мы перевели на такую конфигурацию интернет-магазин нашего клиента 704ka.ru. После перехода, взяли на себя администрирование и мониторинг обоих серверов. Аварий нет — полет нормальный.

Запасной сервер

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

Предположим, в один из дата-центров бьёт молния , как это было в 2011 году с 1С-Битрикс, или начинается DDOS атака. В этот момент, ваш MASTER теряет связь с внешним миром и сайт выключается. Нам нужно 30 минут, чтобы перевести SLAVE в режим MASTER и возобновить работу вашего сайта.

Согласен, молния это экзотика. Однако, ddos атака на один из дата-центров вполне реальна.

Заключение

Как вы поняли, не бывает 100% надёжных систем. Однако, если взять ситуацию в свои руки и привлечь правильных специалистов, количеством аварий и масштабом их последствий можно будет управлять.

Порядок действий, для тех кто уже столкнулся с проблемой производительности:

  1. Провести аудит и найти источники проблем в проекте

  2. Убрать лишний и медленный код, ускорить работу базы данных

  3. Сделать апгрейд сервера

  4. Увеличить количество серверов

Если хотите привлечь нас к этому процессу — заполните форму заявки или оставьте в комментарии ваши контакты.

Заявка на обновление, поддержку и сопровождение сайта 24x7
Иван
+7 (905) 000 00 00
info@intervolga.ru
www.site.ru
Хочу подключить услугу "поддержка 24x7"