веб кластер в битрикс 24 что это
Переезд на кластер под управлением «1С-Битрикс: Веб-окружение»
Собственно, если мы обратимся на сайт вендора, то там увидим что:
«1С-Битрикс»: Веб-окружение» — Linux служит для быстрой и простой установки всего ПО, необходимого для работы продуктов и решений «1С-Битрикс» на Linux-платформах CentOS 6 (i386, x86_64) и CentOS 7 (x86_64). Устанавливать необходимо на «чистый» CentOS, без уже установленного веб-сервера.
В состав «1С-Битрикс: Веб-окружение» — Linux входят: mysql-server, httpd, php, nginx, nodejs push-server, memcached, stunnel, catdoc, xpdf, munin, nagios, sphinx.
По сути, данный комплекс ПО содержит в себе настроенный LAMP, консольную панель управления сервером, плюс дополнительные, необходимые для работы некоторых модулей 1C-Bitrix, пакеты. Весь софт настроен с учётом особенностей 1C-Bitrix, а именно:
Итак, у нас было 2 app сервера (назовём их app01 и app01), 2 db сервера (db01, db02), 1 сервер под кэширование (cache01, ну вы поняли), точнее была идея реализовать структуру кластера подобным образом. Под этот план были получены 5 серверов, с установленными на них последними версиями centos7 (к сожалению, debian, ubuntu, fedora, rhel и др. не подходят), кроме os на серверы больше ничего не устанавливалось.
Т.к. мы собираем кластер, то необходимо определить, какой из серверов будет основным. Из-за особенностей балансировки запросов к приложению, один из серверов, где будет работать httpd, будет также содержать nginx. Все входящие запросы будет принимать также он, и после этого перенаправлять запрос на одну из доступных web-нод. Мы выбрали основным сервер app01.
В дальнейшем работа пошла по следующему плану:
1. Установить bitrixenv
Установка не подразумевает сверхъестественных знаний linux или администрирования. Заходим на каждый сервер через ssh и выполняем такие команды:
Ставить bitrixenv необходимо на все серверы, которые планируется использовать в кластере. Даже если сервер будет работать только как инстанс memcached, bitrixenv необходим, т.к. позволяет управлять всем кластером из основного сервера.
2. Настроить bitrixenv
Т.к. использовать весь этот зоопарк мы будем как кластер, то производить настройку серверов можно через меню окружения на app01. Для этого заходим на сервер через ssh, и запускаем файл /root/menu.sh. При первом запуске необходимо задать пароль для пользователя bitrix (аналогичную операцию необходимо провести на всех серверах, где планируется запуск сайта):
Собственно, это тот пользователь, под которым будет работать приложение. После этого мы видим экран, предлагающий создать пул серверов:
Тут нам необходимо выбрать первый пункт меню. В процессе создания окружение запросит имя текущего сервера, тут то мы и указываем app01:
После того, как пул будет создан, нас возвращают на первый экран окружения, но на этот раз там доступно куда больше пунктов:
В общем окружение уже готово и можно им пользоваться. Если кластер нам не нужен, то на этом можно было бы и заканчивать, но мы пойдём дальше.
Теперь нам необходимо добавить в созданный пул все доступные серверы. Для этого воспользуемся первым пунктом меню и увидим такие варианты:
Опять выбираем первый пункт меню, и указываем ip нового сервера, его имя в кластере (те самые app02, db01, db02, cache01) и root-пароль от подключаемого сервера. Таким образом, поочерёдно добавляем каждый имеющийся сервер. После того, как все серверы зарегистрированы в кластере, мы должны получить примерно такой список на главном экране окружения:
Настройку ролей серверов пока отложим на следующий шаг.
3. Перенос проекта
Т.к. наше приложение изначально работает на одном сервере, то модуль масштабирования и управления кластером отключены, база не реплицирована. Сам перенос ничего сверхъестественного из себя не представляет — упаковали папки bitrix и upload, сняли дамп БД.
После того, как архивы и дампы готовы, заходим на app01, и тянем через git код проекта в дефолтную папку сайта в bitrixenv — /home/bitrix/www, скачиваем wget-ом или curl-ом архивы и дамп БД, распаковываем архивы и заливаем дамп в БД на app01, переносим записи cron.
Если ваше приложение использует дополнительный софт, то самое время его установить и настроить. В нашем случае были установлены и настроены supervisord и RabbitMQ, т.к. приложение работало с использованием очередей.
Есть небольшой, но важный, нюанс. При переносе сайта в кластер, необходимо чтобы на сайте были отключены модули scale и cluster, а в окружении кластера, в которое планируется перенос, серверы пулла были не задействованы. Включать в работу серверы кластера необходимо только после того, как сайт будет перенесён и развёрнут на основном сервере. В противном случае сайт не сможет корректно определять серверы кластера.
4. Включение кластерного режима работы
После того, как приложение было перенесено на app01, и мы проверили корректность его работы, пришла пора заняться самым интересным — масштабированием. Для начала необходимо установить модули scale и cluster в админ-панели 1C-Bitrix. Во время установки ничего особо делать не нужно, вся работа происходит далее.
Как только модули установлены, переходим в ssh-соединение с основным сервером, а это app01, и открываем меню bitrixenv (лежит тут /root/menu.sh). Прежде чем приступить к дальнейшей настройке, необходимо выяснить один важный момент — bitrixenv оперирует понятием “роль сервера”. Не имеет особого значения, как называется сервер в пуле, т.к. каждый сервер содержит весь софт, который входит в пакет bitrixenv, мы всегда можем назначить ему одну или несколько ролей, а можем снять их с него или поменять на другие. Основные роли это — mgmt (балансировщик, т.е. nginx), web (т.е. httpd/apache), mysql_master и mysql_slave (инстанс БД, slave появляется уже когда начинаем делать репликацию), memcached (сервер с memcached). Общая картина теперь понятна, и мы решили начать с memcached-сервера. Для этого заходим в пункт
и видим запрос имени сервера, который будет выполнять роль memcached-сервера. У нас уже есть заготовленный для этого сервер cache01, поэтому смотрим в список доступных серверов. Если cache01 есть в списке, значит никаких проблем с установкой нет, и мы можем дать серверу выбранную роль.
Вписываем название cache01, видим, что задача на установку роли поставлена в очередь. Дожидаемся окончания фоновых работ и видим готовый к работе сервер с необходимой нам ролью.
Пришло время добавить второй app-сервер. Для этого переходим по пути
где нам необходимо указывать имя сервера и способ синхронизации между основной и новой web-нодой. Исходя из документации bitrixenv и предварительных испытаний, нашему проекту было достаточно выбрать первый вариант (за один шаг происходит и копирование проекта и настройка конфигов ноды). После того, как фоновые работы закончатся, мы должны увидеть в главном меню примерно такую картину:
Обратим внимание на то, что в колонке Roles напротив сервера app02 указана роль web.
Осталось разобраться с БД, её настройка занимает больше всего времени. Для начала вкратце объясню, как раздаются роли mysql в контексте bitrixenv. По-умолчанию на основном сервере кластера стоит master версия БД. В нашем случае необходимо было вынести БД на отдельный сервер и добавить ещё один сервер с slave-версией БД. В bitrixenv нельзя просто так взять и перенести master с одного сервера на другой)
Указали сервер, которому хотим дать роль mysql_slave — db01. Дожидаемся окончания фоновых работ и видим такой результат:
Отлично, теперь переходим в
Указываем app01 и ждём. В итоге должны увидеть примерно такой результат:
Медленно и неотвратимо мы подошли к установке последней роли — mysql_slave. Для этого необходимо повторить действия, которыми мы устанавливали такую роль для db01, но указать уже db02.
Наконец, все серверы подключены и настроены.
5. Тюнинг производительности
После того, как кластер готов, есть некоторые особенности в настройке приложения, позволяющие провести дополнительную оптимизацию:
Выводы
В рамках данной статьи мы разобрали последовательность действий, необходимых для настройки кластера серверов на базе bitrixenv, а также некоторых возможных подводных камней. По итогам работы с bitrixenv, и кластером на нём, можем выделить плюсы и минусы данного подхода:
Плюсы bitrixenv
Минусы bitrixenv
Коробка: веб-кластер
Любой новый или работающий портал на «Битрикс24 в коробке» может быть представлен как веб-кластер взаимозаменяемых серверов.
Основные задачи, которые позволяет решить подобная конфигурация проекта:
«1С-Битрикс: Веб-кластер» – это комбинация технологий:
1. Вертикальный шардинг
Разделение одной базы данных веб-приложения на две и более базы данных за счет выделения отдельных модулей, без изменения логики работы веб-приложения.
В отдельные базы можно вынести следующие модули продукта:
2. Репликация MySQL и балансирование нагрузки между серверами
Платформа «Битрикс24 в коробке» позволяет гибко балансировать нагрузку между серверами, участвующими в репликации.
3. Распределенный кеш данных (memcached)
«1С-Битрикс: Веб-кластер» позволяет использовать пул серверов memcached для работы с кешем данных.
4. Непрерывность сессий между веб-серверами (хранение сессий в базе данных).
Возможность хранения данных пользовательских сессий в базе данных обеспечивает «прозрачность» сессии для всех веб-серверов кластера:
5. Кластеризация веб-сервера
При разделении проекта на несколько веб-серверов необходимо решить две задачи:
Веб кластер в битрикс 24 что это
Создание проекта веб-студией надо рассматривать с двух сторон: с позиции менеджера и с технической. Игнорирование любой из них с высокой долей вероятности ведёт к провалу заказа. На практике, особенно в небольшой студии, развести эти моменты бывает достаточно сложно, так как, например, ведущий программист выступает, как правило, ещё и менеджером проекта. В нашем курсе обе этих стороны будут постоянно пересекаться, но мы постараемся выделять и отделять организационные моменты от технических.
Проблемы перед веб-студиями возникают как только они получают заказ на проект чуть более сложный, чем обычно. Немного более сложный, немного более большой, немного более высоконагруженный. (В рамках Bitrix Framework это означает, что как только запросы клиента выходят за пределы административной части, инфоблоков с контентом, то начинаются сложности.) В этом курсе мы постараемся дать простые методики как выжить в данном случае.
Курс рассматривает вопросы создания высоконагруженных и сложных проектов без привязки к нашим продуктам. Примеры на базе платформы Bitrix Framework, приведённые в курсе, даны как один из вариантов реализации. Всё, что говорится на страницах ниже, можно применить и при работе с другими системами.
Баллы опыта
уроке.
Если нет интернета
Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
Веб кластер в битрикс 24 что это
Курс предназначен для организаций, предоставляющих услуги хостинга и желающих получить компетенцию Рекомендуемый хостинг.
В курсе рассматриваются требования платформы Bitrix Framework к хостингу, вопросы установки, настройки продукта а также вопросы инструментов и методов оптимизации серверов и баз данных для работы с системой
Для хостеров не является обязательным, но рекомендуется изучение курсов Контент-менеджер и Администратор. Базовый для получения более полного представления о возможностях системы и способах работы с ней.
Рекомендуется ознакомиться с опытом настройки и тестирования серверов в блогах Александра Демидова и Дениса Шаромова, а так же с отзывами клиентов о хостингах в группе Черный и белый список хостингов социальной сети компании «1С-Битрикс».
Если ваш хостинг на Windows, то вам может быть полезна группа 1С-Битрикс на платформе Windows Server 2008 в социальной сети сайта «1С-Битрикс». В ней пользователи делятся опытом работы системы на IIS 7.
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче линейки тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
У нас часто спрашивают, сколько нужно заплатить
Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Баллы опыта
уроке.
Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла от 28.04.2021.
Технологии кластеризации — повышаем надежность и производительность веб-проекта
Добрый день, коллеги!
Сегодня хочу рассказать о технологиях кластеризации, которые появились в 10-й версии платформы 1С-Битрикс. Также разберем, какие важные задачи они позволят решить Вам, как руководителю веб-проекта и как эффективно использовать данные технологии, если Вы — разработчик. В конце статьи рассмотрим конкретные архитектуры работающих веб-кластеров на платформе 1С-Битрикс, в т.ч. ресурса www.1c-bitrix.ru.
Но прежде — постараемся объективно ответить на вопрос — в каких случаях все же целесообразно для реализации веб-проекта выбирать фреймворк или коробочное решение, а в каких — создавать веб-проект «с нуля».
Разработка веб-проекта «с нуля»
А при значительном увеличении посещаемости веб-ресурса, например, до миллионов хитов в сутки, может оказаться — что веб-решение вообще не создавалось для подобных нагрузок и должно быть «срочно» переписано заново.
Разработка веб-проекта на базе фреймворка
Расширение возможностей — благословение или проклятье?
Одной из краеугольной характеристик качественного фреймворка — это предоставление возможности, путем создания несложных надстроек, реализовать разные сценарии его использования. Например, а смогу я встроить нестандартный алгоритм расчета скидок в интернет-магазине без затратного переписывания ядра фреймворка высококвалифицированными программистами с опытом разработки н фреймворке от 5 лет :-)? А смогу я использовать разные валюты, курсы которых зависят от региона? А можно использовать внешнюю базу учетных записей из имеющейся системы для авторизации на веб-проекте?
В BitrixFramework, благодаря обязательной фазе углубленной системной аналитики проблемной области при разработке ядра и модулей платформы, реализованы основные распространенные бизнес-процессы, которые могут потребоваться в 95% веб-проектов. Для создания надстроек Вы всегда сможете задействовать механизм несложных обработчиков событий, с помощью которого можно реализовать практически любой фантастический сценарий бизнес-процесса программистом начальной или средней квалификации.
Тем не менее, иногда все же может оказаться, что задачу на фреймворке реализовать сложнее и дольше, чем написать «с нуля», и Вы об этом узнаете уже в процессе разработки :-). В этом случае фреймворки, как правило, предоставляют возможность модульного расширения. В BitrixFramework вам нужно будет создать модуль, реализующий нестандартную логику. Писать модуль обычно дольше, чем создавать обработчик события, но при этом достигается максимальная гибкость. Написать модуль относительно просто, но возможно такой модуль уже написан — поэтому стоит предварительно «порыться» в marketplace.
Разработка веб-проекта на базе коробочного решения
Данный подход скорее всего максимально сократит время и риски разработки веб-проекта, если ваши требования «близки» к функционалу коробки. Например, для создания и запуска типичного интернет-магазина с мультивалютным каталогом, авторизацией, скидками, персональным разделом, поиском и поддержкой многочисленных платежных систем скорее всего подойдет коробочное решение «1С-Битрикс: Управление сайтом» (редакция «Малый бизнес»).
Дополнительно, коробочное решение, являясь как бы «историей успеха» и «книгой рецептов», помогает Вам, как заказчику проекта, «пощупать» практические примеры реализации бизнес-задач. А разработчикам коробка позволяет изучить «исходники» решения, чтобы продублировать его, либо сделать лучше :-). Частый кейс при использовании коробки: «Сделайте также как тут и тут, чтобы в админке управлялось аналогично как там».
«Правильная» коробка не навязывает свои решения как истину в последней инстанции, позволяя «срезать» слой работающей реализации и заменить его на свою реализацию, базирующуюся на фреймворке. В 1С-Битрикс вы можете легко деинсталлировать из системы готовое решение, поставить новое для экспериментов, в том числе из Marketplace и выбрать свой, наиболее оптимальный путь.
Для каких типов веб-проектов окажутся полезными технологии кластеризации платформы 1С-Битрикс?
1) Вертикальный шардинг (вынесение модулей системы на отдельные серверы MySQL). Теперь можно вынести интенсивно используемые модули «Поиск» и «Веб-аналитика» на собственное «железо».
2) Репликация MySQL и балансирование нагрузки между серверами. Теперь можно распределить нагрузку на СУБД веб-проекта на группу серверов, добавляя их при необходимости. Технические подробности можно почитать тут.
3) Распределенный кеш данных (memcached). Надежное и масштабируемое кэширование критически важно для высоконагруженных проектов. Технические подробности тут.
4) Кластеризация сессий между веб-серверами. Эта необходимо при работе группы веб-серверов за балансировщиком. Почему мы храним сессии не в memcached — об этом напишем отдельно :-).
5) Кластеризация файлов веб-серверов. Это необходимо для автоматической синхронизации контента между машинами. Технические подробности тут.
Особое внимание хочется обратить на то, что технологии кластеризации используются на уровне ядра платформы 1С-Битрикс и дорабатывать код веб-проекта — не нужно! (каждый раз когда пишу про это, не верю, но… это так и есть на самом деле) Разумеется, при необходимости можно в коде задавать, с каких именно серверов репликации осуществлять чтение/запись — но это необходимо подавляющему меньшинству веб-проектов.
Также, если Вы разрабатываете веб-проект, которому возможно понадобятся технологии кластеризации в будущем — можно в принципе их «подключить» потом, когда в них возникнет необходимость, без доработки кода веб-проекта. Это серьезно удешевляет разработку веб-проекта, т.к. если сразу создавать систему под высокую нагрузку, работающую на 5 базах данных, с кластерной файловой системой и горизонтальным шардингом — то в случае ее невостребованности — вы напрасно потратите время и деньги.
Кластерные архитектуры работающих веб-проектов на базе 1С-Битрикс
Самый интересный раздел статьи — рассмотрим, наконец, конкретные примеры действующих веб-кластеров на платформе 1С-Битрикс.
www.kupibonus.ru — бесперебойная доставка услуг
Внедрение веб-кластера провел наш сертифицированный партнер «Linemedia», г. Москва. Редакция платформы – «Бизнес веб-кластер».
Веб-проект ежедневно посещают несколько сотен тысяч пользователей, также дополнительную нагрузку генерируют партнёры проекта, имеющие доступ к проекту через API Kupibonus. Активная двухсторонняя интеграция с бэк-офисом «1С: Предприятие», интенсивные каналы взаимодействия с внешними сервисами.
За счет внедрения веб-кластера обеспечена высокая производительность и отказоустойчивость не только публично части, но и внутренних бизнес-процессов и API. Внедрение прошло в довольно короткие сроки – две недели.
www.komos.ru — электронная биржа
Внедрение веб-кластера провел золотой сертифицированный партнер «Профессиональные Интернет-решения», г. Ижевск. Редакция платформы – «Веб-кластер».
Веб-проект является высоконагруженной площадкой для проведения электронных торгов группой компаний — «КОМОС ГРУПП». В состав группы входит 13 крупнейших предприятий, производящих продукты питания в Удмуртии и Пермском крае. Полученная в результате торгов стоимость предложений составила почти 5 млрд. рублей менее чем за год. За счет внедрения веб-кластера обеспечена высокая производительность и отказоустойчивость, легкая масштабируемость электронной торговой площадки.
www.1c-bitrix.ru — это мы
Веб-кластер размещен на группе EBS/EC2 машин в облаке Amazon. Достаточно большой объем статического контента. Высокая нагрузка как на публичную часть, так и на интеграционное API (marketplace), а также систему обновлений. За счет перехода на веб-кластер обеспечена высокая производительность и устойчивость, быстрое масштабирование в случае необходимости.
Мы хотели использовать встроенный в облако балансировщик, но пока, по причине его «негибкости», используем для этого отдельную машину. Бэкапы делаем в S3 встроенной в облако удобной технологией снепшотов, для резервного копирования raid10 на базе EBS разместили на нем XFS и, для целостного снепшота, «фризим» ее используя утилиту ec2-consistent-snapshot. Статику постепенно выносим в облако и CDN. Большинство рутинных операций: поднять машину в случае нагрузки, переключение нагрузки, бэкапы и т.п. — заскриптовано на API amazon.
В настоящее время несколько веб-кластеров готовятся к запуску у отечественного облачного провайдера Оверсан-Скалакси. Мы о них обязательно напишем и нарисуем.
Наши ближайшие технологические планы в области облаков и кластеризации
На прошедшей недавно партнерской конференции мы анонсировали, что сделаем в ближайшем релизе платформы 10.5, который выйдет осенью, поддержку облачных хранилищ: Amazon/S3, Google Storage, технологий хранения данных в Microsoft Azure.
Также, в версии 10.5, мы хотим предложить нашим клиентам решение, делающее их веб-кластер максимально надежным и… абстрагированным от облачного провайдера — чтобы в случае серьезных проблем в облаке/ДЦ, веб-кластер продолжил бесперебойно обслуживать клиентов в другом регионе облака/на другом континенте:
Cluster grid (это пока одно их рабочих названий технологии)
Мы с интересом смотрим на новейшие облачные технологии кластеризации и видим в них немалый потенциал для обеспечения надежности и производительности веб-проектов. Лучшие технологии мы будем продолжать реализовывать в платформе 1С-Битрикс — делая их полезными и доступными для наших многочисленных клиентов.
Желаю всем технологической удачи, оптимизма и до новых встреч в нашем корпоративном блоге!