Экономика отказоустойчивости: сколько стоит час простоя?

Download Report

Transcript Экономика отказоустойчивости: сколько стоит час простоя?

Slide 1

Экономика отказоустойчивости:
сколько стоит час простоя?
Александр Демидов
«1С-Битрикс»


Slide 2


Slide 3

А нужна ли
отказоустойчивость?
Разные классы сайтов и вебсервисов:
Домашние странички, личные блоги и т.п.
«Продающие» сайты (интернет-магазины)
Имиджевые сайты (в том числе и
корпоративные)
«Business critical application» - вебсервисы, использующиеся в работе (CRM,
учет, таск-менеджмент, почта и т.п.)

Разные стадии проекта:
Инвестиции, развитие
Выход на операционную прибыль


Slide 4


Slide 5

Почему сайт должен быть
всегда доступен?
Клиенты и их лояльность (сайт недоступен –
потеряны заказы).
Пример:
• $ 130 млн. – годовой оборот (по
данным Forbes)
• До $ 0.5 млн. в день – с учетом
выходных, праздников
• Более $ 20 000 – один час возможного
простоя


Slide 6

Почему сайт должен быть
всегда доступен?
Индексация сайта поисковыми роботами


Если сайт при сбое будет отдавать не 50x код, а, например, 200 или
404 – будет проиндексирован его текущий контент (сообщение об
ошибке)



Частота переиндексации зависит от многих факторов. Возьмем
условно 5 дней для относительно популярного интернет-магазина.



60% траффика интернет-магазина – поиск (конверсия 0.5 %), 40%
остального траффика – средняя конверсия 1.1% (исследование
Webprofiters)




Несложная математика: около 40% заказов – из поиска
Вы готовы 5 дней (и более) получать на 40% меньше заказов?


Slide 7

Почему сайт должен быть
всегда доступен?
Финансовые потери во время рекламных
компаний – вы платите за «холостые» клики
Стоимость контекстной рекламы
Даже если сайт доступен, но работает медленно,
его позиции в результатах поиска будут ниже
(учет поведенческих факторов)


Slide 8

Отказы инфраструктуры
Интернет-каналы
DNS
Серверы
Диски
Датацентры


Slide 9

Спасет ли SLA провайдера?

Ни один SLA не покроет вашу упущенную выгоду
(прибыль), только расходы на хостинг
Наиболее часто встречается гарантия 99.9%
доступности в SLA

Это – около 9 часов простоя в год
Небольшие слоты (до 5 минут) никто не считает
Ребут сервера, скорее всего, не попадает под SLA.
А если это база данных, она может стартовать
несколько часов после аварийного завершения.


Slide 10

«Хитрости» SLA
$25 / месяц
Elastic Load Balancing

Web 1

CloudWatch
+
AutoScaling

Web 2

Web N


mysqld
control cache: memcached

master-master replication

mysqld
mysqld
control cache: memcached

mysqld

master-master replication

mysqld

master-master replication

control cache: memcached

mysqld

Web N


mysqld

mysqld

mysqld

CloudWatch
+
AutoScaling

Web 2

S3

mysqld
mysqld

Web 1

mysqld
mysqld
mysqld

mysqld
control cache: memcached

mysqld
control cache: memcached

mysqld

mysqld
control cache: memcached

$5000 / месяц


Slide 11


Slide 12

Веб-кластер

Веб-сервер 1

memcached 1

MySQL
master

Веб-сервер 2

MySQL
slave

memcached 1


Slide 13

«Узкие» места


Slide 14

Ручные операции для восстановления
master’а MySQL или другой СУБД
Балансировщик (клиентские запросы
по HTTP)

Веб-сервер 1

memcached 1

MySQL
master

Веб-сервер 2

MySQL
slave

memcached 1


Slide 15

Высокие требования к сети, связность
серверов друг с другом

SQL-балансировщик

База данных MySQL
MASTER

База данных MySQL
SLAVE 1

База данных MySQL
SLAVE …

База данных MySQL
SLAVE N


Slide 16


Slide 17


Slide 18

Аварии на уровне целого датацентра или
интернет-канала
Балансировщик (клиентские запросы
по HTTP)

Веб-сервер 1

memcached 1

MySQL
master

Веб-сервер 2

MySQL
slave

memcached 1


Slide 19

Резервирование на уровне ДЦ
Чтобы избежать «холостой» работы половины ресурсов,
каждый ДЦ обслуживает свою группу клиентов
Elastic Load Balancing

Web 1

CloudWatch
+
AutoScaling

Web 2

Elastic Load Balancing

Web N

Web 1

CloudWatch
+
AutoScaling

Web 2





mysqld
mysqld
mysqld
control cache: memcached

master-master replication

mysqld

master-master replication

mysqld

master-master replication

control cache: memcached

mysqld
mysqld

control cache: memcached

mysqld
mysqld

mysqld

mysqld

Web N

mysqld
control cache: memcached

mysqld
mysqld
mysqld

mysqld
mysqld

control cache: memcached

mysqld
control cache: memcached


Slide 20

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

