2. Сколько стоит 1 час?
Пример:
Крупный интернет-магазин с годовым оборотом 1.5 млрд. руб.
210 рабочих дней в году по 10 рабочих часов.
Час простоя крупного интернет-проекта может обойтись владельцам в 0,3 -
1 миллион рублей упущенной выручки.
3. Сколько стоит 1 час?
А также…
Будет разрываться телефон звонками от Заказчика, Клиентов.
Сисадмин будет пить валидол и вспоминать где расположена клавиша
«Enter»
4. Сколько стоит 1 час???
А также…
Будет разрываться телефон звонками от Заказчика, Клиентов.
Сисадмин будет пить валидол и вспоминать где расположена клавиша
«Enter»
5. 1С-Битрикс: Веб-кластер
Основные задачи, которые
необходимо решить:
1. Обеспечение высокой доступности
сервиса (так называемые HA - High
Availability или Failover кластеры)
2. Масштабирование веб-проекта в
условиях возрастающей нагрузки
(HP - High Performance кластеры)
3. Удобное резервное копирование
6. 1С-Битрикс: Веб-кластер
«Веб-кластер» обеспечивает непрерывность бизнеса,
отказоустойчивость, масштабирование, распределение нагрузки.
Любой новый или работающий проект на 1С-Битрикс: Управление сайтом 10.0 может быть
представлен как веб-кластер взаимозаменяемых серверов.
1. При увеличении посещаемости можно быстро добавить в кластер новые сервера.
2. В случае выхода из строя одного из серверов кластера система продолжает
беспрерывно обслуживать Клиентов.
3. Балансирование нагрузки, трафика, данных между несколькими серверами.
4. Система позволяет снимать резервные копии со специально выделенных узлов
кластера, не влияя на работу сайта.
7. Конфигурации веб-проектов
на 1С-Битрикс (начало пути)
Сервер Сервер Сервер
Proxy server (Nginx) Proxy server (Nginx)
Web server
(Apache+1С-Битрикс)
Appl. server 1С-Битрикс - PHP
(Apache+1С-Битрикс) (FastCGI)
RDBMS(MySQL)
RDBMS(MySQL)
RDBMS(MySQL)
8. Конфигурации веб-проектов
на 1С-Битрикс («первое» масштабирование)
Сервер
Proxy server (Nginx)
Стат. файлы
Сервер Сервер
Appl. server
(Apache+1С-Битрикс) RDBMS(MySQL)
11. Дальнейшая кластеризация веб-проекта
Аккаунты
a-m
База данных База данных
MySQL 1 MySQL 1
База данных База данных
MySQL MySQL
База данных База данных
MySQL 2 MySQL 2
Аккаунты
n-z
Вертикальный шардинг Горизонтальный шардинг
12. 1С-Битрикс: Веб-кластер
«1С-Битрикс: Веб-кластер» - это комбинация технологий:
• Вертикальный шардинг (вынесение модулей на отдельные серверы MySQL)
• Репликация MySQL (Oracle и MS SQL в дальнейшем) и балансирование нагрузки
между серверами
• Распределенный кеш данных (memcached)
• Непрерывность сессий между веб-серверами (хранение сессий в базе данных)
• Кластеризация веб-сервера:
– Синхронизация файлов
– Балансирование нагрузки между серверами
13. Вертикальный шардинг
Разделение одной базы данных веб-
приложения на две и более базы данных
за счет выделения отдельных
модулей, без изменения логики работы
веб-приложения:
• Веб-аналитика
• Поиск
1. Эффективное распределение
нагрузки.
2. Масштабирование.
3. Разделение больших объемов
данных.
14. Репликация и балансировка нагрузки MySQL
• Гибкая балансировка
нагрузки SQL
• Простота
администрирования
• Дешевое и быстрое
неограниченное
масштабирование
• Он-лайн бэкап
• Не требуется доработка
логики веб-приложения
15. Масштабирование при росте нагрузки MySQL
Веб-сервер
«1С-Битрикс: Веб-кластер»
SQL-балансировщик MySQL replication
1С-Битрикс
База данных База данных База данных База данных
MySQL MySQL MySQL MySQL
MASTER SLAVE 1 SLAVE … SLAVE N
16. Распределенный кеш данных (memcached)
• Высокая эффективность -
за счет централизованного
использования кэша веб-
приложением
memcached memcached memcached
• Надежность - за счет 1 2 3
устойчивости подсистемы
кешировния к выходу из
30% 40% 30%
строя отдельных
компонентов Веб-кластер «1С-Битрикс»
• Неограниченная Веб-сервер Веб-сервер Веб-сервер
масштабируемость - за
счет добавления новых
memcached-серверов.
18. Непрерывность сессий между веб-серверами
Пользовательская
сессия должна быть
"прозрачной" для
всех серверов веб-
кластера.
1. После авторизации на одном из серверов пользователь должен считаться
авторизованных и для всех других серверов.
2. И наоборот - окончание сессии на любом сервере должно означать ее
окончание на всех серверах сразу.
19. Задача: масштабирование при росте нагрузки
Высокая
посещаемость
Нагрузка на
CPU <50%
Балансировщик
нагрузки
Веб-сервер Веб-сервер
Нода 1 Нода 2
«1С-Битрикс: Веб-кластер» Авто-синхронизация
«1С-Битрикс: Веб-кластер»
1) Нагрузка распределяется
База данных между нодами веб-кластера
MySQL
2) Сервера приложений не
перегружены и работают в
устойчивом штатном режиме
20. Задача: масштабирование при росте нагрузки
Очень высокая посещаемость
Балансировщик
нагрузки
Нода 1 Нода 2
…
Нода N
«1С-Битрикс: «1С-Битрикс: «1С-Битрикс:
Веб-кластер» Веб-кластер» Веб-кластер»
База данных
MySQL
22. Синхронизация файлов
Два типа:
1. Синхронный:
• Общая «дисковая полка»
• Сетевые средства – NFS
• OCFS2, GFS2
• DRBD для надежности
2. Асинхронный:
• rsync
• csync2
23. Почему мы выбрали csync2?
• Быстрый доступ к файлам приложения за счет использования
локальных хранилищ.
• Высокая скорость работы.
• Низкое потребление ресурсов (CPU, дисковые операции). Два этих
фактора позволяют запускать процесс синхронизации максимально
часто, поэтому данные на серверах становятся идентичными
практически в "реальном времени".
• Простота настройки для обмена данными между любым количеством
серверов.
• Возможность синхронизации удаления файлов.
• Защищенный обмен данными между хостами (SSL).
25. Способы балансирования нагрузки
• DNS сервер с несколькими записями типа A и разными IP адресами
и коротким TTL
• NGINX на отдельном оборудовании
• Аппаратный маршрутизатор с балансированием нагрузки
• Балансировка силами дата центра (облака)
26. Разворачиваем веб-кластер в «облаке»
Балансировщик «облака»
dили nginx и
др.
Вирт. сервер 1 Вирт. сервер 2
Proxy server (Nginx) Proxy server (Nginx)
(memcached)
(memcached)
Appl. server Appl. server
Кэш
Кэш
(Apache+1С-Битрикс) (Apache+1С-Битрикс)
RDBMS(MySQL) RDBMS(MySQL)
Master Slave
29. Устойчивость системы при выключении узлов веб-кластера
Нагрузочный тест – отключение одного из узлов кластера
При отключении узлов кластера
система не прерывает обслуживание
клиентов.
Увеличивается очередь (растет время
отдачи страниц клиентам), однако в
целом система сбалансирована по
нагрузке.
Обратное добавление узла веб-
кластера пропорционально увеличивает
производительность системы.
30. Мы работаем над…
«1С-Битрикс: Веб- «1С-Битрикс: Веб-
кластер», круговой, асинхронной, кластер»,
ДЦ в Москве master-master ДЦ в Новосибирске
репликацией для обеспечения работы
Веб-нода географически распределенных веб- Веб-нода
кластеров 1С-Битрикс
Кэш Кэш
«1С-Битрикс: Веб-кластер»,
ДЦ в Нью-Йорке
БД БД
Веб-нода
Кэш
БД
31. Мы работаем над…
«1С-Битрикс: Веб- «1С-Битрикс: Веб-
кластер», круговой, асинхронной, кластер»,
ДЦ в Москве master-master ДЦ в Новосибирске
репликацией для обеспечения работы
Веб-нода географически распределенных веб- Веб-нода
Веб-нода Веб-нода
Веб-нода кластеров 1С-Битрикс Веб-нода
Кэш Кэш
Кэш Кэш
Кэш Кэш
«1С-Битрикс: Веб-
БД кластер», БД
БД ДЦ в Нью-Йорке БД
БД БД
Веб-нода
Веб-нода
Веб-нода
Кэш
Кэш
Кэш
БД
БД
БД
32. Руководство по настройке и администрированию
«1С-Битрикс: Веб-кластер»
http://www.1c-bitrix.ru/download/manuals/ru/web-cluster_guide.pdf
33. Спасибо за внимание! Вопросы?
Александр Сербул
serbul@1c-bitrix.ru
Twitter: #AlexSerbul