SlideShare a Scribd company logo
1 of 42
Архитектура и запуск SaaS решения в
Amazon AWS. Как обеспечить реальные 24?


                             Сергей Рыжиков
                        генеральный директор
                       компании «1С-Битрикс»
Цель на 2012 год

Задача для компании в 2012 году – запустить в
коммерческую эксплуатацию «Битрикс24»

• Аренда Корпоративного портала как инструмента социального
    интранета
•   Развитие социального Project- и Task-менеджмента
•   Развитие Social CRM - готового, простого в использовании
    решения
•   Собрать и накопить опыт по эксплуатации облачных веб-
    сервисов, поделиться им с партнерами
Запускаем новый SaaS-сервис
«Битрикс24»
 Есть несколько задач на старте и
 в процессе работы
  • Новый SaaS сервис – как коммерческие, так и «бесплатные»
      пользователи
  •   Минимизация расходов на эксплуатацию и снижение финансовых
      рисков на старте проекта
  •   Масштабирование при росте нагрузки и обратное масштабирование
  •   Надежность – обеспечение SLA
  •   Работа с разными рынками: США, Европа, Россия
  •   Быстрая отдача статического контента
Из «бизнес-требований»
 появились технические

  • Отказоустойчивость – умение размещаться сразу в нескольких
      разных территориально распределенных датацентрах (в разных
      странах)
  •   MultiTenancy архитектура
  •   Полное разделение логики (кода продукта) и данных
  •   Пользовательские данные – это большой объем статических файлов
      и база данных
  •   Универсальный API платформы для многолетней разработки
  •   Динамическое масштабирование по нагрузке
Две итоговые задачи:
  • Выбор технической платформы для инфраструктуры
  • Выбор платформы разработки
Независимые
  факторы надежности
Человечество уже сделало
определенный путь для
обеспечения независимых
факторов надежности.

Для «Битрикс24» нужен
аналогичный подход –
продолжать работу без
потери данных в случае
выхода из строя одного ДЦ и
быть способными
восстанавливать базы данных
за несколько минут.
Традиционное устройство
веб-продуктов

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




                                   Кэширование
                                     на диск



                                   База данных




Обычный продукт не поддерживает гео веб-кластер, облачные
файлы, распределенное кэширование, multitenancy…
1 этап : Веб-кластер

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




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



                     MySQL                         MySQL
      memcached 1                                              memcached 2
                     master                        slave
Облачная платформа: веб-кластер

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

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

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


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


                                 Кэш
                                   Кэш
                                      Кэш


                                  БД
                                       БД
                                            БД
Облачное хранилище
файлов



    ДЦ в России                                               ДЦ в США
                             Посетители
    Веб-сервер
   Веб-сервера                                                   Веб-сервер
                                                                 Веб-сервера
  Веб-серверы                                                    Веб-серверы

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


        БД (master)   Облачное хранилище файлов (Amazon
                       S3, Azure, Google Storage, OpenStack
                                                               БД (master)
                                   Swift) + CDN


slave                                                                        slave
Платформа для разработки
облачных веб-сервисов

• В версии 10. 0 реализована поддержка веб-кластера.

• В версии 11.0 – географический веб-кластер master-master.

• В версии 11.0 – поддержка облачных хранилищ, тайм-зон,
  автомасштабирования.

• В 2011 году разработана облачная архитектура эксплуатации в
  Амазоне.

• Накоплен опыт работы в Амазоне , опыт эксплуатации и
  особенности работы в облачной инфраструктуре.

• В конце 2011 г была запущена первая опытная версия сервиса
  «Битрикс24».
Из «бизнес-требований»
появились технические

• Отказоустойчивость – умение размещаться сразу в нескольких разных
  территориально распределенных датацентрах (в разных странах)
• Большой объем базы данных – шардинг – возможность разделить
  базу данных по территории и группам клиентов
• MultiTenancy архитектура
• Полное разделение логики (кода продукта) и данных
• Пользовательские данные – это большой объем статических файлов и
  база данных
• Универсальный API платформы для многолетней разработки


• Динамическое масштабирование по нагрузке
Выбор платформы для
разворачивания инфраструктуры

 Минусы размещения на
 собственном оборудовании:
 • Необходимы вложения в инфраструктуру на старте проекта
 • Сложность масштабирования
 • Сложность администрирования (в случае размещения в
   территориально удаленных датацентрах)
 • Создание всех сопутствующих сервисов с нуля

             «Когда мы только начинали работу над стартапом (FriendFeed), нам нужно
             было решить, покупать собственные серверы или же выбрать одного из
             «облачных» хостинг-провайдеров – таких как Amazon (AWS). Мы выбрали
             первое – решили приобрести собственные серверы. Оглядываясь назад, я
             думаю, что это было большой ошибкой»

             Брет Тейлор
             технический директор Facebook
Используем все возможности масштабирования в
Amazon, исходя из экономики проекта.
Архитектура «Битрикс24»
                                          Elastic
                                      Load Balancing




 Web 1       Web 2
                     …        Web N        S3          Web 1        Web 2
                                                                            …           Web N




Датацентр 1 в            MySQL                             MySQL            Датацентр 2 в
регионе US East          master                            master           регионе US East
                                       master-master
(Virginia)                              репликация                          (Virginia)

Мониторинг и                                                                Мониторинг и
масштабирование –                                                           масштабирование –
CloudWatch +                                                                CloudWatch +
AutoScaling                                                                 AutoScaling

                                       management, m
                                         onitoring,
                                       MySQL backup
Web – автоматическое
масштабирование