Замена оборудования
Обновления системного
ПО
Обновления приложений


Slide 21


Slide 22


Slide 23

Посчитаем стоимость «новой
ИТ-системы»
Оборот за 2012 год - $132 млн. (Digital Guru)

7 суток простоя – около $2.5 млн.
А что с поиском?


Slide 24

«Одноклассники»
4-6 апреля 2013
2.1 млрд. просмотров в сутки до сбоя
1.6 млрд. – в среднем в неделю сбоя
1.9 млрд. – после сбоя

http://corp.mail.ru/adv/price_odnoklassniki.htm

"Испорченный файл был выложен через
централизованную систему управления серверами.
В итоге это повлекло за собой необходимость
перезапуска большой части наших серверов и
переустановку операционной системы", — заявила
пресс-секретарь "Одноклассников" Мария Лапук


Slide 25

Взлетели?

Нагрузочное тестирование - обязательный
этап сдачи проекта.
Нагрузочное тестирование является
важнейшей процедурой подготовки
крупного проекта к открытию.

Нагрузочное тестирование позволяет
определить предел работоспособности
созданного проекта именно на выбранном
оборудовании, а также определить его
критические точки.
Зачастую, простые корректировки конфигурации могут ускорить проект в 5-10
раз и сделать его устойчивым к стрессовым нагрузкам.


Slide 26

Обновления
Сайты часто падают из-за
обновлений
Обновления необходимы
для развития проекта
Чем хуже код, тем выше
вероятность сбоя при
обновлении

Независимый аудит кода и
рефакторинг
Автотесты
Частичная выгрузка на бой


Slide 27


Slide 28

А зачем мониторить веб-проекты?

Клиенты чутко реагируют на доступность и
скорость веб-проекта – днем … и ночью
Вашу веб-систему есть с чем сравнить - Google,

Facebook, Twitter …
Вас рассматривают «под лупой», обсуждая
недостатки в соцсетях и Twitter!


Slide 29

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

Можно – так…


Slide 30

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

Или – так…


Slide 31

С чего начать?
Внешние системы:
http://host-tracker.com/
Яндекс.Метрика

И т.д.
Зачастую можно найти бесплатные варианты.
Вы быстро узнаете об отказах, но не будете знать, где
они произошли и почему.


Slide 32

Организация системы
мониторинга
Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не
самописные.
Дежурная смена и/или мгновенные уведомления (да, это
будет стоить дополнительных денег).
Необходимо автоматизировать типовые действия при
авариях. Иначе сайт будет простаивать до реакции админа.
Мониторить – всё. Необходимо составить список всех
критических точек в системе и отслеживать их состояние.

Мониторить не только состояние серверов – сроки
регистрации доменов, SSL сертификатов, наличие бэкапов и
т.п.


Slide 33


Slide 34

18 февраля 2013
Оборот за 2012 год - $379 млн.
До суток простоя – более $1 млн.


Slide 35

Аналитика
Видим, что было
Предвидим, что будет
Улавливаем тренды
Планируем мощности железа
Сравниваем настройки софта

Веб-система перестает быть черным ящиком, видно ее
развитие с течением времени


Slide 36

Аналитика


Slide 37

Аналитика – со стороны
пользователя
Мало знать «среднюю температуру по больнице» и
мониторить только главную страницу сайта

Гистограммы распределения времени хитов, кодов
ответа и т.п. – из логов (awk-скрипт), pinba или других
инструментов


Slide 38


Slide 39

Ключевые страницы – не только
доступные, но и быстрые
Замедление загрузки
страницы на 1 секунду
снижает конверсию на 7%, а
количество просмотров - на
11%.


Slide 40

Общие принципы организации системы
резервного копирования

Для разных сценариев сбоев – разные бэкапы
Нужно бэкапить файлы и базу данных
Это нужно делать постоянно, а не только перед аварией
Нужно бэкапить конфиги и настройки серверов и софта

Полезно проводить учения по восстановлению системы
Нужно уметь восстанавливаться быстро и уверенно
Восстановление можно частично автоматизировать


Slide 41

Лишь 1 из 10 сайтов имеет «правильный»
бэкап

Изолированность
Целостность
Версионность
Безопасность


Slide 42

Не забывайте «сохраняться»
Исследование Strategic Research Institute
30% предпринимателей после утраты
данных прекращают
предпринимательскую деятельность в
течение года.
60% предпринимателей, потерявших ВСЕ
данные, прекращают
предпринимательскую деятельность в
течение 6 месяцев после этого.


Slide 43

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



Резервируйте критичные узлы – исходя из необходимости и экономики



Доступность проекта зависит не только от инфраструктуры и кода, но и
от внешних сервисов и т.п.



Важно не только запустить проект, но и грамотно его эксплуатировать –
иметь систему мониторинга



Имейте резервные копии и умейте быстро из них восстанавливаться

Отказоустойчивое приложение обеспечивается аккуратной
разработкой, аудитом кода, нагрузочными тестами и системой
обновлений


Slide 44

Спасибо за внимание!
Вопросы?
Александр Демидов

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