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

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

Upload: cornelia-corbin

Post on 04-Jan-2016

46 views

Category:

Documents


1 download

DESCRIPTION

Как жить в облаке без админов?. Александр Демидов руководитель направления арендных решений «1С-Битрикс». Новый сервер? Нестандартной конфигурации? 5-го января? … Нет, не слышали. Облако!. Быстро! Надежно! Дешево! Неправда…. Надежность «облака». - PowerPoint PPT Presentation

TRANSCRIPT

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

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

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

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

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

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

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

Облако!

Быстро!

Надежно!

Дешево!

Неправда…

Page 4: Как жить в облаке без админов?
Page 5: Как жить в облаке без админов?
Page 6: Как жить в облаке без админов?
Page 7: Как жить в облаке без админов?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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: Как жить в облаке без админов?

CloudWatch + Auto Scaling

Web 1

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

Elastic Load Balancing

Web 2 Web N…

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

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

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

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

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

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

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

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

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

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

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

XtraDB и XtraBackup

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

MySQL? Percona Server!

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

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

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

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

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

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

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

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: Как жить в облаке без админов?

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

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

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

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: Как жить в облаке без админов?

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: Как жить в облаке без админов?

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

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

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

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: Как жить в облаке без админов?

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

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

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

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

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

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

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

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

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

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

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

Можно – так…

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

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

Или – так…

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

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

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

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

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

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

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

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

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

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

Пример для MySQL

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

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

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

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

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

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

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

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

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: Как жить в облаке без админов?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Аналитика

Page 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)

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

Аналитика - MySQL

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

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

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

Pinba, XDebug, XHProf

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

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

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

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

Резюме

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

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

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

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

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

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

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

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

До 2012 года…

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

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

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

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

CRM CDN

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

??

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[email protected]

+7-926-521-3700

@demidov

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