Используем связку Elastic Load Balancing + CloudWatch +
Auto Scaling

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




                        Elastic Load Balancing




   Web 1            Web 2
                                                 …   Web N

                  CloudWatch + Auto Scaling
Web – автоматическое
масштабирование
Используем связку Elastic Load Balancing + CloudWatch +
Auto Scaling
 Автоматически стартуют новые машины, если средняя нагрузка CPU превышает
 60%
 Автоматически останавливаются и выводятся из эксплуатации, если средняя
 нагрузка менее 30%
 Ставили верхний порог на 80%, однако начинается общая деградация системы
 – пользователям работать некомфортно (долго загружаются страницы)
Специфика веб-нод
Есть несколько задач, которые
необходимо решить:

• На веб-нодах нет пользовательского
  контента, все ноды должны быть
  абсолютно идентичны.
• Read only. Никакие пользовательские
  данные не пишутся и не сохраняются
  на веб-нодах, так как в любой момент
  времени любая машина может быть
  выключена или стартует новая из
  «чистого» образа.
• При этом необходимо обеспечить
  изоляцию пользователей друг от
  друга.
Специфика веб-нод
• Нет Apache. Есть PHP-FPM + nginx
• У каждого клиента свой домен
• Был разработан модуль для PHP:
    • проверяет корректность
        домена, завершает хит с
        ошибкой, если имя некорректно
    •   устанавливает соединение с
        нужной базой в зависимости от
        домена
    •   обеспечивает безопасность и
        изоляцию пользователей друг от
        друга
    •   служит для шардинга данных
        разных пользователей по разным
        базам
Bitrix24 - cвой модуль для PHP

   • Обеспечивает переопределние функции соединения
     с базой данных.
   • В отдельной таблице хранит строки соединения с
     разными мастерами и
     «слейвами», обслуживающими БД.
   • Позволяет выполнять горизонтальное
     масштабирование БД (шардинг) по любому
     количеству серверов вплоть до «один клиент на
     одном сервере».
   • Обеспечивает запуск (fork) процессов для PHP и
     быструю отдачу страницы пользователю.
Статический контент
пользователей сервиса
Статические данные пользователей
храним в S3.
Загрузка осуществляется
«прозрачно» для пользователей –
они работают с привычными
интерфейсами.
Правильно формируются url’ы к
картинкам, документам и т.п.
Для каждого созданного
Корпоративного портала создается
персональный аккаунт – данные
каждого КП полностью изолированы
друг от друга.
Полная изоляция данных

 • Данные одной компании полностью изолированы от данных
   другой.
 • Для каждого клиента данные хранятся раздельно:
    o свой логин пароль к БД
    o своя БД со структурой таблиц
    o свое облачное хранилище S3 с отдельным логином/паролем
    o отдельное пространство для кеширования данных
 • Все веб-ноды могут обслуживать любых клиентов, набор
   данных определяется по домену и не может быть изменен.
Готов только первый
  «двигатель самолета»
                  Elastic                       Elastic
              Load Balancing                Load Balancing




 Web 1       Web 2
                       …            Web N       S3           Web 1        Web 2
                                                                                  …           Web N




Датацентр 1 в                  MySQL                             MySQL            Датацентр 2 в
регионе US East                master                            master           регионе US East
                                            master-master
(Virginia)                                   репликация                           (Virginia)

Мониторинг и                                                                      Мониторинг и
масштабирование –                                                                 масштабирование –
CloudWatch +                                                                      CloudWatch +
AutoScaling                                                                       AutoScaling

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




 Web 1       Web 2
                     …        Web N        S3          Web 1        Web 2
                                                                            …           Web N




Датацентр 1 в            MySQL                             MySQL            Датацентр 2 в
регионе US East          master                            master           регионе US East
                                       master-master
(Virginia)                              репликация                          (Virginia)

Мониторинг и                                                                Мониторинг и
масштабирование –                                                           масштабирование –
CloudWatch +                                                                CloudWatch +
AutoScaling                                                                 AutoScaling

                                       management, m
                                         onitoring,
                                       MySQL backup
Сценарий 1: авария на одной
или нескольких веб-нодах

  Load Balancing определяет вышедшие из строя машины.
  Исходя из заданных параметров группы балансировки,
  автоматически восстанавливается нужное количество
  машин.
Сценарий 1: авария на одной
 или нескольких веб-нодах
                                          Elastic
                                      Load Balancing




 Web 1       Web 2
                     …        Web N        S3          Web 1        Web 2
                                                                            …           Web N




Датацентр 1 в            MySQL                             MySQL            Датацентр 2 в
регионе US East          master                            master           регионе US East
                                       master-master
(Virginia)                              репликация                          (Virginia)

Мониторинг и                                                                Мониторинг и
масштабирование –                                                           масштабирование –
CloudWatch +                                                                CloudWatch +
AutoScaling                                                                 AutoScaling

                                       management, m
                                         onitoring,
                                       MySQL backup
Сценарий 2: потеря связности
 между датацентрами
                  Elastic                       Elastic                       Elastic
              Load Balancing                Load Balancing                Load Balancing




 Web 1       Web 2
                       …            Web N        S3          Web 1         Web 2
                                                                                     …           Web N




Датацентр 1 в                  MySQL                             MySQL               Датацентр 2 в
регионе US East                master                            master              регионе US East
                                             master-master
(Virginia)                                    репликация                             (Virginia)

Мониторинг и                                                                         Мониторинг и
масштабирование –                                                                    масштабирование –
CloudWatch +                                                                         CloudWatch +
AutoScaling                                                                          AutoScaling

                                             management, m
                                               onitoring,
                                             MySQL backup
