SlideShare a Scribd company logo
Организация отказоустойчивого
масштабируемого web-кластера на
базе Amazon Web Services


                      Александр Демидов
                            «1С-Битрикс»
Сколько стоит 1 час?

• Крупный интернет-
  магазин с годовым
  оборотом 1.5 млрд. руб.

• 210 рабочих дней в году
  по 10 рабочих часов.

• Час простоя крупного
  интернет-проекта может
  обойтись владельцам в
  0,3 - 1 миллион рублей
  упущенной выручки.
Основные задачи, которые
решает веб-кластер:

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


                       Веб-приложение




                            Кэш данных




                        База данных
Варианты масштабирования:
      Разделение на два сервера: веб-
      сервер + база данных.
      Увеличение мощности
      оборудования (чем мощнее – тем
      дороже; рост стоимости не
      пропорционален).
      Выделение кеша на один внешний
      сервер через memcached.
      Переход на Oracle (минимальная
      лицензия +5000$ за процессор).
      Создание Oracle RAC (Real
      Application Cluster). Проект – около
      150 000$ (оборудование +
      лицензия + «общая полка»). Очень
      мало специалистов.
Для большинства клиентов
производительности достаточно, но не
решены проблемы отказоустойчивости,
резервирования, сетевой доступности.
Вертикальное и горизонтальное
масштабирование
Аккаунты
                                                     a-m


                      База данных                             База данных
                        MySQL 1                                 MySQL 1


База данных                          База данных
   MySQL                                MySQL




                      База данных                             База данных
                        MySQL 2                                 MySQL 2




                                                   Аккаунты
                                                      n-z


              Вертикальный шардинг                    Горизонтальный шардинг
Масштабирование при росте нагрузки
MySQL



                                    Веб-сервер
                                 Веб-приложение



                                SQL-балансировщик




 База данных MySQL   База данных MySQL            База данных MySQL   База данных MySQL
       MASTER              SLAVE 1                      SLAVE …             SLAVE N
Распределенный кеш данных
(memcached)

 Высокая эффективность - за
 счет централизованного
 использования кэша веб-        memcached         memcached      memcached
 приложением                       1                 2              3

 Надежность - за счет
 устойчивости подсистемы
 кешировния к выходу из строя
                                            Веб-кластер приложений
 отдельных компонентов
                                Веб-сервер       Веб-сервер    Веб-сервер
 Неограниченная
 масштабируемость - за счет
 добавления новых
 memcached-серверов.
Задача: масштабирование при росте
нагрузки

                          Высокая
                       посещаемость



                      Балансировщик
                         нагрузки


      Веб-сервер                            Веб-сервер

        Нода 1                                Нода 2
                    Авто-синхронизация




                     База данных MySQL   1) Нагрузка равномерно
                                         распределяется между нодами
                                         веб-кластера

                                         2) Сервера приложений не
                                         перегружены и работают в
                                         устойчивом штатном режиме
Задача: масштабирование при росте
нагрузки

                     Очень высокая посещаемость




                             Балансировщик
                                нагрузки



     Нода 1         Нода 2                        Нода N

                                             …
                        База данных MySQL
Распределение нагрузки между веб-
серверами

 Варианты балансирования нагрузки между различными нодами
 веб-кластера:
 • DNS – несколько записей “IN A” для одного имени, распределение
   round robin. Самый дешевый и простой вариант, но имеет ряд
   минусов:
     • нет четкого критерия выбора IP из списка клиентом;
     • нет механизмов определения доступности узлов;
     • длительное время кэширования ответов DNS.
 • Программные средства (например, nginx).
 • Аппаратные решения (например, Cisco CSS - Content Services
   Switch).
 • Специализированные сервисы (например, Amazon Elastic Load
   Balancing).
Задача синхронизации файлов


         Веб-сервер 1              Веб-сервер 2




                          ?
                        /var/www
Синхронизация дисковых систем


 Два типа:

 1. Синхронный:
 • Общая «дисковая полка» (дорого, не резервирует данные)
 • Сетевые средства – NFS (очень медленно)
 • OCFS2
 • DRBD

 2. Асинхронный (синхронизация локальных дисков)
 • rsync
 • csync2
