SlideShare una empresa de Scribd logo
1 de 32
Организация отказоустойчивого
масштабируемого 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
Аварии на уровне целого датацентра


                       Балансировщик (клиентские запросы
                                   по 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

Más contenido relacionado

La actualidad más candente

Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Ontico
 
CodeFest 2012. Рыжиков С. — Архитектура и запуск облачного сервиса в Amazon A...
CodeFest 2012. Рыжиков С. — Архитектура и запуск облачного сервиса в Amazon A...CodeFest 2012. Рыжиков С. — Архитектура и запуск облачного сервиса в Amazon A...
CodeFest 2012. Рыжиков С. — Архитектура и запуск облачного сервиса в Amazon A...CodeFest
 
Clouds NN 2012 Александр Демидов "Битрикс24 архитектура и опыт эксплуатации о...
Clouds NN 2012 Александр Демидов "Битрикс24 архитектура и опыт эксплуатации о...Clouds NN 2012 Александр Демидов "Битрикс24 архитектура и опыт эксплуатации о...
Clouds NN 2012 Александр Демидов "Битрикс24 архитектура и опыт эксплуатации о...Clouds NN
 
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...CUBRID
 
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comАлександр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comOntico
 
Ленвендо.Построение системного ландшафта высоконагруженного проекта
Ленвендо.Построение системного ландшафта высоконагруженного проектаЛенвендо.Построение системного ландшафта высоконагруженного проекта
Ленвендо.Построение системного ландшафта высоконагруженного проектаLenvendo
 
Интеграция сайта с облачным хранилищем (Александр Демидов)
Интеграция сайта с облачным хранилищем (Александр Демидов)Интеграция сайта с облачным хранилищем (Александр Демидов)
Интеграция сайта с облачным хранилищем (Александр Демидов)Ontico
 
Tuning HighLoad J2EE web application
Tuning HighLoad J2EE web applicationTuning HighLoad J2EE web application
Tuning HighLoad J2EE web applicationShamim bhuiyan
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusVladd Ev
 
24 hop sql_in_to_wa_1c _19march_2014_russian
24 hop sql_in_to_wa_1c _19march_2014_russian24 hop sql_in_to_wa_1c _19march_2014_russian
24 hop sql_in_to_wa_1c _19march_2014_russianMaksim Lemeshko
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
 
Cеминар: Работа с технологиями - Основы хостинга сайтов
Cеминар: Работа с технологиями - Основы хостинга сайтовCеминар: Работа с технологиями - Основы хостинга сайтов
Cеминар: Работа с технологиями - Основы хостинга сайтовMDIF
 
Отказоустойчивые решения SQL
Отказоустойчивые решения SQLОтказоустойчивые решения SQL
Отказоустойчивые решения SQLAndrey Korshikov
 
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...MySQL:  чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...
MySQL: чек-лист для новичка в highload (Cвета Cмирнова, Aнастасия Распопина ...Anastasia Rostova
 
NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...NoBigData - потоковая система аналитики clientside производительности, Сергей...
NoBigData - потоковая система аналитики clientside производительности, Сергей...Ontico
 
“КП” в интернете (Александр Ромашин, Вячеслав Малютин)
“КП” в интернете (Александр Ромашин, Вячеслав Малютин)“КП” в интернете (Александр Ромашин, Вячеслав Малютин)
“КП” в интернете (Александр Ромашин, Вячеслав Малютин)Ontico
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in RussianOleg Kachan
 
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...MUK
 

La actualidad más candente (20)

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

Similar a 1c bitrix-cluster-et

Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров 1С-Битрикс
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...ForkConf
 
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузки
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузкиКак мы в Почте@Mail.Ru выдерживаем высокие нагрузки
Как мы в Почте@Mail.Ru выдерживаем высокие нагрузкиtfmailru
 
Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Olga Lavrentieva
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime Community
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
Высокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.comВысокая доступность web приложений. SHALB.com
Высокая доступность web приложений. SHALB.comAlexandr Yatsuk
 
Архитектура OpenStack
Архитектура OpenStackАрхитектура OpenStack
Архитектура OpenStackMirantis
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Tanya Denisyuk
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureNatalia Efimtseva
 
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложенийVMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложенийDe Novo
 
Развертывание и настройка коммутатора Nexus1000V для сред OpenStack KVM и Hyp...
Развертывание и настройка коммутатора Nexus1000V для сред OpenStack KVM и Hyp...Развертывание и настройка коммутатора Nexus1000V для сред OpenStack KVM и Hyp...
Развертывание и настройка коммутатора Nexus1000V для сред OpenStack KVM и Hyp...Cisco Russia
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON
 
Из чего строят облака? Продукты Citrix
Из чего строят облака? Продукты CitrixИз чего строят облака? Продукты Citrix
Из чего строят облака? Продукты CitrixSergey Khalyapin
 
Экономика отказоустойчивости
Экономика отказоустойчивостиЭкономика отказоустойчивости
Экономика отказоустойчивостиsportgid
 

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

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

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
  • 26.
  • 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