Сценарий 2: потеря связности
между датацентрами


 Каждый датацентр продолжает обслуживать свой сегмент
 клиентов.
 Данные синхронизируются после восстановления
 связности.
Сценарий 3: плановые работы с
  базой или авария всего ДЦ
                                          Elastic
                                      Load Balancing




 Web 1       Web 2
                     …        Web N        S3          Web 1        Web 2
                                                                            …           Web N




Датацентр 1 в            MySQL                             MySQL            Датацентр 2 в
регионе US East          master                            master           регионе US East
                                       master-master
(Virginia)                              репликация                          (Virginia)

Мониторинг и                                                                Мониторинг и
масштабирование –                                                           масштабирование –
CloudWatch +                                                                CloudWatch +
AutoScaling                                                                 AutoScaling

                                        management,
                                         monitoring,
                                        MySQL backup
Сценарий 3: плановые работы с
базой или авария всего ДЦ

 Весь трафик переключается в один работающий датацентр.
 CloudWatch определяет возросшую нагрузку на машины и
 добавляет их в соответствие с правилами для AutoScaling.
 Приостанавливается мастер-мастер репликация.
 Проводятся все необходимые работы с базой, на которую
 не идет нагрузка.
 База включается в работу, восстанавливается репликация.
 Траффик распределяется на оба датацентра.
 Гасятся лишние машины, если средняя нагрузка стала ниже
 порогового значения.
MySQL? Percona Server!

Один из выводов в процессе эксплуатации: используем
один из fork’ов MySQL – Percona Server (обратно совместим
с MySQL)
•   Оптимизирован для работы в «облаке» (с относительно медленными дисками)
•   Быстрое восстановление кэша при рестарте базы
•   Оптимизирован для Multitenancy приложений с тысячами таблиц
•   Оптимизирован для сбора статистики по отдельным пользователям
•   Подробная статистика по медленным запросам
•   XtraDB и XtraBackup
Конфигурация машин
с базами MySQL
  Виртуальная машина (EC2)
  - Extra Large Instance – 15
  Gb RAM
Этапы масштабирования:
1) Вертикальное масштабирование
    (дисковая система RAID-10 на EBS)
2) Веб-кластер master-slave. Запуск
   необходимого числа слейвов в
   конфигурации веб-кластера
   master-slave
3) Горизонтальное
   масштабирование, разделение
   мастера на несколько серверов

Все этапы выполняются без
остановки сервиса.
Бэкап базы данных

Еще один вывод: для разных сценариев восстановления
данных необходимо использовать разные бэкапы.

  Для восстановления целого сервера БД в случае аварии используем
  образ машин со всеми дисками (AMI) – делаем целостный бэкап
  RAID’а, используя файловую систему, поддерживающую freeze и
  механизм snapshot’ов в Амазоне.
  Логические (mysqldump) и бинарные инкрементальные (Xtrabackup)
  бэкапы используются для восстановления отдельных баз или
  таблиц, поврежденных в случае некорректных операций в системе или
  ошибок пользователей.
  Второй тип бэкапов делается на выделенном slave, на который не
  распределяется общая нагрузка. Тем самым ресурсоемкие операции
  создания бэкапов не влияют на работу пользователей.
Обновления ПО на веб-нодах

Как ставить обновления на нодах, не допустив
рассинхронизации данных (веб и база)


                   Сервер        Новый
                 обновлений    образ AMI




                   Web 1

                                 Elastic
                                  Load
                   Web 2        Balancing



                   Web N
Контроллер

Используется для логического управления проектами, выполнения
любых команд, SQL-запросов и PHP-кода на любой из копии проекта.

Обеспечивает биллинг, включение тарифных планов, ограничения по
пользователям, дисковому пространству и т.д.
Итоговая архитектура Битрикс24
                 HTTP/HTTPS                         HTTP/HTTPS                     HTTP/HTTPS
                   *.com                              *.com                           *.ru
                                                       *.ru
                   Elastic                                                           Elastic
               Load Balancing                                                    Load Balancing


                         CloudWatch                                                        CloudWatch
                         +                                                                 +




                         …                              S3
                                                                                           …
                         AutoScaling                                                       AutoScaling


Web 1          Web 2                        Web N                   Web 1        Web 2                      Web N




   cache                               MySQL                            MySQL                            cache
                                       master                           master
                                                    master-master
                                                     репликация

 MySQL slave                                                                                        MySQL slave



                                                    management,
                 CloudWatch                          monitoring,                    CloudWatch
                                                    MySQL backup
Надежность
Один из приоритетов –
постоянная доступность
сервиса, его отказоустойчивость.

  Все веб-ноды идентичны и не
  зависимы друг от друга, в случае
  аварии автоматически стартуют
  новые.

  Два датацентра синхронизированы
  друг с другом и равноценно
  обслуживают клиентов. В случае
  аварии на уровне датацентра или
  плановых работ с базой, трафик
  прозрачно для клиентов
  переключается на рабочий
  датацентр.
www.bitrix24.ru
Спасибо за внимание!
Вопросы?


  @rsv_bitrix

More Related Content

What's hot

1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - ПроизводительностьAlexander Demidov
 
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...CUBRID
 
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...ForkConf
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureNatalia Efimtseva
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusVladd Ev
 
Clouds NN 2012 Константин Чумаченко Ngenix
Clouds NN 2012 Константин Чумаченко NgenixClouds NN 2012 Константин Чумаченко Ngenix
Clouds NN 2012 Константин Чумаченко NgenixClouds NN
 