Тип 1: общее хранилище данных


                     NAS (Network Attached Storage)


                              /var/www                               NFS, SMB/CIFS, ….
                                                                        Просто, но
                                                                        медленно.




      Веб-сервер 1                                           Веб-сервер 2




                     SAN (Storage Area Network), «дисковая            OCFS2, GFS2, ….
                                    полка»
                                                                        Быстро, но
                                 /var/www                            сложно и дорого.
Тип 2: синхронизация локальных дисков




           Нода 1                         Нода 2


           Csync2                         Csync2

         /var/www                       /var/www




                          Нода 3


                          Csync2

                        /var/www
Почему мы выбрали csync2?
    Быстрый доступ к файлам приложения за счет использования
    локальных хранилищ.
    Высокая скорость работы.
    Низкое потребление ресурсов (CPU, дисковые операции). Два этих
    фактора позволяют запускать процесс синхронизации максимально
    часто, поэтому данные на серверах становятся идентичными
    практически в "реальном времени".
    Простота настройки для обмена данными между любым
    количеством серверов.
    Возможность синхронизации удаления файлов.
    Защищенный обмен данными между хостами (SSL).
Непрерывность сессий между веб-
серверами
 Пользовательская сессия
 должна быть
 "прозрачной" для всех
 серверов веб-кластера.




  После авторизации на одном из серверов пользователь должен считаться
  авторизованных и для всех других серверов.

  И наоборот - окончание сессии на любом сервере должно означать ее окончание
  на всех серверах сразу.
«1С-Битрикс: Веб-кластер» - это комбинация
технологий:

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




      Веб-сервер 1                              Веб-сервер 2



               MySQL                         MySQL
memcached 1                                              memcached 1
               master                        slave
«Узкие» места
Задача синхронизации файлов


         Веб-сервер 1              Веб-сервер 2




                          ?
                        /var/www
Высокие требования к сети, связность
серверов друг с другом



                                     Веб-сервер
                              «1С-Битрикс: Веб-кластер»



                                 SQL-балансировщик
                                     1С-Битрикс




  База данных MySQL   База данных MySQL           База данных MySQL   База данных MySQL
        MASTER              SLAVE 1                     SLAVE …             SLAVE N
Ручные операции для восстановления
master’а MySQL


                       Балансировщик (клиентские запросы
                                   по HTTP)




            Веб-сервер 1                              Веб-сервер 2



                     MySQL                         MySQL
      memcached 1                                              memcached 1
                     master                        slave
1c bitrix-cluster-et
Аварии на уровне целого датацентра


                       Балансировщик (клиентские запросы
                                   по HTTP)




            Веб-сервер 1                              Веб-сервер 2



                     MySQL                         MySQL
      memcached 1                                              memcached 1
                     master                        slave
Географический веб-кластер
                    Асинхронная master-master репликация
   «Веб-кластер»,   для обеспечения работы географически   «Веб-кластер»,
     ДЦ в России    распределенных веб-кластеров.            ДЦ в США

                    Потеря связи между ДЦ может
Веб-нода            составлять часы.                         Веб-нода
   Веб-нода                                                   Веб-нода
      Веб-нода                                                    Веб-нода

  Кэш                                                          Кэш
     Кэш                                                         Кэш
        Кэш                                                         Кэш
                            «Веб-кластер»,
  БД                       ДЦ в Германии                        БД
       БД                                                        БД
            БД                                                        БД


                              Веб-нода
                                Веб-нода
                                    Веб-нода


                                Кэш
                                  Кэш
                                     Кэш


                                 БД
                                      БД
                                           БД
Схема многорегионального
сервиса
              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
Любой новый или работающий проект на
«1С-Битрикс: Управление сайтом» может
быть представлен как веб-кластер
взаимозаменяемых серверов.


    При увеличении посещаемости
    можно быстро добавить в кластер
    новые сервера.

    В случае выхода из строя одного из
    серверов кластера система
    продолжает беспрерывно
    обслуживать Клиентов.

    Балансирование нагрузки, трафика,
    данных между несколькими
    серверами.

    Система позволяет снимать
    резервные копии со специально
    выделенных узлов кластера, не
    влияя на работу сайта.
Географический веб-кластер
повышает отказоустойчивость
проекта и обеспечивает
независимость от дата-центра.

В различных дата-центрах
объединяются несколько групп
веб-кластеров, находящихся в
разных городах или странах.

В случае отказа одного дата-
центра, в работу мгновенно
включается другой, без
необходимости
восстановления «бэкапа».
Спасибо за внимание!
Вопросы?

