Организация отказоустойчивогомасштабируемого web-кластера набазе Amazon Web Services                      Александр Демидо...
Сколько стоит 1 час?• Крупный интернет-  магазин с годовым  оборотом 1.5 млрд. руб.• 210 рабочих дней в году  по 10 рабочи...
Основные задачи, которыерешает веб-кластер:   Обеспечение высокой доступности   сервиса (так называемые HA - High   Availa...
Традиционная конфигурация                       Веб-приложение                            Кэш данных                      ...
Варианты масштабирования:      Разделение на два сервера: веб-      сервер + база данных.      Увеличение мощности      об...
Вертикальное и горизонтальноемасштабирование
Аккаунты                                                     a-m                      База данных                         ...
Масштабирование при росте нагрузкиMySQL                                    Веб-сервер                                 Веб-...
Распределенный кеш данных(memcached) Высокая эффективность - за счет централизованного использования кэша веб-        memc...
Задача: масштабирование при ростенагрузки                          Высокая                       посещаемость             ...
Задача: масштабирование при ростенагрузки                     Очень высокая посещаемость                             Балан...
Распределение нагрузки между веб-серверами Варианты балансирования нагрузки между различными нодами веб-кластера: • DNS – ...
Задача синхронизации файлов         Веб-сервер 1              Веб-сервер 2                          ?                     ...
Синхронизация дисковых систем Два типа: 1. Синхронный: • Общая «дисковая полка» (дорого, не резервирует данные) • Сетевые ...
Тип 1: общее хранилище данных                     NAS (Network Attached Storage)                              /var/www    ...
Тип 2: синхронизация локальных дисков           Нода 1                         Нода 2           Csync2                    ...
Почему мы выбрали csync2?    Быстрый доступ к файлам приложения за счет использования    локальных хранилищ.    Высокая ск...
Непрерывность сессий между веб-серверами Пользовательская сессия должна быть "прозрачной" для всех серверов веб-кластера. ...
«1С-Битрикс: Веб-кластер» - это комбинациятехнологий:•   Вертикальный шардинг (вынесение модулей на    отдельные серверы M...
Тестовый веб-кластер – в«облаке» Amazon
Балансировщик (клиентские запросы                             по HTTP)      Веб-сервер 1                              Веб-...
«Узкие» места
Задача синхронизации файлов         Веб-сервер 1              Веб-сервер 2                          ?                     ...
Высокие требования к сети, связностьсерверов друг с другом                                     Веб-сервер                 ...
Ручные операции для восстановленияmaster’а MySQL                       Балансировщик (клиентские запросы                  ...
Аварии на уровне целого датацентра                       Балансировщик (клиентские запросы                                ...
Географический веб-кластер                    Асинхронная master-master репликация   «Веб-кластер»,   для обеспечения рабо...
Схема многорегиональногосервиса              HTTP/HTTPS                 HTTP/HTTPS                     HTTP/HTTPS         ...
Любой новый или работающий проект на«1С-Битрикс: Управление сайтом» можетбыть представлен как веб-кластервзаимозаменяемых ...
Географический веб-кластерповышает отказоустойчивостьпроекта и обеспечиваетнезависимость от дата-центра.В различных дата-ц...
Спасибо за внимание!Вопросы?Александр Демидовdemidov@1c-bitrix.ru+7 (915) 201-1500    @demidovhttp://www.1c-bitrix.ru
1c bitrix-cluster-et
Upcoming SlideShare
Loading in …5
×

1c bitrix-cluster-et

764 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
764
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

1c bitrix-cluster-et

  1. 1. Организация отказоустойчивогомасштабируемого web-кластера набазе Amazon Web Services Александр Демидов «1С-Битрикс»
  2. 2. Сколько стоит 1 час?• Крупный интернет- магазин с годовым оборотом 1.5 млрд. руб.• 210 рабочих дней в году по 10 рабочих часов.• Час простоя крупного интернет-проекта может обойтись владельцам в 0,3 - 1 миллион рублей упущенной выручки.
  3. 3. Основные задачи, которыерешает веб-кластер: Обеспечение высокой доступности сервиса (так называемые HA - High Availability или Failover кластеры) Масштабирование веб-проекта в условиях возрастающей нагрузки (HP - High Performance кластеры) Балансирование нагрузки, трафика, данных между несколькими серверами Создание целостной резервной копии данных для MySQL
  4. 4. Традиционная конфигурация Веб-приложение Кэш данных База данных
  5. 5. Варианты масштабирования: Разделение на два сервера: веб- сервер + база данных. Увеличение мощности оборудования (чем мощнее – тем дороже; рост стоимости не пропорционален). Выделение кеша на один внешний сервер через memcached. Переход на Oracle (минимальная лицензия +5000$ за процессор). Создание Oracle RAC (Real Application Cluster). Проект – около 150 000$ (оборудование + лицензия + «общая полка»). Очень мало специалистов.Для большинства клиентовпроизводительности достаточно, но нерешены проблемы отказоустойчивости,резервирования, сетевой доступности.
  6. 6. Вертикальное и горизонтальноемасштабирование
  7. 7. Аккаунты a-m База данных База данных MySQL 1 MySQL 1База данных База данных MySQL MySQL База данных База данных MySQL 2 MySQL 2 Аккаунты n-z Вертикальный шардинг Горизонтальный шардинг
  8. 8. Масштабирование при росте нагрузкиMySQL Веб-сервер Веб-приложение SQL-балансировщик База данных MySQL База данных MySQL База данных MySQL База данных MySQL MASTER SLAVE 1 SLAVE … SLAVE N
  9. 9. Распределенный кеш данных(memcached) Высокая эффективность - за счет централизованного использования кэша веб- memcached memcached memcached приложением 1 2 3 Надежность - за счет устойчивости подсистемы кешировния к выходу из строя Веб-кластер приложений отдельных компонентов Веб-сервер Веб-сервер Веб-сервер Неограниченная масштабируемость - за счет добавления новых memcached-серверов.
  10. 10. Задача: масштабирование при ростенагрузки Высокая посещаемость Балансировщик нагрузки Веб-сервер Веб-сервер Нода 1 Нода 2 Авто-синхронизация База данных MySQL 1) Нагрузка равномерно распределяется между нодами веб-кластера 2) Сервера приложений не перегружены и работают в устойчивом штатном режиме
  11. 11. Задача: масштабирование при ростенагрузки Очень высокая посещаемость Балансировщик нагрузки Нода 1 Нода 2 Нода N … База данных MySQL
  12. 12. Распределение нагрузки между веб-серверами Варианты балансирования нагрузки между различными нодами веб-кластера: • DNS – несколько записей “IN A” для одного имени, распределение round robin. Самый дешевый и простой вариант, но имеет ряд минусов: • нет четкого критерия выбора IP из списка клиентом; • нет механизмов определения доступности узлов; • длительное время кэширования ответов DNS. • Программные средства (например, nginx). • Аппаратные решения (например, Cisco CSS - Content Services Switch). • Специализированные сервисы (например, Amazon Elastic Load Balancing).
  13. 13. Задача синхронизации файлов Веб-сервер 1 Веб-сервер 2 ? /var/www
  14. 14. Синхронизация дисковых систем Два типа: 1. Синхронный: • Общая «дисковая полка» (дорого, не резервирует данные) • Сетевые средства – NFS (очень медленно) • OCFS2 • DRBD 2. Асинхронный (синхронизация локальных дисков) • rsync • csync2
  15. 15. Тип 1: общее хранилище данных NAS (Network Attached Storage) /var/www NFS, SMB/CIFS, …. Просто, но медленно. Веб-сервер 1 Веб-сервер 2 SAN (Storage Area Network), «дисковая OCFS2, GFS2, …. полка» Быстро, но /var/www сложно и дорого.
  16. 16. Тип 2: синхронизация локальных дисков Нода 1 Нода 2 Csync2 Csync2 /var/www /var/www Нода 3 Csync2 /var/www
  17. 17. Почему мы выбрали csync2? Быстрый доступ к файлам приложения за счет использования локальных хранилищ. Высокая скорость работы. Низкое потребление ресурсов (CPU, дисковые операции). Два этих фактора позволяют запускать процесс синхронизации максимально часто, поэтому данные на серверах становятся идентичными практически в "реальном времени". Простота настройки для обмена данными между любым количеством серверов. Возможность синхронизации удаления файлов. Защищенный обмен данными между хостами (SSL).
  18. 18. Непрерывность сессий между веб-серверами Пользовательская сессия должна быть "прозрачной" для всех серверов веб-кластера. После авторизации на одном из серверов пользователь должен считаться авторизованных и для всех других серверов. И наоборот - окончание сессии на любом сервере должно означать ее окончание на всех серверах сразу.
  19. 19. «1С-Битрикс: Веб-кластер» - это комбинациятехнологий:• Вертикальный шардинг (вынесение модулей на отдельные серверы MySQL)• Репликация MySQL и балансирование нагрузки между серверами• Распределенный кеш данных (memcached)• Непрерывность сессий между веб-серверами (хранение сессий в базе данных)• Кластеризация веб-сервера: – Синхронизация файлов – Балансирование нагрузки между серверами
  20. 20. Тестовый веб-кластер – в«облаке» Amazon
  21. 21. Балансировщик (клиентские запросы по HTTP) Веб-сервер 1 Веб-сервер 2 MySQL MySQLmemcached 1 memcached 1 master slave
  22. 22. «Узкие» места
  23. 23. Задача синхронизации файлов Веб-сервер 1 Веб-сервер 2 ? /var/www
  24. 24. Высокие требования к сети, связностьсерверов друг с другом Веб-сервер «1С-Битрикс: Веб-кластер» SQL-балансировщик 1С-Битрикс База данных MySQL База данных MySQL База данных MySQL База данных MySQL MASTER SLAVE 1 SLAVE … SLAVE N
  25. 25. Ручные операции для восстановленияmaster’а MySQL Балансировщик (клиентские запросы по HTTP) Веб-сервер 1 Веб-сервер 2 MySQL MySQL memcached 1 memcached 1 master slave
  26. 26. Аварии на уровне целого датацентра Балансировщик (клиентские запросы по HTTP) Веб-сервер 1 Веб-сервер 2 MySQL MySQL memcached 1 memcached 1 master slave
  27. 27. Географический веб-кластер Асинхронная master-master репликация «Веб-кластер», для обеспечения работы географически «Веб-кластер», ДЦ в России распределенных веб-кластеров. ДЦ в США Потеря связи между ДЦ можетВеб-нода составлять часы. Веб-нода Веб-нода Веб-нода Веб-нода Веб-нода Кэш Кэш Кэш Кэш Кэш Кэш «Веб-кластер», БД ДЦ в Германии БД БД БД БД БД Веб-нода Веб-нода Веб-нода Кэш Кэш Кэш БД БД БД
  28. 28. Схема многорегиональногосервиса HTTP/HTTPS HTTP/HTTPS HTTP/HTTPS *.com *.com *.ru *.ru балансировщик балансировщик Облачное … … cache cache cache хранилище cache cache cache Web 1 Web 2 Web N Web 1 Web 2 Web N MySQL MySQL master master master-master репликация MySQL MySQL slave slave management, monitoring
  29. 29. Любой новый или работающий проект на«1С-Битрикс: Управление сайтом» можетбыть представлен как веб-кластервзаимозаменяемых серверов. При увеличении посещаемости можно быстро добавить в кластер новые сервера. В случае выхода из строя одного из серверов кластера система продолжает беспрерывно обслуживать Клиентов. Балансирование нагрузки, трафика, данных между несколькими серверами. Система позволяет снимать резервные копии со специально выделенных узлов кластера, не влияя на работу сайта.
  30. 30. Географический веб-кластерповышает отказоустойчивостьпроекта и обеспечиваетнезависимость от дата-центра.В различных дата-центрахобъединяются несколько группвеб-кластеров, находящихся вразных городах или странах.В случае отказа одного дата-центра, в работу мгновенновключается другой, безнеобходимостивосстановления «бэкапа».
  31. 31. Спасибо за внимание!Вопросы?Александр Демидовdemidov@1c-bitrix.ru+7 (915) 201-1500 @demidovhttp://www.1c-bitrix.ru

×