Cеминар: Работа с технологиями - Основы хостинга сайтов
Cеминар: Работа с технологиями - Основы хостинга сайтовCеминар: Работа с технологиями - Основы хостинга сайтов
Cеминар: Работа с технологиями - Основы хостинга сайтовMDIF
 
Арсен Мукучян, AdRiver
Арсен Мукучян, AdRiverАрсен Мукучян, AdRiver
Арсен Мукучян, AdRiverOntico
 
Экономика отказоустойчивости
Экономика отказоустойчивостиЭкономика отказоустойчивости
Экономика отказоустойчивостиsportgid
 
Soft layer IBM Cloud platform and GPU
Soft layer IBM Cloud platform and GPUSoft layer IBM Cloud platform and GPU
Soft layer IBM Cloud platform and GPUEkaterina Shelest
 
Интеграция сайта с облачным хранилищем (Александр Демидов)
Интеграция сайта с облачным хранилищем (Александр Демидов)Интеграция сайта с облачным хранилищем (Александр Демидов)
Интеграция сайта с облачным хранилищем (Александр Демидов)Ontico
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopAlexey Bokov
 
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...MUK
 

What's hot (16)

1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD - 2013 R...
 
Веб-кластер
Веб-кластерВеб-кластер
Веб-кластер
 
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows Azure
 
Silverlight 2
Silverlight 2Silverlight 2
Silverlight 2
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
 
Clouds NN 2012 Константин Чумаченко Ngenix
Clouds NN 2012 Константин Чумаченко NgenixClouds NN 2012 Константин Чумаченко Ngenix
Clouds NN 2012 Константин Чумаченко Ngenix
 
Cеминар: Работа с технологиями - Основы хостинга сайтов
Cеминар: Работа с технологиями - Основы хостинга сайтовCеминар: Работа с технологиями - Основы хостинга сайтов
Cеминар: Работа с технологиями - Основы хостинга сайтов
 
Арсен Мукучян, AdRiver
Арсен Мукучян, AdRiverАрсен Мукучян, AdRiver
Арсен Мукучян, AdRiver
 
Экономика отказоустойчивости
Экономика отказоустойчивостиЭкономика отказоустойчивости
Экономика отказоустойчивости
 
Soft layer IBM Cloud platform and GPU
Soft layer IBM Cloud platform and GPUSoft layer IBM Cloud platform and GPU
Soft layer IBM Cloud platform and GPU
 
Интеграция сайта с облачным хранилищем (Александр Демидов)
Интеграция сайта с облачным хранилищем (Александр Демидов)Интеграция сайта с облачным хранилищем (Александр Демидов)
Интеграция сайта с облачным хранилищем (Александр Демидов)
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and Hadoop
 
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...
Конкурентные преимущества продуктов и технологий Microsoft. Сценарии применен...
 
Clausius present
Clausius presentClausius present
Clausius present
 

Viewers also liked

Прямая выгода BigData для бизнеса
Прямая выгода BigData для бизнесаПрямая выгода BigData для бизнеса
Прямая выгода BigData для бизнесаAlexey Lustin
 
Send Balls Into Orbit with Python3, AsyncIO, WebSockets and React
Send Balls Into Orbit with Python3, AsyncIO, WebSockets and ReactSend Balls Into Orbit with Python3, AsyncIO, WebSockets and React
Send Balls Into Orbit with Python3, AsyncIO, WebSockets and ReactTaras Lyapun
 
Behind the Scenes at Coolblue - Feb 2017
Behind the Scenes at Coolblue - Feb 2017Behind the Scenes at Coolblue - Feb 2017
Behind the Scenes at Coolblue - Feb 2017Pat Hermens
 
Designing Invisible Software at x.ai
Designing Invisible Software at x.aiDesigning Invisible Software at x.ai
Designing Invisible Software at x.aiAlex Poon
 
PyCon Poland 2016: Maintaining a high load Python project: typical mistakes
PyCon Poland 2016: Maintaining a high load Python project: typical mistakesPyCon Poland 2016: Maintaining a high load Python project: typical mistakes
PyCon Poland 2016: Maintaining a high load Python project: typical mistakesViach Kakovskyi
 
Автоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchАвтоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchPositive Hack Days
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийVyacheslav Nikulin
 
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision APIUsing Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision APIVMware Tanzu
 
Optimizing Data Architecture for Natural Language Processing
Optimizing Data Architecture for Natural Language ProcessingOptimizing Data Architecture for Natural Language Processing
Optimizing Data Architecture for Natural Language ProcessingAlex Poon
 
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с ElasticsearchОмские ИТ-субботники
 
Natural Language Processing and Python
Natural Language Processing and PythonNatural Language Processing and Python
Natural Language Processing and Pythonanntp
 
GATE : General Architecture for Text Engineering
GATE : General Architecture for Text EngineeringGATE : General Architecture for Text Engineering
GATE : General Architecture for Text EngineeringAhmed Magdy Ezzeldin, MSc.
 
Cloud Machine Learning with Google Cloud Platform
Cloud Machine Learning with Google Cloud PlatformCloud Machine Learning with Google Cloud Platform
Cloud Machine Learning with Google Cloud PlatformMichal Brys
 
Natural Language Search in Solr
Natural Language Search in SolrNatural Language Search in Solr
Natural Language Search in SolrTommaso Teofili
 
Elastic Stackにハマった話
Elastic Stackにハマった話Elastic Stackにハマった話
Elastic Stackにハマった話Kazuhiro Kosaka
 
