Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемvideo.1c-bitrix.ru
1 Платформа разработки высоконагруженного веб-сервиса: инструменты отладки и возможности масштабирования Александр Демидов руководитель направления арендных решений «1С-Битрикс»
2 Веб-приложение Кэширование диск / memcached / … База данных Традиционное устройство веб-продуктов
3 Масштабирование
4 Основные задачи, которые решает веб-кластер: Обеспечение высокой доступности сервиса (так называемые HA - High Availability или Failover кластеры) Масштабирование веб-проекта в условиях возрастающей нагрузки (HP - High Performance кластеры) Балансирование нагрузки, трафика, данных между несколькими серверами Создание целостной резервной копии данных для MySQL
5 «1С-Битрикс: Веб-кластер» - это комбинация технологий: Вертикальный шардинг (вынесение модулей на отдельные серверы MySQL) Репликация MySQL и балансирование нагрузки между серверами Распределенный кеш данных (memcached) Непрерывность сессий между веб-серверами (хранение сессий в базе данных) Кластеризация веб-сервера: – Синхронизация файлов – Балансирование нагрузки между серверами
6 Репликация и балансировка нагрузки MySQL Веб-сервер База данных MySQL MASTER Веб-кластер База данных MySQL SLAVE 1 База данных MySQL SLAVE N База данных MySQL SLAVE … SQL-балансировщик
7 Гибкая балансировка нагрузки SQL Простота администрирования Дешевое и быстрое неограниченное масштабирование Онлайн бэкап Не требуется доработка логики веб-приложения Репликация и балансировка нагрузки MySQL
8 Высокая эффективность - за счет централизованного использования кэша веб- приложением Надежность - за счет устойчивости подсистемы кешировния к выходу из строя отдельных компонентов Неограниченная масштабируемость - за счет добавления новых memcached-серверов. memcached 1 memcached 2 memcached 3 Веб-кластер «1С-Битрикс» 40%30% Веб-сервер Распределенный кеш данных (memcached)
9 База данных MySQL Нода 1 «1С-Битрикс: Веб-кластер» Очень высокая посещаемость Балансировщик нагрузки Нода 2 «1С-Битрикс: Веб-кластер» Нода N «1С-Битрикс: Веб-кластер» … Задача: масштабирование при росте нагрузки
10 Непрерывность сессий между веб- серверами Пользовательская сессия должна быть "прозрачной" для всех серверов веб-кластера. После авторизации на одном из серверов пользователь должен считаться авторизованных и для всех других серверов. И наоборот - окончание сессии на любом сервере должно означать ее окончание на всех серверах сразу.
11 «Узкие» места
12 Веб-сервер 1 /var/www Веб-сервер 2 ? Задача синхронизации файлов
13 Внешнее хранилище: как это выглядит БД Веб-сервер Хранилище Посетитель html *.png; *.jpeg...
14 Сайт + внешнее хранилище
15 Как сделать правильно? API хранилища для «прозрачной» работы с файлами API для разработчиков (не используем стандартные функции для работы с файлами) Избегаем «диких» файлов Простое подключение хранилищ Правила для выбора при работе с несколькими хранилищами «Прозрачность» для всех модулей системы
16 Как сделать правильно? Таблица с данными обо всех подключенных хранилищах Таблица со списком файлов, и указанием, где они хранятся (можно сразу хранить дополнительную информацию) Не используем file_size, getimagesize и т.п. – сохраняем все данные при аплоаде Отлов «диких» файлов через обработку 404
17 Облачные хранилища
18 Использование нескольких хранилищ Одновременно можно хранить разные файлы в разных «облачных хранилищах». Например, все файлы «весом» больше 100 Мб перемещать в «облако» Google Storage, а все видео - в Amazon S3.
19 «Узкие» места – база данных
20 Веб-сервер База данных MySQL MASTER «1С-Битрикс: Веб-кластер» База данных MySQL SLAVE 1 База данных MySQL SLAVE N База данных MySQL SLAVE … SQL-балансировщик 1С-Битрикс Высокие требования к сети, связность серверов друг с другом
21 Балансировщик (клиентские запросы по HTTP) Веб-сервер 1 memcached 1 Веб-сервер 2 memcached 1 MySQL master MySQL slave Ручные операции для восстановления masterа MySQL
23 Балансировщик (клиентские запросы по HTTP) Веб-сервер 1 memcached 1 Веб-сервер 2 memcached 1 MySQL master MySQL slave Аварии на уровне целого датацентра
24 «Веб-кластер», ДЦ в России БД Веб-нода «Веб-кластер», ДЦ в Германии «Веб-кластер», ДЦ в США Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш Асинхронная master-master репликация для обеспечения работы географически распределенных веб-кластеров. Потеря связи между ДЦ может составлять часы. Географический веб-кластер
25 Гео веб-кластер Группы серверов в административном интерфейсе У каждой группы свой MySQL master (указан в dbconn.php) Мастеры MySQL объединены в кольцо (в минимальном варианте – 2 сервера)
26 Особенности настройки MySQL: auto_increment_increment auto_increment_offset Базы в разных датацентрах синхронны, при этом независимы друг от друга: потеря связности между датацентрами может составлять часы, данные синхронизируются после восстановления. Пользователь и все сотрудники этой компании работают в одном датацентре за счет управления балансировщиком. Сессии храним в базе, но не реплицируем между серверами из-за большого траффика и возможных «локов»: SET sql_log_bin = 0 … или … replicate-wild-ignore-table = %.b_sec_session% Используем master-master репликацию в MySQL
27 Все ноды заменяемы и не зависимы друг от друга, в случае аварии стартуем новые. Два датацентра синхронизированы друг с другом и равноценно обслуживают клиентов. В случае аварии на уровне датацентра или плановых работ с базой, траффик прозрачно для клиентов переключается на рабочий датацентр. Надежность Один из приоритетов – постоянная доступность сервиса, его отказоустойчивость.
28 Мониторинг: снаружи и изнутри
29 Что является критерием производительности? «Монитор производительности» платформы «1С-Битрикс»
30 Опции платформы «Монитор производительности» платформы «1С-Битрикс»
31 Качество разработки «Монитор производительности» платформы «1С-Битрикс»
32 Альтернатива профессиональным инструментам «Монитор производительности» платформы «1С-Битрикс»
33 Режим отладки
35 Спасибо за внимание! Вопросы? Александр Демидов +7 (915)
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.