45
Как жить в облаке без админов? Александр Демидов руководитель направления арендных решений «1С-Битрикс»

Bitrix clouds without_admins

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Bitrix clouds without_admins

Как жить в облаке без админов?

Александр Демидовруководитель направления арендных решений

«1С-Битрикс»

Page 2: Bitrix clouds without_admins

- Новый сервер? Нестандартной конфигурации? 5-го января? … Нет, не слышали.

Page 3: Bitrix clouds without_admins

Облако!

Быстро!

Надежно!

Дешево!

Неправда…

Page 4: Bitrix clouds without_admins
Page 5: Bitrix clouds without_admins
Page 6: Bitrix clouds without_admins
Page 7: Bitrix clouds without_admins

Надежность «облака»

Само по себе «облако» не надежнее традиционного хостинга и собственного оборудования. «Облако» дает возможность организовать надежную инфраструктуру.

Page 8: Bitrix clouds without_admins

Сама инфраструктура не построится…

Page 9: Bitrix clouds without_admins

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

Нужен аналитик…

Page 10: Bitrix clouds without_admins

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

…и архитектор.

Page 11: Bitrix clouds without_admins

Правильное облако

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

Гибкое управление дисками

Облачные базы данных, кэш, NoSQL, балансировщики, DNS, мониторинг, сервисы очередей, файловые хранилища, CDN и т.д.

API и готовые SDK для управления всеми сервисами

Page 12: Bitrix clouds without_admins

Готовность приложения к масштабированию

Page 13: Bitrix clouds without_admins

Elastic Load Balancing

Web 1

Elastic Load Balancing

DynamicHTTPS