Text analysis and Semantic Search with GATE
Text analysis and Semantic Search with GATEText analysis and Semantic Search with GATE
Text analysis and Semantic Search with GATEDiana Maynard
 
South Big Data Hub: Text Data Analysis Panel
South Big Data Hub: Text Data Analysis PanelSouth Big Data Hub: Text Data Analysis Panel
South Big Data Hub: Text Data Analysis PanelTrey Grainger
 

Viewers also liked (20)

Прямая выгода BigData для бизнеса
Прямая выгода BigData для бизнесаПрямая выгода BigData для бизнеса
Прямая выгода BigData для бизнеса
 
Send Balls Into Orbit with Python3, AsyncIO, WebSockets and React
Send Balls Into Orbit with Python3, AsyncIO, WebSockets and ReactSend Balls Into Orbit with Python3, AsyncIO, WebSockets and React
Send Balls Into Orbit with Python3, AsyncIO, WebSockets and React
 
Behind the Scenes at Coolblue - Feb 2017
Behind the Scenes at Coolblue - Feb 2017Behind the Scenes at Coolblue - Feb 2017
Behind the Scenes at Coolblue - Feb 2017
 
Designing Invisible Software at x.ai
Designing Invisible Software at x.aiDesigning Invisible Software at x.ai
Designing Invisible Software at x.ai
 
PyCon Poland 2016: Maintaining a high load Python project: typical mistakes
PyCon Poland 2016: Maintaining a high load Python project: typical mistakesPyCon Poland 2016: Maintaining a high load Python project: typical mistakes
PyCon Poland 2016: Maintaining a high load Python project: typical mistakes
 
Pycon UA 2016
Pycon UA 2016Pycon UA 2016
Pycon UA 2016
 
Автоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchАвтоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе Elasticsearch
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
 
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision APIUsing Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
 
Optimizing Data Architecture for Natural Language Processing
Optimizing Data Architecture for Natural Language ProcessingOptimizing Data Architecture for Natural Language Processing
Optimizing Data Architecture for Natural Language Processing
 
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
 
Natural Language Processing and Python
Natural Language Processing and PythonNatural Language Processing and Python
Natural Language Processing and Python
 
GATE : General Architecture for Text Engineering
GATE : General Architecture for Text EngineeringGATE : General Architecture for Text Engineering
GATE : General Architecture for Text Engineering
 
Cloud Machine Learning with Google Cloud Platform
Cloud Machine Learning with Google Cloud PlatformCloud Machine Learning with Google Cloud Platform
Cloud Machine Learning with Google Cloud Platform
 
Natural Language Search in Solr
Natural Language Search in SolrNatural Language Search in Solr
Natural Language Search in Solr
 
Elastic Stackにハマった話
Elastic Stackにハマった話Elastic Stackにハマった話
Elastic Stackにハマった話
 
Machine learning with Google machine learning APIs - Puppy or Muffin?
Machine learning with Google machine learning APIs - Puppy or Muffin?Machine learning with Google machine learning APIs - Puppy or Muffin?
Machine learning with Google machine learning APIs - Puppy or Muffin?
 
Webscraping with asyncio
Webscraping with asyncioWebscraping with asyncio
Webscraping with asyncio
 
Text analysis and Semantic Search with GATE
Text analysis and Semantic Search with GATEText analysis and Semantic Search with GATE
Text analysis and Semantic Search with GATE
 
South Big Data Hub: Text Data Analysis Panel
South Big Data Hub: Text Data Analysis PanelSouth Big Data Hub: Text Data Analysis Panel
South Big Data Hub: Text Data Analysis Panel
 

Similar to DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazon AWS. Как обеспечить реальные 24/7" Сергей Рыжиков (Битрикс)

Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime Community
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров 1С-Битрикс
 
технологические сценарии Windows azure
технологические сценарии Windows azureтехнологические сценарии Windows azure
технологические сценарии Windows azureExpolink
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...UNETA
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureAlexander Feschenko
 
Приватный клауд на базе OpenStack
Приватный клауд на базе OpenStackПриватный клауд на базе OpenStack
Приватный клауд на базе OpenStackIlya Alekseyev
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Ontico
 
Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзорMicrosoft
 
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Andrey Akulov
 
Построение частного облака с использованием vBlock.
Построение частного облака с использованием vBlock.Построение частного облака с использованием vBlock.
Построение частного облака с использованием vBlock.Cisco Russia
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Artur Baranok
 
Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018ITEM
 
Вокруг облака - технологический сценарии Windows Azure
Вокруг облака - технологический сценарии Windows AzureВокруг облака - технологический сценарии Windows Azure
Вокруг облака - технологический сценарии Windows AzureAlexey Bokov
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...ForkConf
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Ontico
 
Cache administration tool report - rus-1
Cache administration tool   report - rus-1Cache administration tool   report - rus-1
Cache administration tool report - rus-1ivanshmidt
 

Similar to DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazon AWS. Как обеспечить реальные 24/7" Сергей Рыжиков (Битрикс) (20)

веб кластер
веб кластервеб кластер
веб кластер
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров
 
технологические сценарии Windows azure
технологические сценарии Windows azureтехнологические сценарии Windows azure
технологические сценарии Windows azure
 
Что нового в 11.0?
Что нового в 11.0?Что нового в 11.0?
Что нового в 11.0?
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows Azure
 
