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

Презентация:



Advertisements
Похожие презентации
1С-Битрикс: Управление сайтом 10.0 Веб-кластер.
Advertisements

1С-Битрикс: Управление сайтом 10.0 Веб-кластер.
Архитектура проекта «Битрикс24»: как сделать так, чтобы все летало и не падало Александр Демидов руководитель направления арендных решений «1С-Битрикс»
Сергей Рыжиков генеральный директор компании «1С-Битрикс» Архитектура и запуск SaaS решения в Amazon AWS. Как обеспечить реальные 24?
Веб-кластер 1С-Битрикс – примеры работающих проектов Александр Сербул Руководитель направления контроля качества интеграции и внедрений ООО «1С-Битрикс»
Экономика отказоустойчивости и резервирование инфраструктуры Александр Демидов «1С-Битрикс»
Bitrix24: архитектура высоконагруженных и отказоустойчивых проектов Александр Демидов, Александр Сербул.
Построение системного ландшафта для высоко нагруженного проекта ООО «Ленвендо-Софт» Гаврилов Виталий Технический директор тел.: +7 (812)
Александр Демидов «1 С-Битрикс» Производительность Виртуальная машина 3.0 Инструменты отладки Летняя партнерская конференция «1 С-Битрикс» 2011.
Поддержка пользовательских файловых хранилищ. Облачные хранилища. Максим Смирнов ведущий разработчик.
Практическое использование облачных хранилищ Смирнов Максим Ведущий программист «1С-Битрикс»
Веб-кластер, планы по развитию, распределенный веб-кластер Максим Смирнов ведущий разработчик.
Как жить в облаке без админов? Александр Демидов руководитель направления арендных решений «1С-Битрикс»
Большой Drupal Клера Виленская. Производительность на одном сервере 99 пользователей: 80% аутентифицированных 30% добавляют контент зарегистрировано 1000.
Полная стратегия есть только у Microsoft, Apple и Google. Основная конкуренция здесь. PCPhoneTabletТВCloud AppleMaciPhoneiPadAppleTViCloud MicrosoftWindows7WindowsPhone7Windows8.
Системы управления сайтами: тенденции рынка и требования пользователей Алексей Сидоренко Директор по развитию 1С-Битрикс.
Распределенные и параллельные вычисления на MS SQL (always on). Адаптация для 1С 8 Сердюк Владимир Баркетов Павел.
Как улучшить производительность проекта за три шага Шаромов Денис руководитель отдела техподдержки.
BigData изнутри: технологии и алгоритмы Александр Сербул руководитель направления, разработчик Партнерская конференция «1С-Битрикс»
Администрирование информационных систем Лекция 4. Система управления базами данных.
Транксрипт:

Платформа разработки высоконагруженного веб-сервиса: инструменты отладки и возможности масштабирования Александр Демидов руководитель направления арендных решений «1С-Битрикс»

Веб-приложение Кэширование диск / memcached / … База данных Традиционное устройство веб-продуктов

Масштабирование

Основные задачи, которые решает веб-кластер: Обеспечение высокой доступности сервиса (так называемые HA - High Availability или Failover кластеры) Масштабирование веб-проекта в условиях возрастающей нагрузки (HP - High Performance кластеры) Балансирование нагрузки, трафика, данных между несколькими серверами Создание целостной резервной копии данных для MySQL

«1С-Битрикс: Веб-кластер» - это комбинация технологий: Вертикальный шардинг (вынесение модулей на отдельные серверы MySQL) Репликация MySQL и балансирование нагрузки между серверами Распределенный кеш данных (memcached) Непрерывность сессий между веб-серверами (хранение сессий в базе данных) Кластеризация веб-сервера: – Синхронизация файлов – Балансирование нагрузки между серверами

Репликация и балансировка нагрузки MySQL Веб-сервер База данных MySQL MASTER Веб-кластер База данных MySQL SLAVE 1 База данных MySQL SLAVE N База данных MySQL SLAVE … SQL-балансировщик

Гибкая балансировка нагрузки SQL Простота администрирования Дешевое и быстрое неограниченное масштабирование Онлайн бэкап Не требуется доработка логики веб-приложения Репликация и балансировка нагрузки MySQL

Высокая эффективность - за счет централизованного использования кэша веб- приложением Надежность - за счет устойчивости подсистемы кешировния к выходу из строя отдельных компонентов Неограниченная масштабируемость - за счет добавления новых memcached-серверов. memcached 1 memcached 2 memcached 3 Веб-кластер «1С-Битрикс» 40%30% Веб-сервер Распределенный кеш данных (memcached)

