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
Экономика отказоустойчивости:
сколько стоит час простоя?
Александр Демидов
«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