Экономика отказоустойчивости веб-проектов
DESCRIPTION
TRANSCRIPT
Экономика отказоустойчивостивеб-проектов
Александр Демидов«1С-Битрикс»
#FailOverConf
Разные классы сайтов и веб-сервисов:
Домашние странички, личные блоги и т.п.«Продающие» сайты (интернет-магазины)Имиджевые сайты (в том числе и корпоративные)«Business critical application» - веб-сервисы, использующиеся в работе (CRM, учет, таск-менеджмент, почта и т.п.)
Разные стадии проекта:Инвестиции, развитиеВыход на операционную прибыль
А нужна ли отказоустойчивость?
Почему сайт должен быть всегда доступен?
Клиенты и их лояльность (сайт недоступен – потеряны заказы).
• $ 237 млн. – оборот за 2012 год (по данным Digital Guru)
• До $ 1 млн. в день – с учетом выходных, праздников
• Более $ 40 000 (1.3 млн. руб.) – один час возможного простоя
Почему сайт должен быть всегда доступен?
Индексация сайта поисковыми роботами
• Если сайт при сбое будет отдавать не 50x код, а, например, 200 или 404 – будет проиндексирован его текущий контент (сообщение об ошибке)
• Частота переиндексации зависит от многих факторов. Возьмем условно 5 дней для относительно популярного интернет-магазина.
• 60% траффика интернет-магазина – поиск (конверсия 0.5 %), 40% остального траффика – средняя конверсия 1.1% (исследование Webprofiters)
• Несложная математика: около 40% заказов – из поиска
• Вы готовы 5 дней (и более) получать на 40% меньше заказов?
Почему сайт должен быть всегда доступен?
Финансовые потери во время рекламных компаний – вы платите за «холостые» клики
Стоимость контекстной рекламы
Даже если сайт доступен, но работает медленно, его позиции в результатах поиска будут ниже (учет поведенческих факторов)
Интернет-каналы
DNS
Серверы
Диски
Датацентры
Отказы инфраструктуры
Спасет ли SLA провайдера?
Ни один SLA не покроет вашу упущенную выгоду (прибыль), только расходы на хостинг
Наиболее часто встречается гарантия 99.9% доступности в SLA
Это – около 9 часов простоя в год
Небольшие слоты (до 5 минут) никто не считает
Ребут сервера, скорее всего, не попадает под SLA. А если это база данных, она может стартовать несколько часов после аварийного завершения.
Web 1
Elastic Load Balancing
Web N
…CloudWatch + AutoScaling
Web 1 Web 2 Web N
…CloudWatch + AutoScaling
«Хитрости» SLA
S3
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
$25 / месяц
$5000 / месяц
Веб-сервер 1
memcached 1
Веб-сервер 2
memcached 1MySQLmaster
MySQLslave
Веб-кластер
«Узкие» места
Балансировщик (клиентские запросы по HTTP)
Веб-сервер 1
memcached 1
Веб-сервер 2
memcached 1MySQLmaster
MySQLslave
Ручные операции для восстановления master’а MySQL или другой СУБД
База данных MySQLMASTER
База данных MySQLSLAVE 1
База данных MySQLSLAVE N
База данных MySQLSLAVE …
SQL-балансировщик
Высокие требования к сети, связность серверов друг с другом
Балансировщик (клиентские запросы по HTTP)
Веб-сервер 1
memcached 1
Веб-сервер 2
memcached 1MySQLmaster
MySQLslave
Аварии на уровне целого датацентра или интернет-канала
Elastic Load Balancing
Web 1
Elastic Load Balancing
Web N
…CloudWatch + AutoScaling
Web 1 Web 2 Web N
…CloudWatch + AutoScaling
Резервирование на уровне ДЦ
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
Чтобы избежать «холостой» работы половины ресурсов, каждый ДЦ обслуживает свою группу клиентов
Не бывает«почти круглосуточно»
Технические работы должны проходить незаметно для клиентов:
Сервисные работы
Замена оборудования
Обновления системного ПО
Обновления приложений
Посчитаем стоимость «новой ИТ-системы»
Оборот за 2012 год - $132 млн. (Digital Guru)
7 суток простоя – около $2.5 млн.
А что с поиском?
Real Time мониторинг – как узнавать о проблемах?
Можно – так…
Real Time мониторинг – как узнавать о проблемах?
Или – так…
С чего начать?
Внешние системы:
http://host-tracker.com/
Яндекс.Метрика
И т.д.
Зачастую можно найти бесплатные варианты.
Вы быстро узнаете об отказах, но не будете знать, где они произошли и почему.
Организация системы мониторинга
Дежурная смена и/или мгновенные уведомления (да, это будет стоить дополнительных денег).
Необходимо автоматизировать типовые действия при авариях. Иначе сайт будет простаивать до реакции админа.
Мониторить – всё. Необходимо составить список всех критических точек в системе и отслеживать их состояние.
Мониторить не только состояние серверов – сроки регистрации доменов, SSL сертификатов и т.п.
18 февраля 2013
Оборот за 2012 год - $379 млн.
До суток простоя – более $1 млн.
Аналитика – со стороны пользователя
Гистограммы распределения времени хитов, кодов ответа и т.п. – из логов (awk-скрипт), pinba или других инструментов
Мало знать «среднюю температуру по больнице» и мониторить только главную страницу сайта
Ключевые страницы – не только доступные, но и быстрые
Замедление загрузки страницы на 1 секунду снижает конверсию на 7%, а количество просмотров - на 11%.
Исследование Strategic Research Institute
30% предпринимателей после утраты данных прекращают предпринимательскую деятельность в течение года. 60% предпринимателей, потерявших ВСЕ данные, прекращают предпринимательскую деятельность в течение 6 месяцев после этого.
Не забывайте «сохраняться»
Резюме
Ваш сайт должен быть максимально доступен – в разумных пределах
• Резервируйте критичные узлы – исходя из необходимости и экономики
• Важно не только запустить проект, но и грамотно его эксплуатировать – иметь систему мониторинга
• Доступность проекта зависит не только от инфраструктуры, но и от кода, внешних сервисов и т.п.
• Имейте резервные копии и умейте быстро из них восстанавливаться
Спасибо за внимание! Вопросы?
Александр Демидов
+7-926-521-3700
@demidov
http://www.1c-bitrix.ru