Александр Демидов
demidov@1c-bitrix.ru
+7 (915) 201-1500
    @demidov
http://www.1c-bitrix.ru

More Related Content

PPTX
Webcluster cases
PPTX
02 1c-bitrix-cloud-storage
PPTX
Веб-кластер
PPT
1С-Битрикс - Веб-кластер
PPT
1С-Битрикс - Производительность
PPTX
«Битрикс24»: архитектура и эксплуатация высоконагруженного облачного сервиса
PPTX
DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...
PPT
Bitrix24 (DevConf)
Webcluster cases
02 1c-bitrix-cloud-storage
Веб-кластер
1С-Битрикс - Веб-кластер
1С-Битрикс - Производительность
«Битрикс24»: архитектура и эксплуатация высоконагруженного облачного сервиса
DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...
Bitrix24 (DevConf)

What's hot (20)

PPTX
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
PDF
CodeFest 2012. Рыжиков С. — Архитектура и запуск облачного сервиса в Amazon A...
PPTX
Clouds NN 2012 Александр Демидов "Битрикс24 архитектура и опыт эксплуатации о...
PPTX
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
PDF
Александр Соловьёв, Griddynamics.com
PPT
Ленвендо.Построение системного ландшафта высоконагруженного проекта
PPTX
Интеграция сайта с облачным хранилищем (Александр Демидов)
PPTX
Tuning HighLoad J2EE web application
PDF
High load2007 scaling-web-applications-rus
PDF
24 hop sql_in_to_wa_1c _19march_2014_russian
PDF
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
PPTX
No sql.mongodb scaling
PDF
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
PPT
Cеминар: Работа с технологиями - Основы хостинга сайтов
PDF
Отказоустойчивые решения SQL
PDF
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
PPTX
NoBigData - потоковая система аналитики clientside производительности, Сергей...
PPT
“КП” в интернете (Александр Ромашин, Вячеслав Малютин)
PPT
MongoDB basics in Russian
PPTX
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
CodeFest 2012. Рыжиков С. — Архитектура и запуск облачного сервиса в Amazon A...
Clouds NN 2012 Александр Демидов "Битрикс24 архитектура и опыт эксплуатации о...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Александр Соловьёв, Griddynamics.com
Ленвендо.Построение системного ландшафта высоконагруженного проекта
Интеграция сайта с облачным хранилищем (Александр Демидов)
Tuning HighLoad J2EE web application
High load2007 scaling-web-applications-rus
24 hop sql_in_to_wa_1c _19march_2014_russian
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
No sql.mongodb scaling
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
Cеминар: Работа с технологиями - Основы хостинга сайтов
Отказоустойчивые решения SQL
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
NoBigData - потоковая система аналитики clientside производительности, Сергей...
“КП” в интернете (Александр Ромашин, Вячеслав Малютин)
MongoDB basics in Russian
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...
 
Ad

Similar to 1c bitrix-cluster-et (20)

PPTX
веб кластер
PPTX
Презентация технологии веб-кластеров
PPTX
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
PPTX
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузки
PPTX
Опыт использования NoSQL-хранилищ (Андрей Новиков)
PPTX
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
PPTX
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
PPTX
Hosting for forbes.ru_
PPTX
Высокая доступность web приложений. SHALB.com
PPTX
os_components
PPTX
Архитектура OpenStack
PPTX
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
PPTX
Миграция существующих приложений в Windows Azure
PDF
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
PDF
Развертывание и настройка коммутатора Nexus1000V для сред OpenStack KVM и Hyp...
PDF
Windows Azure Internals
PPTX
MS Swit 2012 - SQL Server 2012
PDF
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
PPTX
Из чего строят облака? Продукты Citrix
PPTX
Экономика отказоустойчивости
веб кластер
Презентация технологии веб-кластеров
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузки
Опыт использования NoSQL-хранилищ (Андрей Новиков)
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Hosting for forbes.ru_
Высокая доступность web приложений. SHALB.com
os_components
Архитектура OpenStack
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Миграция существующих приложений в Windows Azure
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
Развертывание и настройка коммутатора Nexus1000V для сред OpenStack KVM и Hyp...
Windows Azure Internals
MS Swit 2012 - SQL Server 2012
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
Из чего строят облака? Продукты Citrix
Экономика отказоустойчивости
Ad

1c bitrix-cluster-et

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