SlideShare uma empresa Scribd logo
1 de 45
Как жить в облаке без админов?
Александр Демидов
руководитель направления арендных решений
«1С-Битрикс»
- Новый сервер?
Нестандартной
конфигурации? 5-го
января? … Нет, не
слышали.
Облако!
Быстро!
Надежно!
Дешево!
Неправда…
Надежность «облака»
Само по себе «облако» не
надежнее традиционного
хостинга и собственного
оборудования. «Облако»
дает возможность
организовать надежную
инфраструктуру.
Сама инфраструктура не
построится…
Админы пока еще не нужны…

Нужен
аналитик…
Админы пока еще не нужны…

…и архитектор.
Правильное облако
Несколько территориально
распределенных ДЦ (с
возможностью их выбора)

Гибкое управление дисками
Облачные базы данных, кэш,
NoSQL, балансировщики, DNS,
мониторинг, сервисы
очередей, файловые
хранилища, CDN и т.д.
API и готовые SDK для
управления всеми сервисами
Готовность приложения к
масштабированию
Резервируй это!
Static
HTTPS
*.com/*.de

Static
HTTPS
*.ru

js, css

Elastic Load Balancing

Web 1
local
cache
(APC)

CloudWatch
+
AutoScaling

Web 2
local
cache
(APC)

…

mysqld
control cache: memcached

js, css

Elastic Load Balancing

local
cache
(APC)

local
cache
(APC)

CloudWatch
+
AutoScaling

Web 2
local
cache
(APC)

S3

master-master replication

mysqld

mysqld

master-master replication

control cache: memcached

mysqld

mysqld
mysqld
control cache: memcached

…

local
cache
(APC)

mysqld
mysqld
mysqld

mysqld
mysqld

control cache: memcached

management,
monitoring,
backup

Web N

mysqld
mysqld

mysqld

control cache: memcached

CDN (CDNvideo)

Web 1

master-master replication

mysqld

Dynamic
HTTPS
*.ru

Web N

mysqld
mysqld

images (clients)

CDN (Amazon CloudFront)

images (clients)

Dynamic
HTTPS
*.com/*.de

mysqld
control cache: memcached
Web – автоматическое
масштабирование
Используем связку Elastic Load Balancing + CloudWatch +
Auto Scaling
Очень высокая посещаемость

Elastic Load Balancing

Web 1

Web 2

…

CloudWatch + Auto Scaling

Web N
Web – автоматическое
масштабирование
Используем связку Elastic Load Balancing + CloudWatch +
Auto Scaling
Автоматически стартуют новые машины, если средняя нагрузка
CPU превышает X%
Автоматически останавливаются и выводятся из эксплуатации,
если средняя нагрузка менее Y%
MySQL? Percona Server!
Один из выводов в процессе эксплуатации: используем
один из fork’ов MySQL – Percona Server (обратно совместим
с MySQL)
Быстрое восстановление кэша при рестарте базы
Оптимизирован для Multitenancy приложений с тысячами таблиц
Оптимизирован для сбора статистики по отдельным пользователям
Подробная статистика по медленным запросам

XtraDB и XtraBackup
BLOB, TEXT в таблицах MEMORY (HEAP)
Используем 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

Датацентр 1 в
регионе US East
(Virginia)

…

Web N

MySQL
master

S3

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

Web 1

MySQL
master

Web 2

…

Web N

Датацентр 2 в
регионе US East
(Virginia)
Мониторинг и
масштабирование –
CloudWatch +
AutoScaling

Мониторинг и
масштабирование –
CloudWatch +
AutoScaling
management,
monitoring,
MySQL backup
Сценарий 1: авария на одной или
нескольких веб-нодах

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

Web 1

Web 2

Датацентр 1 в
регионе US East
(Virginia)

…

Web N

MySQL
master

S3

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

Web 1

MySQL
master

Web 2

…

Web N

Датацентр 2 в
регионе US East
(Virginia)
Мониторинг и
масштабирование –
CloudWatch +
AutoScaling

Мониторинг и
масштабирование –
CloudWatch +
AutoScaling
management,
monitoring,
MySQL backup
Сценарий 2: потеря связности
между датацентрами
Elastic
Load Balancing

Web 1

Web 2

Датацентр 1 в
регионе US East
(Virginia)

…

Elastic
Load Balancing

Web N

MySQL
master

S3

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

Elastic
Load Balancing

Web 1

MySQL
master

Web 2

…

Web N

Датацентр 2 в
регионе US East
(Virginia)
Мониторинг и
масштабирование –
CloudWatch +
AutoScaling

Мониторинг и
масштабирование –
CloudWatch +
AutoScaling
management,
monitoring,
MySQL backup
Сценарий 2: потеря связности
между датацентрами

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

Web 1

Web 2

Датацентр 1 в
регионе US East
(Virginia)

…

Web N

MySQL
master

S3

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

Web 1

MySQL
master

Web 2

…

Web N

Датацентр 2 в
регионе US East
(Virginia)
Мониторинг и
масштабирование –
CloudWatch +
AutoScaling

Мониторинг и
масштабирование –
CloudWatch +
AutoScaling
management, m
onitoring,
MySQL backup
Не бывает
«почти круглосуточно»
Технические работы должны
проходить незаметно для
клиентов:
Сервисные работы
Замена оборудования
Обновления системного
ПО
Обновления приложений
Сценарий 3: авария или
плановые работы с базой

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

Можно – так…
Real Time мониторинг – как
узнавать о проблемах?

Или – так…
Организация системы
мониторинга
Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не
самописные.

Дежурная смена и/или мгновенные уведомления.
Мониторить – всё.
Но – аккуратно. Тысячи уведомлений будут бесполезны.

Мониторить систему мониторинга. В идеальном мире –
распределенная система мониторинга.
Автоматизация типовых реакций.
Помимо стандартных - пишите свои тесты
Пример для MySQL
Автоматизация типовых
реакций
Рост / падение LA – автоматическое масштабирование
вверх / вниз

Автоматический рестарт «сбойных» сервисов
Автоматическое «удаление» проблемных машин
Автоматическое восстановление репликации

Автоматическое переключение траффика в случае аварии
на уровне целого ДЦ
event handler
# LA on the server
define service{
use
host_name
service_description
check_command
event_handler
}

local-service
ec2-54-227-28-75.compute-1.amazonaws.com
Current Load
check_nrpe_1arg!check_load!
restart_phpfpms

define command{
command_name
restart_phpfpms
command_line
/usr/lib64/nagios/plugins/check_nrpe -H
$HOSTADDRESS$ -c restart_phpfpm
}
Мониторинг нетипичных
характеристик
Наличие бэкапов
Срок делегирования доменов
Срок действия SSL сертификатов
Баланс у провайдера смс-уведомлений
Мониторинг веб-приложения
Лог работы скрипта (>) – обновился за N часов
Лог ошибок работы скрипта (2>) – должен быть пуст
Уведомления – как у нас
Cкрипт, опрашивающий страницу
«Problems»
Шлем «дайджест» проблем, а не по одному
сообщению на каждое событие
Несколько уровней критичности событий

Разные списки адресатов на разные
события
Повтор (через 15 минут, через 2 часа), чтобы
не «потерять» уведомление
ОК – если все стало хорошо
Аналитика
«Живая» система – много
небольших запросов
mysql> SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+----------------+-------+----------------+
| time
| count | total
|
+----------------+-------+----------------+
|
0.000001 |
0 |
0.000000 |
|
0.000010 | 2011 |
0.007438 |
|
0.000100 | 12706 |
0.513395 |
|
0.001000 | 4624 |
1.636106 |
|
0.010000 | 2994 |
12.395174 |
|
0.100000 |
200 |
6.225339 |
|
1.000000 |
33 |
5.480764 |
|
10.000000 |
1 |
2.374067 |
|
100.000000 |
0 |
0.000000 |
|
1000.000000 |
0 |
0.000000 |
|
10000.000000 |
0 |
0.000000 |
| 100000.000000 |
0 |
0.000000 |
| 1000000.000000 |
0 |
0.000000 |
| TOO LONG
|
0 | TOO LONG
|
+----------------+-------+----------------+
14 rows in set (0.00 sec)
Аналитика - MySQL
Одиночные медленные запросы отлавливаются просто.
Сложнее мониторить общее состояние системы с
большим количеством относительно быстрых запросов.
Поиск узких мест
Pinba, XDebug, XHProf
Приложение всегда работает
в условиях ограниченных ресурсов
Постоянный feedback разработчикам – в
автоматическом и полуавтоматическом режиме
Резюме
Систему в облаке можно поддерживать, обходясь
минимумом человеческих ресурсов
•

Выбирайте правильное облако – с максимально широким
набором сервисов, API и т.п.

•

Ваше приложение должно быть готово к горизонтальному
масштабированию

•
•
•
•

Резервируйте все
Обязательно используйте системы мониторинга
Автоматизируйте все типовые действия
Держите приложение в условиях ограниченных ресурсов и
всегда давайте обратную связь разработчикам.
До 2012 года…

Два основных продукта:
Единственное, что
требовало того или
иного обслуживания –
наш собственный сайт.
В настоящее время…

файлы

бэкап

сканер
безопасности

CRM

CDN

видеозвонки

push

??
Облачные сервисы
Битрикс24 – SaaS «Корпоративный портал»
Более 7000 наиболее активных порталов
Ускорение сайта – интеграция с CDN
Около 9000 сайтов
Облачный бэкап
Более 7500 сайтов
Анонс новых сервисов осенью 2013
Примерно 2 стойки
42U – если без
виртуализации
Два человека – у
которых админство
не является
основной
деятельностью
Спасибо за внимание!
Вопросы?
Александр Демидов
demidov@1c-bitrix.ru

+7-926-521-3700
@demidov
http://www.1c-bitrix.ru

Mais conteúdo relacionado

Mais procurados

Hl2008 New
Hl2008 NewHl2008 New
Hl2008 New
Ontico
 
!!9hl2008 New
!!9hl2008 New!!9hl2008 New
!!9hl2008 New
Ontico
 
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Ontico
 

Mais procurados (6)

Hl2008 New
Hl2008 NewHl2008 New
Hl2008 New
 
!!9hl2008 New
!!9hl2008 New!!9hl2008 New
!!9hl2008 New
 
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
 
Практические шаги создания системы резервного копирования
Практические шаги создания системы резервного копированияПрактические шаги создания системы резервного копирования
Практические шаги создания системы резервного копирования
 
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
Эффективное использование спотовых узлов Amazon EC2 / Дмитрий Пушкарев (Molec...
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 

Destaque

Chromation systems 24-channel-usb-connected-led-controller-v3
Chromation systems 24-channel-usb-connected-led-controller-v3Chromation systems 24-channel-usb-connected-led-controller-v3
Chromation systems 24-channel-usb-connected-led-controller-v3
nadimsh90
 
04 solarwatt solarwatt lead management system
04 solarwatt solarwatt lead management system04 solarwatt solarwatt lead management system
04 solarwatt solarwatt lead management system
SOLARWATT
 
Flaaa formation-flash-animation-avancee
Flaaa formation-flash-animation-avanceeFlaaa formation-flash-animation-avancee
Flaaa formation-flash-animation-avancee
CERTyou Formation
 
Campaña de reciclaje en la Comuna 13
Campaña de reciclaje en la Comuna 13Campaña de reciclaje en la Comuna 13
Campaña de reciclaje en la Comuna 13
Comuna
 
Closing the Findability Gap: 8 better practices from information architecture
Closing the Findability Gap: 8 better practices from information architectureClosing the Findability Gap: 8 better practices from information architecture
Closing the Findability Gap: 8 better practices from information architecture
Louis Rosenfeld
 
Grpres
GrpresGrpres
Grpres
GinBcn
 
Fssa conference 2014 cfo group unified financial performance management
Fssa conference 2014 cfo group unified financial performance managementFssa conference 2014 cfo group unified financial performance management
Fssa conference 2014 cfo group unified financial performance management
CFO Group
 
La vida de shakira bejerano
La vida de shakira bejeranoLa vida de shakira bejerano
La vida de shakira bejerano
kv798724mhs
 

Destaque (20)

Chromation systems 24-channel-usb-connected-led-controller-v3
Chromation systems 24-channel-usb-connected-led-controller-v3Chromation systems 24-channel-usb-connected-led-controller-v3
Chromation systems 24-channel-usb-connected-led-controller-v3
 
Crm
CrmCrm
Crm
 
Calidad software
Calidad softwareCalidad software
Calidad software
 
04 solarwatt solarwatt lead management system
04 solarwatt solarwatt lead management system04 solarwatt solarwatt lead management system
04 solarwatt solarwatt lead management system
 
Flaaa formation-flash-animation-avancee
Flaaa formation-flash-animation-avanceeFlaaa formation-flash-animation-avancee
Flaaa formation-flash-animation-avancee
 
Erlebnisse auf dem Neroberg
Erlebnisse auf dem NerobergErlebnisse auf dem Neroberg
Erlebnisse auf dem Neroberg
 
Campaña de reciclaje en la Comuna 13
Campaña de reciclaje en la Comuna 13Campaña de reciclaje en la Comuna 13
Campaña de reciclaje en la Comuna 13
 
Simuladores formacion empresarial
Simuladores formacion empresarialSimuladores formacion empresarial
Simuladores formacion empresarial
 
Closing the Findability Gap: 8 better practices from information architecture
Closing the Findability Gap: 8 better practices from information architectureClosing the Findability Gap: 8 better practices from information architecture
Closing the Findability Gap: 8 better practices from information architecture
 
Grpres
GrpresGrpres
Grpres
 
A1000
A1000A1000
A1000
 
Fssa conference 2014 cfo group unified financial performance management
Fssa conference 2014 cfo group unified financial performance managementFssa conference 2014 cfo group unified financial performance management
Fssa conference 2014 cfo group unified financial performance management
 
Encu es tra-al-gimnasio (1)
Encu es tra-al-gimnasio (1)Encu es tra-al-gimnasio (1)
Encu es tra-al-gimnasio (1)
 
La química-en-el-arte (1)5g5
La química-en-el-arte (1)5g5La química-en-el-arte (1)5g5
La química-en-el-arte (1)5g5
 
La vida de shakira bejerano
La vida de shakira bejeranoLa vida de shakira bejerano
La vida de shakira bejerano
 
La Gatera de la Villa nº 12
La Gatera de la Villa nº 12La Gatera de la Villa nº 12
La Gatera de la Villa nº 12
 
EPHA Promotional activities at Gambella ,Oromia and SNNPR
EPHA Promotional activities at Gambella ,Oromia and SNNPREPHA Promotional activities at Gambella ,Oromia and SNNPR
EPHA Promotional activities at Gambella ,Oromia and SNNPR
 
Workflow best practices
Workflow best practicesWorkflow best practices
Workflow best practices
 
Less04 Instance
Less04 InstanceLess04 Instance
Less04 Instance
 
Revista Tu Guía Central - Edición número 94, enero de 2017
Revista Tu Guía Central - Edición número 94, enero de 2017Revista Tu Guía Central - Edición número 94, enero de 2017
Revista Tu Guía Central - Edición número 94, enero de 2017
 

Semelhante a Bitrix clouds without_admins

CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
Clouds NN
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Ontico
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
it-people
 
High Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus ReadyHigh Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus Ready
HighLoad2009
 
дерюшкин Agile vector
дерюшкин   Agile vectorдерюшкин   Agile vector
дерюшкин Agile vector
Magneta AI
 

Semelhante a Bitrix clouds without_admins (20)

CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
 
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров
 
Backup commvault data_line
Backup commvault data_lineBackup commvault data_line
Backup commvault data_line
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
 
Защита центров обработки данных. Механизмы безопасности для классической фабр...
Защита центров обработки данных. Механизмы безопасности для классической фабр...Защита центров обработки данных. Механизмы безопасности для классической фабр...
Защита центров обработки данных. Механизмы безопасности для классической фабр...
 
Веб-кластер
Веб-кластерВеб-кластер
Веб-кластер
 
Приватный клауд на базе OpenStack
Приватный клауд на базе OpenStackПриватный клауд на базе OpenStack
Приватный клауд на базе OpenStack
 
Презентация КлаудМастер
Презентация КлаудМастерПрезентация КлаудМастер
Презентация КлаудМастер
 
High Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus ReadyHigh Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus Ready
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
Программные интерфейсы управления серверной платформой и вычислительными стек...
Программные интерфейсы управления серверной платформой и вычислительными стек...Программные интерфейсы управления серверной платформой и вычислительными стек...
Программные интерфейсы управления серверной платформой и вычислительными стек...
 
дерюшкин Agile vector
дерюшкин   Agile vectorдерюшкин   Agile vector
дерюшкин Agile vector
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в Райффайзенбанке
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 

Mais de Alexander Demidov (10)

Bitrix24 (DevConf)
Bitrix24 (DevConf)Bitrix24 (DevConf)
Bitrix24 (DevConf)
 
02 1c-bitrix-cloud-storage
02 1c-bitrix-cloud-storage02 1c-bitrix-cloud-storage
02 1c-bitrix-cloud-storage
 
1c bitrix-cluster-et
1c bitrix-cluster-et1c bitrix-cluster-et
1c bitrix-cluster-et
 
Webcluster cases
Webcluster casesWebcluster cases
Webcluster cases
 
BitrixMobile: опыт создания мобильных приложений с использованием HTML5
BitrixMobile: опыт создания мобильных приложений с использованием HTML5BitrixMobile: опыт создания мобильных приложений с использованием HTML5
BitrixMobile: опыт создания мобильных приложений с использованием HTML5
 
Оверсан-Скалакси
Оверсан-СкалаксиОверсан-Скалакси
Оверсан-Скалакси
 
1С-Битрикс - Веб-кластер
1С-Битрикс - Веб-кластер1С-Битрикс - Веб-кластер
1С-Битрикс - Веб-кластер
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
1С-Битрикс - Версия 10.0
1С-Битрикс - Версия 10.01С-Битрикс - Версия 10.0
1С-Битрикс - Версия 10.0
 
Облака и SaaS
Облака и SaaSОблака и SaaS
Облака и SaaS
 

Bitrix clouds without_admins

  • 1. Как жить в облаке без админов? Александр Демидов руководитель направления арендных решений «1С-Битрикс»
  • 2. - Новый сервер? Нестандартной конфигурации? 5-го января? … Нет, не слышали.
  • 4.
  • 5.
  • 6.
  • 7. Надежность «облака» Само по себе «облако» не надежнее традиционного хостинга и собственного оборудования. «Облако» дает возможность организовать надежную инфраструктуру.
  • 9. Админы пока еще не нужны… Нужен аналитик…
  • 10. Админы пока еще не нужны… …и архитектор.
  • 11. Правильное облако Несколько территориально распределенных ДЦ (с возможностью их выбора) Гибкое управление дисками Облачные базы данных, кэш, NoSQL, балансировщики, DNS, мониторинг, сервисы очередей, файловые хранилища, CDN и т.д. API и готовые SDK для управления всеми сервисами
  • 13. Резервируй это! Static HTTPS *.com/*.de Static HTTPS *.ru js, css Elastic Load Balancing Web 1 local cache (APC) CloudWatch + AutoScaling Web 2 local cache (APC) … mysqld control cache: memcached js, css Elastic Load Balancing local cache (APC) local cache (APC) CloudWatch + AutoScaling Web 2 local cache (APC) S3 master-master replication mysqld mysqld master-master replication control cache: memcached mysqld mysqld mysqld control cache: memcached … local cache (APC) mysqld mysqld mysqld mysqld mysqld control cache: memcached management, monitoring, backup Web N mysqld mysqld mysqld control cache: memcached CDN (CDNvideo) Web 1 master-master replication mysqld Dynamic HTTPS *.ru Web N mysqld mysqld images (clients) CDN (Amazon CloudFront) images (clients) Dynamic HTTPS *.com/*.de mysqld control cache: memcached
  • 14. Web – автоматическое масштабирование Используем связку Elastic Load Balancing + CloudWatch + Auto Scaling Очень высокая посещаемость Elastic Load Balancing Web 1 Web 2 … CloudWatch + Auto Scaling Web N
  • 15. Web – автоматическое масштабирование Используем связку Elastic Load Balancing + CloudWatch + Auto Scaling Автоматически стартуют новые машины, если средняя нагрузка CPU превышает X% Автоматически останавливаются и выводятся из эксплуатации, если средняя нагрузка менее Y%
  • 16. MySQL? Percona Server! Один из выводов в процессе эксплуатации: используем один из fork’ов MySQL – Percona Server (обратно совместим с MySQL) Быстрое восстановление кэша при рестарте базы Оптимизирован для Multitenancy приложений с тысячами таблиц Оптимизирован для сбора статистики по отдельным пользователям Подробная статистика по медленным запросам XtraDB и XtraBackup BLOB, TEXT в таблицах MEMORY (HEAP)
  • 17. Используем master-master репликацию в MySQL Особенности настройки MySQL: auto_increment_increment auto_increment_offset Базы в разных датацентрах синхронны, при этом независимы друг от друга: потеря связности между датацентрами может составлять часы, данные синхронизируются после восстановления. Группы пользователей работают в одном датацентре за счет управления балансировщиком. Какие-то данные можно не реплицировать: SET sql_log_bin = 0 … или … replicate-wild-ignore-table = %.b_sec_session%
  • 18. Сценарий 1: авария на одной или нескольких веб-нодах Elastic Load Balancing Web 1 Web 2 Датацентр 1 в регионе US East (Virginia) … Web N MySQL master S3 master-master репликация Web 1 MySQL master Web 2 … Web N Датацентр 2 в регионе US East (Virginia) Мониторинг и масштабирование – CloudWatch + AutoScaling Мониторинг и масштабирование – CloudWatch + AutoScaling management, monitoring, MySQL backup
  • 19. Сценарий 1: авария на одной или нескольких веб-нодах Load Balancing определяет вышедшие из строя машины Исходя из заданных параметров группы балансировки, автоматически восстанавливается нужное количество машин
  • 20. Сценарий 1: авария на одной или нескольких веб-нодах Elastic Load Balancing Web 1 Web 2 Датацентр 1 в регионе US East (Virginia) … Web N MySQL master S3 master-master репликация Web 1 MySQL master Web 2 … Web N Датацентр 2 в регионе US East (Virginia) Мониторинг и масштабирование – CloudWatch + AutoScaling Мониторинг и масштабирование – CloudWatch + AutoScaling management, monitoring, MySQL backup
  • 21. Сценарий 2: потеря связности между датацентрами Elastic Load Balancing Web 1 Web 2 Датацентр 1 в регионе US East (Virginia) … Elastic Load Balancing Web N MySQL master S3 master-master репликация Elastic Load Balancing Web 1 MySQL master Web 2 … Web N Датацентр 2 в регионе US East (Virginia) Мониторинг и масштабирование – CloudWatch + AutoScaling Мониторинг и масштабирование – CloudWatch + AutoScaling management, monitoring, MySQL backup
  • 22. Сценарий 2: потеря связности между датацентрами Каждый датацентр продолжает обслуживать свой сегмент клиентов Данные синхронизируются после восстановления связности
  • 23. Сценарий 3: плановые работы с базой или авария всего ДЦ Elastic Load Balancing Web 1 Web 2 Датацентр 1 в регионе US East (Virginia) … Web N MySQL master S3 master-master репликация Web 1 MySQL master Web 2 … Web N Датацентр 2 в регионе US East (Virginia) Мониторинг и масштабирование – CloudWatch + AutoScaling Мониторинг и масштабирование – CloudWatch + AutoScaling management, m onitoring, MySQL backup
  • 24. Не бывает «почти круглосуточно» Технические работы должны проходить незаметно для клиентов: Сервисные работы Замена оборудования Обновления системного ПО Обновления приложений
  • 25. Сценарий 3: авария или плановые работы с базой Весь траффик переключается в один работающий датацентр CloudWatch определяет возросшую нагрузку на машины и добавляет их в соответствие с правилами для AutoScaling Приостанавливается мастер-мастер репликация Проводятся все необходимые работы с базой, на которую не идет нагрузка База включается в работу, восстанавливается репликация Траффик распределяется на оба датацентра Гасятся лишние машины, если средняя нагрузка стала ниже порогового значения
  • 26. Real Time мониторинг – как узнавать о проблемах? Можно – так…
  • 27. Real Time мониторинг – как узнавать о проблемах? Или – так…
  • 28. Организация системы мониторинга Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не самописные. Дежурная смена и/или мгновенные уведомления. Мониторить – всё. Но – аккуратно. Тысячи уведомлений будут бесполезны. Мониторить систему мониторинга. В идеальном мире – распределенная система мониторинга. Автоматизация типовых реакций.
  • 29. Помимо стандартных - пишите свои тесты Пример для MySQL
  • 30. Автоматизация типовых реакций Рост / падение LA – автоматическое масштабирование вверх / вниз Автоматический рестарт «сбойных» сервисов Автоматическое «удаление» проблемных машин Автоматическое восстановление репликации Автоматическое переключение траффика в случае аварии на уровне целого ДЦ
  • 31. event handler # LA on the server define service{ use host_name service_description check_command event_handler } local-service ec2-54-227-28-75.compute-1.amazonaws.com Current Load check_nrpe_1arg!check_load! restart_phpfpms define command{ command_name restart_phpfpms command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c restart_phpfpm }
  • 32. Мониторинг нетипичных характеристик Наличие бэкапов Срок делегирования доменов Срок действия SSL сертификатов Баланс у провайдера смс-уведомлений
  • 33. Мониторинг веб-приложения Лог работы скрипта (>) – обновился за N часов Лог ошибок работы скрипта (2>) – должен быть пуст
  • 34. Уведомления – как у нас Cкрипт, опрашивающий страницу «Problems» Шлем «дайджест» проблем, а не по одному сообщению на каждое событие Несколько уровней критичности событий Разные списки адресатов на разные события Повтор (через 15 минут, через 2 часа), чтобы не «потерять» уведомление ОК – если все стало хорошо
  • 36. «Живая» система – много небольших запросов mysql> SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME; +----------------+-------+----------------+ | time | count | total | +----------------+-------+----------------+ | 0.000001 | 0 | 0.000000 | | 0.000010 | 2011 | 0.007438 | | 0.000100 | 12706 | 0.513395 | | 0.001000 | 4624 | 1.636106 | | 0.010000 | 2994 | 12.395174 | | 0.100000 | 200 | 6.225339 | | 1.000000 | 33 | 5.480764 | | 10.000000 | 1 | 2.374067 | | 100.000000 | 0 | 0.000000 | | 1000.000000 | 0 | 0.000000 | | 10000.000000 | 0 | 0.000000 | | 100000.000000 | 0 | 0.000000 | | 1000000.000000 | 0 | 0.000000 | | TOO LONG | 0 | TOO LONG | +----------------+-------+----------------+ 14 rows in set (0.00 sec)
  • 37. Аналитика - MySQL Одиночные медленные запросы отлавливаются просто. Сложнее мониторить общее состояние системы с большим количеством относительно быстрых запросов.
  • 39. Приложение всегда работает в условиях ограниченных ресурсов Постоянный feedback разработчикам – в автоматическом и полуавтоматическом режиме
  • 40. Резюме Систему в облаке можно поддерживать, обходясь минимумом человеческих ресурсов • Выбирайте правильное облако – с максимально широким набором сервисов, API и т.п. • Ваше приложение должно быть готово к горизонтальному масштабированию • • • • Резервируйте все Обязательно используйте системы мониторинга Автоматизируйте все типовые действия Держите приложение в условиях ограниченных ресурсов и всегда давайте обратную связь разработчикам.
  • 41. До 2012 года… Два основных продукта: Единственное, что требовало того или иного обслуживания – наш собственный сайт.
  • 43. Облачные сервисы Битрикс24 – SaaS «Корпоративный портал» Более 7000 наиболее активных порталов Ускорение сайта – интеграция с CDN Около 9000 сайтов Облачный бэкап Более 7500 сайтов Анонс новых сервисов осенью 2013
  • 44. Примерно 2 стойки 42U – если без виртуализации Два человека – у которых админство не является основной деятельностью
  • 45. Спасибо за внимание! Вопросы? Александр Демидов demidov@1c-bitrix.ru +7-926-521-3700 @demidov http://www.1c-bitrix.ru