База данных MySQL Нода 1 «1С-Битрикс: Веб-кластер» Очень высокая посещаемость Балансировщик нагрузки Нода 2 «1С-Битрикс: Веб-кластер» Нода N «1С-Битрикс: Веб-кластер» … Задача: масштабирование при росте нагрузки

Непрерывность сессий между веб- серверами Пользовательская сессия должна быть "прозрачной" для всех серверов веб-кластера. После авторизации на одном из серверов пользователь должен считаться авторизованных и для всех других серверов. И наоборот - окончание сессии на любом сервере должно означать ее окончание на всех серверах сразу.

«Узкие» места

Веб-сервер 1 /var/www Веб-сервер 2 ? Задача синхронизации файлов

Внешнее хранилище: как это выглядит БД Веб-сервер Хранилище Посетитель html *.png; *.jpeg...

Сайт + внешнее хранилище

Как сделать правильно? API хранилища для «прозрачной» работы с файлами API для разработчиков (не используем стандартные функции для работы с файлами) Избегаем «диких» файлов Простое подключение хранилищ Правила для выбора при работе с несколькими хранилищами «Прозрачность» для всех модулей системы

Как сделать правильно? Таблица с данными обо всех подключенных хранилищах Таблица со списком файлов, и указанием, где они хранятся (можно сразу хранить дополнительную информацию) Не используем file_size, getimagesize и т.п. – сохраняем все данные при аплоаде Отлов «диких» файлов через обработку 404

Облачные хранилища

Использование нескольких хранилищ Одновременно можно хранить разные файлы в разных «облачных хранилищах». Например, все файлы «весом» больше 100 Мб перемещать в «облако» Google Storage, а все видео - в Amazon S3.

«Узкие» места – база данных

Веб-сервер База данных MySQL MASTER «1С-Битрикс: Веб-кластер» База данных MySQL SLAVE 1 База данных MySQL SLAVE N База данных MySQL SLAVE … SQL-балансировщик 1С-Битрикс Высокие требования к сети, связность серверов друг с другом

Балансировщик (клиентские запросы по HTTP) Веб-сервер 1 memcached 1 Веб-сервер 2 memcached 1 MySQL master MySQL slave Ручные операции для восстановления masterа MySQL

Балансировщик (клиентские запросы по HTTP) Веб-сервер 1 memcached 1 Веб-сервер 2 memcached 1 MySQL master MySQL slave Аварии на уровне целого датацентра

«Веб-кластер», ДЦ в России БД Веб-нода «Веб-кластер», ДЦ в Германии «Веб-кластер», ДЦ в США Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш Асинхронная master-master репликация для обеспечения работы географически распределенных веб-кластеров. Потеря связи между ДЦ может составлять часы. Географический веб-кластер

Гео веб-кластер Группы серверов в административном интерфейсе У каждой группы свой MySQL master (указан в dbconn.php) Мастеры MySQL объединены в кольцо (в минимальном варианте – 2 сервера)

Особенности настройки MySQL: auto_increment_increment auto_increment_offset Базы в разных датацентрах синхронны, при этом независимы друг от друга: потеря связности между датацентрами может составлять часы, данные синхронизируются после восстановления. Пользователь и все сотрудники этой компании работают в одном датацентре за счет управления балансировщиком. Сессии храним в базе, но не реплицируем между серверами из-за большого траффика и возможных «локов»: SET sql_log_bin = 0 … или … replicate-wild-ignore-table = %.b_sec_session% Используем master-master репликацию в MySQL

Все ноды заменяемы и не зависимы друг от друга, в случае аварии стартуем новые. Два датацентра синхронизированы друг с другом и равноценно обслуживают клиентов. В случае аварии на уровне датацентра или плановых работ с базой, траффик прозрачно для клиентов переключается на рабочий датацентр. Надежность Один из приоритетов – постоянная доступность сервиса, его отказоустойчивость.

Мониторинг: снаружи и изнутри

Что является критерием производительности? «Монитор производительности» платформы «1С-Битрикс»

Опции платформы «Монитор производительности» платформы «1С-Битрикс»

Качество разработки «Монитор производительности» платформы «1С-Битрикс»

Альтернатива профессиональным инструментам «Монитор производительности» платформы «1С-Битрикс»

Режим отладки

Спасибо за внимание! Вопросы? Александр Демидов +7 (915)