*.com/*.de

Web N

…CloudWatch + AutoScaling

Web 1 Web 2 Web N

…CloudWatch + AutoScaling

Резервируй это!

S3

management, monitoring,

backup

StaticHTTPS

*.com/*.de

CDN (Amazon CloudFront)

js, css

DynamicHTTPS

*.ru

StaticHTTPS

*.ru

CDN (CDNvideo)

js, css

imag

es (c

lient

s)

imag

es (c

lient

s)

local cache (APC)

local cache (APC)

local cache (APC)

local cache (APC)

local cache (APC)

control cache: memcached

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

master-master replication

master-master replication

master-master replicationmysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

mysqld

control cache: memcached

control cache: memcached

control cache: memcached

control cache: memcached

control cache: memcached

Web 2

local cache (APC)

Page 14: Bitrix clouds without_admins

CloudWatch + Auto Scaling

Web 1

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

Elastic Load Balancing

Web 2 Web N…

Web – автоматическое масштабирование

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

Page 15: Bitrix clouds without_admins

Web – автоматическое масштабирование

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

Автоматически стартуют новые машины, если средняя нагрузка CPU превышает X%Автоматически останавливаются и выводятся из эксплуатации, если средняя нагрузка менее Y%

Page 16: Bitrix clouds without_admins

Быстрое восстановление кэша при рестарте базы

Оптимизирован для Multitenancy приложений с тысячами таблиц

Оптимизирован для сбора статистики по отдельным пользователям

Подробная статистика по медленным запросам

XtraDB и XtraBackup

BLOB, TEXT в таблицах MEMORY (HEAP)

MySQL? Percona Server!

Один из выводов в процессе эксплуатации: используем один из fork’ов MySQL – Percona Server (обратно совместим с MySQL)

Page 17: Bitrix clouds without_admins

Особенности настройки MySQL:auto_increment_incrementauto_increment_offset

Базы в разных датацентрах синхронны, при этом независимы друг от друга: потеря связности между датацентрами может составлять часы, данные синхронизируются после восстановления.Группы пользователей работают в одном датацентре за счет управления балансировщиком.Какие-то данные можно не реплицировать:

SET sql_log_bin = 0 … или …replicate-wild-ignore-table = %.b_sec_session%

Используем master-master репликацию в MySQL

Page 18: Bitrix clouds without_admins

MySQLmaster

ElasticLoad Balancing

Web N…

Web 1

Web 2

MySQLmaster

Web 1

Web 2

Web N…

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

Сценарий 1: авария на одной или нескольких веб-нодах

S3

management, monitoring,

MySQL backup

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

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

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

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

Page 19: Bitrix clouds without_admins

Load Balancing определяет вышедшие из строя машиныИсходя из заданных параметров группы балансировки, автоматически восстанавливается нужное количество машин

Сценарий 1: авария на одной или нескольких веб-нодах

Page 20: Bitrix clouds without_admins

MySQLmaster

ElasticLoad Balancing

Web N…

Web 1

Web 2

MySQLmaster

Web 1

Web 2

Web N…

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

Сценарий 1: авария на одной или нескольких веб-нодах

S3

management, monitoring,

MySQL backup

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

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

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

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

Page 21: Bitrix clouds without_admins

MySQLmaster

ElasticLoad Balancing

Web N…

Web 1

Web 2

MySQLmaster

Web 1

Web 2

Web N…

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

Сценарий 2: потеря связности между датацентрами

S3

management, monitoring,

MySQL backup

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

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

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

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

ElasticLoad Balancing

ElasticLoad Balancing

Page 22: Bitrix clouds without_admins

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

Сценарий 2: потеря связности между датацентрами

Page 23: Bitrix clouds without_admins

MySQLmaster

ElasticLoad Balancing

Web N…

Web 1

Web 2

MySQLmaster

Web 1

Web 2

Web N…

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

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

S3

management, monitoring,

MySQL backup

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

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

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

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

Page 24: Bitrix clouds without_admins

Не бывает«почти круглосуточно»

Технические работы должны проходить незаметно для клиентов:

Сервисные работы

Замена оборудования

Обновления системного ПО

Обновления приложений

Page 25: Bitrix clouds without_admins

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

Сценарий 3: авария или плановые работы с базой

Page 26: Bitrix clouds without_admins

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

Можно – так…

Page 27: Bitrix clouds without_admins

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

Или – так…

Page 28: Bitrix clouds without_admins

Организация системы мониторинга

Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не самописные.

Дежурная смена и/или мгновенные уведомления.

Мониторить – всё.

Но – аккуратно. Тысячи уведомлений будут бесполезны.

Мониторить систему мониторинга. В идеальном мире – распределенная система мониторинга.

Автоматизация типовых реакций.

Page 29: Bitrix clouds without_admins

Помимо стандартных - пишите свои тесты

Пример для MySQL

Page 30: Bitrix clouds without_admins

Автоматизация типовых реакций

Рост / падение LA – автоматическое масштабирование вверх / вниз

Автоматический рестарт «сбойных» сервисов

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

Автоматическое восстановление репликации

Автоматическое переключение траффика в случае аварии на уровне целого ДЦ

Page 31: Bitrix clouds without_admins

event handler

# LA on the serverdefine service{ use local-service host_name ec2-54-227-28-75.compute-1.amazonaws.com service_description Current Load check_command check_nrpe_1arg!check_load! event_handler restart_phpfpms}

define command{ command_name restart_phpfpms command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c restart_phpfpm}

Page 32: Bitrix clouds without_admins

Мониторинг нетипичных характеристик

Наличие бэкапов

Срок делегирования доменов

Срок действия SSL сертификатов

Баланс у провайдера смс-уведомлений

Page 33: Bitrix clouds without_admins

Мониторинг веб-приложения

Лог работы скрипта (>) – обновился за N часов

Лог ошибок работы скрипта (2>) – должен быть пуст

Page 34: Bitrix clouds without_admins

Уведомления – как у нас

Cкрипт, опрашивающий страницу «Problems»

Шлем «дайджест» проблем, а не по одному сообщению на каждое событие

Несколько уровней критичности событий

Разные списки адресатов на разные события

Повтор (через 15 минут, через 2 часа), чтобы не «потерять» уведомление

ОК – если все стало хорошо

Page 35: Bitrix clouds without_admins

Аналитика

Page 36: Bitrix clouds without_admins

«Живая» система – много небольших запросов

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)

Page 37: Bitrix clouds without_admins

Аналитика - MySQL

Одиночные медленные запросы отлавливаются просто. Сложнее мониторить общее состояние системы с большим количеством относительно быстрых запросов.

Page 38: Bitrix clouds without_admins

Поиск узких мест

Pinba, XDebug, XHProf

Page 39: Bitrix clouds without_admins

Приложение всегда работаетв условиях ограниченных ресурсов

Постоянный feedback разработчикам – в автоматическом и полуавтоматическом режиме

Page 40: Bitrix clouds without_admins

Резюме

Систему в облаке можно поддерживать, обходясь минимумом человеческих ресурсов

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

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

• Резервируйте все

• Обязательно используйте системы мониторинга

• Автоматизируйте все типовые действия

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

Page 41: Bitrix clouds without_admins

До 2012 года…

Два основных продукта:

Единственное, что требовало того или иного обслуживания – наш собственный сайт.

Page 42: Bitrix clouds without_admins

В настоящее время…

CRM CDN

бэкапфайлысканер безопасности

??

видеозвонки push

Page 43: Bitrix clouds without_admins

Облачные сервисы

Битрикс24 – SaaS «Корпоративный портал»

Более 7000 наиболее активных порталов

Ускорение сайта – интеграция с CDN

Около 9000 сайтов

Облачный бэкап

Более 7500 сайтов

Анонс новых сервисов осенью 2013

Page 44: Bitrix clouds without_admins

Примерно 2 стойки 42U – если без виртуализации

Два человека – у которых админство не является основной деятельностью

Page 45: Bitrix clouds without_admins

Спасибо за внимание! Вопросы?

Александр Демидов

[email protected]

+7-926-521-3700

@demidov

http://www.1c-bitrix.ru