Приватный клауд на базе OpenStack
Приватный клауд на базе OpenStackПриватный клауд на базе OpenStack
Приватный клауд на базе OpenStack
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
 
Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзор
 
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
Построение частного облака с использованием vBlock.
Построение частного облака с использованием vBlock.Построение частного облака с использованием vBlock.
Построение частного облака с использованием vBlock.
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018
 
Вокруг облака - технологический сценарии Windows Azure
Вокруг облака - технологический сценарии Windows AzureВокруг облака - технологический сценарии Windows Azure
Вокруг облака - технологический сценарии Windows Azure
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Cache administration tool report - rus-1
Cache administration tool   report - rus-1Cache administration tool   report - rus-1
Cache administration tool report - rus-1
 

More from it-people

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Coit-people
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-people
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-people
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндексit-people
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...it-people
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalrit-people
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...it-people
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАНit-people
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банкit-people
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНСit-people
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-people
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-people
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-people
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-people
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндексit-people
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-people
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognicianit-people
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...it-people
 

More from it-people (20)

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
 

DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazon AWS. Как обеспечить реальные 24/7" Сергей Рыжиков (Битрикс)

  • 1. Архитектура и запуск SaaS решения в Amazon AWS. Как обеспечить реальные 24? Сергей Рыжиков генеральный директор компании «1С-Битрикс»
  • 2. Цель на 2012 год Задача для компании в 2012 году – запустить в коммерческую эксплуатацию «Битрикс24» • Аренда Корпоративного портала как инструмента социального интранета • Развитие социального Project- и Task-менеджмента • Развитие Social CRM - готового, простого в использовании решения • Собрать и накопить опыт по эксплуатации облачных веб- сервисов, поделиться им с партнерами
  • 3.
  • 4.
  • 5. Запускаем новый SaaS-сервис «Битрикс24» Есть несколько задач на старте и в процессе работы • Новый SaaS сервис – как коммерческие, так и «бесплатные» пользователи • Минимизация расходов на эксплуатацию и снижение финансовых рисков на старте проекта • Масштабирование при росте нагрузки и обратное масштабирование • Надежность – обеспечение SLA • Работа с разными рынками: США, Европа, Россия • Быстрая отдача статического контента
  • 6. Из «бизнес-требований» появились технические • Отказоустойчивость – умение размещаться сразу в нескольких разных территориально распределенных датацентрах (в разных странах) • MultiTenancy архитектура • Полное разделение логики (кода продукта) и данных • Пользовательские данные – это большой объем статических файлов и база данных • Универсальный API платформы для многолетней разработки • Динамическое масштабирование по нагрузке Две итоговые задачи: • Выбор технической платформы для инфраструктуры • Выбор платформы разработки
  • 7. Независимые факторы надежности Человечество уже сделало определенный путь для обеспечения независимых факторов надежности. Для «Битрикс24» нужен аналогичный подход – продолжать работу без потери данных в случае выхода из строя одного ДЦ и быть способными восстанавливать базы данных за несколько минут.
  • 8. Традиционное устройство веб-продуктов Веб-приложение Кэширование на диск База данных Обычный продукт не поддерживает гео веб-кластер, облачные файлы, распределенное кэширование, multitenancy…
  • 9. 1 этап : Веб-кластер Балансировщик (клиентские запросы по HTTP) Веб-сервер 1 Веб-сервер 2 MySQL MySQL memcached 1 memcached 2 master slave
  • 10. Облачная платформа: веб-кластер • Вертикальный шардинг (вынесение модулей на отдельные серверы MySQL) • Репликация MySQL и балансирование нагрузки между серверами • Распределенный кеш данных (memcached) • Непрерывность сессий между веб-серверами (хранение сессий в базе данных) • Кластеризация веб-сервера: – Синхронизация файлов (это – проблема для облачного сервиса) – Балансирование нагрузки между серверами
  • 11. 2 этап – гео веб-кластер Асинхронная master-master репликация «Веб-кластер», для обеспечения работы географически «Веб-кластер», ДЦ в России распределенных веб-кластеров. ДЦ в США Потеря связи между ДЦ может Веб-нода составлять часы. Веб-нода Веб-нода Веб-нода Веб-нода Веб-нода Кэш Кэш Кэш Кэш Кэш Кэш «Веб-кластер», БД ДЦ в Германии БД БД БД БД БД Веб-нода Веб-нода Веб-нода Кэш Кэш Кэш БД БД БД
  • 12. Облачное хранилище файлов ДЦ в России ДЦ в США Посетители Веб-сервер Веб-сервера Веб-сервер Веб-сервера Веб-серверы Веб-серверы Веб-приложение Веб-приложение БД (master) Облачное хранилище файлов (Amazon S3, Azure, Google Storage, OpenStack БД (master) Swift) + CDN slave slave
  • 13. Платформа для разработки облачных веб-сервисов • В версии 10. 0 реализована поддержка веб-кластера. • В версии 11.0 – географический веб-кластер master-master. • В версии 11.0 – поддержка облачных хранилищ, тайм-зон, автомасштабирования. • В 2011 году разработана облачная архитектура эксплуатации в Амазоне. • Накоплен опыт работы в Амазоне , опыт эксплуатации и особенности работы в облачной инфраструктуре. • В конце 2011 г была запущена первая опытная версия сервиса «Битрикс24».
  • 14. Из «бизнес-требований» появились технические • Отказоустойчивость – умение размещаться сразу в нескольких разных территориально распределенных датацентрах (в разных странах) • Большой объем базы данных – шардинг – возможность разделить базу данных по территории и группам клиентов • MultiTenancy архитектура • Полное разделение логики (кода продукта) и данных • Пользовательские данные – это большой объем статических файлов и база данных • Универсальный API платформы для многолетней разработки • Динамическое масштабирование по нагрузке
  • 15. Выбор платформы для разворачивания инфраструктуры Минусы размещения на собственном оборудовании: • Необходимы вложения в инфраструктуру на старте проекта • Сложность масштабирования • Сложность администрирования (в случае размещения в территориально удаленных датацентрах) • Создание всех сопутствующих сервисов с нуля «Когда мы только начинали работу над стартапом (FriendFeed), нам нужно было решить, покупать собственные серверы или же выбрать одного из «облачных» хостинг-провайдеров – таких как Amazon (AWS). Мы выбрали первое – решили приобрести собственные серверы. Оглядываясь назад, я думаю, что это было большой ошибкой» Брет Тейлор технический директор Facebook
  • 16. Используем все возможности масштабирования в Amazon, исходя из экономики проекта.
  • 17. Архитектура «Битрикс24» Elastic Load Balancing Web 1 Web 2 … Web N S3 Web 1 Web 2 … Web N Датацентр 1 в MySQL MySQL Датацентр 2 в регионе US East master master регионе US East master-master (Virginia) репликация (Virginia) Мониторинг и Мониторинг и масштабирование – масштабирование – CloudWatch + CloudWatch + AutoScaling AutoScaling management, m onitoring, MySQL backup
  • 18. Web – автоматическое масштабирование Используем связку Elastic Load Balancing + CloudWatch + Auto Scaling Очень высокая посещаемость Elastic Load Balancing Web 1 Web 2 … Web N CloudWatch + Auto Scaling
  • 19. Web – автоматическое масштабирование Используем связку Elastic Load Balancing + CloudWatch + Auto Scaling Автоматически стартуют новые машины, если средняя нагрузка CPU превышает 60% Автоматически останавливаются и выводятся из эксплуатации, если средняя нагрузка менее 30% Ставили верхний порог на 80%, однако начинается общая деградация системы – пользователям работать некомфортно (долго загружаются страницы)
  • 20. Специфика веб-нод Есть несколько задач, которые необходимо решить: • На веб-нодах нет пользовательского контента, все ноды должны быть абсолютно идентичны. • Read only. Никакие пользовательские данные не пишутся и не сохраняются на веб-нодах, так как в любой момент времени любая машина может быть выключена или стартует новая из «чистого» образа. • При этом необходимо обеспечить изоляцию пользователей друг от друга.
  • 21. Специфика веб-нод • Нет Apache. Есть PHP-FPM + nginx • У каждого клиента свой домен • Был разработан модуль для PHP: • проверяет корректность домена, завершает хит с ошибкой, если имя некорректно • устанавливает соединение с нужной базой в зависимости от домена • обеспечивает безопасность и изоляцию пользователей друг от друга • служит для шардинга данных разных пользователей по разным базам
  • 22. Bitrix24 - cвой модуль для PHP • Обеспечивает переопределние функции соединения с базой данных. • В отдельной таблице хранит строки соединения с разными мастерами и «слейвами», обслуживающими БД. • Позволяет выполнять горизонтальное масштабирование БД (шардинг) по любому количеству серверов вплоть до «один клиент на одном сервере». • Обеспечивает запуск (fork) процессов для PHP и быструю отдачу страницы пользователю.
  • 23. Статический контент пользователей сервиса Статические данные пользователей храним в S3. Загрузка осуществляется «прозрачно» для пользователей – они работают с привычными интерфейсами. Правильно формируются url’ы к картинкам, документам и т.п. Для каждого созданного Корпоративного портала создается персональный аккаунт – данные каждого КП полностью изолированы друг от друга.
  • 24. Полная изоляция данных • Данные одной компании полностью изолированы от данных другой. • Для каждого клиента данные хранятся раздельно: o свой логин пароль к БД o своя БД со структурой таблиц o свое облачное хранилище S3 с отдельным логином/паролем o отдельное пространство для кеширования данных • Все веб-ноды могут обслуживать любых клиентов, набор данных определяется по домену и не может быть изменен.
  • 25. Готов только первый «двигатель самолета» Elastic Elastic Load Balancing Load Balancing Web 1 Web 2 … Web N S3 Web 1 Web 2 … Web N Датацентр 1 в MySQL MySQL Датацентр 2 в регионе US East master master регионе US East master-master (Virginia) репликация (Virginia) Мониторинг и Мониторинг и масштабирование – масштабирование – CloudWatch + CloudWatch + AutoScaling AutoScaling management, m onitoring, MySQL backup
  • 26. Используем master-master репликацию в MySQL • Особенности настройки MySQL: • auto_increment_increment • auto_increment_offset • Базы в разных датацентрах синхронны, при этом независимы друг от друга: потеря связности между датацентрами может составлять часы, данные синхронизируются после восстановления. • В любое время можно добавить новые датацентры. • Пользователь и все сотрудники этой компании работают в одном датацентре за счет управления балансировщиком. • Сессии храним в базе, но не реплицируем между серверами из-за большого траффика: • SET sql_log_bin = 0 … или … • replicate-wild-ignore-table = %.b_sec_session%
  • 27. Сценарий 1: авария на одной или нескольких веб-нодах Elastic Load Balancing Web 1 Web 2 … Web N S3 Web 1 Web 2 … Web N Датацентр 1 в MySQL MySQL Датацентр 2 в регионе US East master master регионе US East master-master (Virginia) репликация (Virginia) Мониторинг и Мониторинг и масштабирование – масштабирование – CloudWatch + CloudWatch + AutoScaling AutoScaling management, m onitoring, MySQL backup
  • 28. Сценарий 1: авария на одной или нескольких веб-нодах Load Balancing определяет вышедшие из строя машины. Исходя из заданных параметров группы балансировки, автоматически восстанавливается нужное количество машин.
  • 29. Сценарий 1: авария на одной или нескольких веб-нодах Elastic Load Balancing Web 1 Web 2 … Web N S3 Web 1 Web 2 … Web N Датацентр 1 в MySQL MySQL Датацентр 2 в регионе US East master master регионе US East master-master (Virginia) репликация (Virginia) Мониторинг и Мониторинг и масштабирование – масштабирование – CloudWatch + CloudWatch + AutoScaling AutoScaling management, m onitoring, MySQL backup
  • 30. Сценарий 2: потеря связности между датацентрами Elastic Elastic Elastic Load Balancing Load Balancing Load Balancing Web 1 Web 2 … Web N S3 Web 1 Web 2 … Web N Датацентр 1 в MySQL MySQL Датацентр 2 в регионе US East master master регионе US East master-master (Virginia) репликация (Virginia) Мониторинг и Мониторинг и масштабирование – масштабирование – CloudWatch + CloudWatch + AutoScaling AutoScaling management, m onitoring, MySQL backup
  • 31. Сценарий 2: потеря связности между датацентрами Каждый датацентр продолжает обслуживать свой сегмент клиентов. Данные синхронизируются после восстановления связности.
  • 32. Сценарий 3: плановые работы с базой или авария всего ДЦ Elastic Load Balancing Web 1 Web 2 … Web N S3 Web 1 Web 2 … Web N Датацентр 1 в MySQL MySQL Датацентр 2 в регионе US East master master регионе US East master-master (Virginia) репликация (Virginia) Мониторинг и Мониторинг и масштабирование – масштабирование – CloudWatch + CloudWatch + AutoScaling AutoScaling management, monitoring, MySQL backup
  • 33. Сценарий 3: плановые работы с базой или авария всего ДЦ Весь трафик переключается в один работающий датацентр. CloudWatch определяет возросшую нагрузку на машины и добавляет их в соответствие с правилами для AutoScaling. Приостанавливается мастер-мастер репликация. Проводятся все необходимые работы с базой, на которую не идет нагрузка. База включается в работу, восстанавливается репликация. Траффик распределяется на оба датацентра. Гасятся лишние машины, если средняя нагрузка стала ниже порогового значения.
  • 34. MySQL? Percona Server! Один из выводов в процессе эксплуатации: используем один из fork’ов MySQL – Percona Server (обратно совместим с MySQL) • Оптимизирован для работы в «облаке» (с относительно медленными дисками) • Быстрое восстановление кэша при рестарте базы • Оптимизирован для Multitenancy приложений с тысячами таблиц • Оптимизирован для сбора статистики по отдельным пользователям • Подробная статистика по медленным запросам • XtraDB и XtraBackup
  • 35. Конфигурация машин с базами MySQL Виртуальная машина (EC2) - Extra Large Instance – 15 Gb RAM Этапы масштабирования: 1) Вертикальное масштабирование (дисковая система RAID-10 на EBS) 2) Веб-кластер master-slave. Запуск необходимого числа слейвов в конфигурации веб-кластера master-slave 3) Горизонтальное масштабирование, разделение мастера на несколько серверов Все этапы выполняются без остановки сервиса.
  • 36. Бэкап базы данных Еще один вывод: для разных сценариев восстановления данных необходимо использовать разные бэкапы. Для восстановления целого сервера БД в случае аварии используем образ машин со всеми дисками (AMI) – делаем целостный бэкап RAID’а, используя файловую систему, поддерживающую freeze и механизм snapshot’ов в Амазоне. Логические (mysqldump) и бинарные инкрементальные (Xtrabackup) бэкапы используются для восстановления отдельных баз или таблиц, поврежденных в случае некорректных операций в системе или ошибок пользователей. Второй тип бэкапов делается на выделенном slave, на который не распределяется общая нагрузка. Тем самым ресурсоемкие операции создания бэкапов не влияют на работу пользователей.
  • 37. Обновления ПО на веб-нодах Как ставить обновления на нодах, не допустив рассинхронизации данных (веб и база) Сервер Новый обновлений образ AMI Web 1 Elastic Load Web 2 Balancing Web N
  • 38. Контроллер Используется для логического управления проектами, выполнения любых команд, SQL-запросов и PHP-кода на любой из копии проекта. Обеспечивает биллинг, включение тарифных планов, ограничения по пользователям, дисковому пространству и т.д.
  • 39. Итоговая архитектура Битрикс24 HTTP/HTTPS HTTP/HTTPS HTTP/HTTPS *.com *.com *.ru *.ru Elastic Elastic Load Balancing Load Balancing CloudWatch CloudWatch + + … S3 … AutoScaling AutoScaling Web 1 Web 2 Web N Web 1 Web 2 Web N cache MySQL MySQL cache master master master-master репликация MySQL slave MySQL slave management, CloudWatch monitoring, CloudWatch MySQL backup
  • 40. Надежность Один из приоритетов – постоянная доступность сервиса, его отказоустойчивость. Все веб-ноды идентичны и не зависимы друг от друга, в случае аварии автоматически стартуют новые. Два датацентра синхронизированы друг с другом и равноценно обслуживают клиентов. В случае аварии на уровне датацентра или плановых работ с базой, трафик прозрачно для клиентов переключается на рабочий датацентр.