3. А нужна ли
отказоустойчивость?
Разные классы сайтов и веб-
сервисов:
Домашние странички, личные блоги и т.п.
«Продающие» сайты (интернет-магазины)
Имиджевые сайты (в том числе и
корпоративные)
«Business critical application» - веб-
сервисы, использующиеся в работе
(CRM, учет, таск-менеджмент, почта и т.п.)
Разные стадии проекта:
Инвестиции, развитие
Выход на операционную прибыль
4.
5. Почему сайт должен быть
всегда доступен?
Клиенты и их лояльность (сайт недоступен –
потеряны заказы).
• $ 237 млн. – оборот за 2012 год (по
данным Digital Guru)
• До $ 1 млн. в день – с учетом
выходных, праздников
• Более $ 40 000 (1.3 млн. руб.) – один
час возможного простоя
6. Почему сайт должен быть
всегда доступен?
Индексация сайта поисковыми роботами
• Если сайт при сбое будет отдавать не 50x код, а, например, 200 или
404 – будет проиндексирован его текущий контент (сообщение об
ошибке)
• Частота переиндексации зависит от многих факторов. Возьмем
условно 5 дней для относительно популярного интернет-магазина.
• 60% траффика интернет-магазина – поиск (конверсия 0.5 %), 40%
остального траффика – средняя конверсия 1.1% (исследование
Webprofiters)
• Несложная математика: около 40% заказов – из поиска
• Вы готовы 5 дней (и более) получать на 40% меньше заказов?
7. Почему сайт должен быть
всегда доступен?
Финансовые потери во время рекламных
компаний – вы платите за «холостые» клики
Стоимость контекстной рекламы
Даже если сайт доступен, но работает
медленно, его позиции в результатах поиска
будут ниже (учет поведенческих факторов)
9. Спасет ли SLA провайдера?
Ни один SLA не покроет вашу упущенную выгоду
(прибыль), только расходы на хостинг
Наиболее часто встречается гарантия 99.9%
доступности в SLA
Это – около 9 часов простоя в год
Небольшие слоты (до 5 минут) никто не считает
Ребут сервера, скорее всего, не попадает под SLA.
А если это база данных, она может стартовать
несколько часов после аварийного завершения.
10. «Хитрости» SLA
$25 / месяц
Elastic Load Balancing
CloudWatch CloudWatch
Web 1 Web 2 +
Web N Web 1 Web 2 +
Web N
… …
AutoScaling AutoScaling
S3
mysqld mysqld
master-master replication
mysqld mysqld
mysqld mysqld
mysqld master-master replication mysqld
mysqld mysqld
mysqld mysqld mysqld mysqld
control cache: memcached control cache: memcached
master-master replication
mysqld mysqld
control cache: memcached control cache: memcached
mysqld mysqld
control cache: memcached control cache: memcached
$5000 / месяц
11.
12. Веб-кластер
Веб-сервер 1 Веб-сервер 2
MySQL MySQL
memcached 1 memcached 1
master slave
14. Ручные операции для восстановления
master’а MySQL или другой СУБД
Балансировщик (клиентские запросы
по HTTP)
Веб-сервер 1 Веб-сервер 2
MySQL MySQL
memcached 1 memcached 1
master slave
15. Высокие требования к сети, связность
серверов друг с другом
SQL-балансировщик
База данных MySQL База данных MySQL База данных MySQL База данных MySQL
MASTER SLAVE 1 SLAVE … SLAVE N
16.
17.
18. Аварии на уровне целого датацентра или
интернет-канала
Балансировщик (клиентские запросы
по HTTP)
Веб-сервер 1 Веб-сервер 2
MySQL MySQL
memcached 1 memcached 1
master slave
19. Резервирование на уровне ДЦ
Чтобы избежать «холостой» работы половины
ресурсов, каждый ДЦ обслуживает свою группу клиентов
Elastic Load Balancing Elastic Load Balancing
CloudWatch CloudWatch
Web 1 Web 2 +
Web N Web 1 Web 2 +
Web N
… …
AutoScaling AutoScaling
mysqld mysqld
master-master replication
mysqld mysqld
mysqld mysqld
mysqld master-master replication mysqld
mysqld mysqld
mysqld mysqld mysqld mysqld
control cache: memcached control cache: memcached
master-master replication
mysqld mysqld
control cache: memcached control cache: memcached
mysqld mysqld
control cache: memcached control cache: memcached
20. Не бывает
«почти круглосуточно»
Технические работы должны
проходить незаметно для
клиентов:
Сервисные работы
Замена оборудования
Обновления системного
ПО
Обновления приложений
27. С чего начать?
Внешние системы:
http://host-tracker.com/
Яндекс.Метрика
И т.д.
Зачастую можно найти бесплатные варианты.
Вы быстро узнаете об отказах, но не будете знать, где
они произошли и почему.
28. Организация системы
мониторинга
Дежурная смена и/или мгновенные уведомления (да, это
будет стоить дополнительных денег).
Необходимо автоматизировать типовые действия при
авариях. Иначе сайт будет простаивать до реакции админа.
Мониторить – всё. Необходимо составить список всех
критических точек в системе и отслеживать их состояние.
Мониторить не только состояние серверов – сроки
регистрации доменов, SSL сертификатов и т.п.
29.
30. 18 февраля 2013
Оборот за 2012 год - $379 млн.
До суток простоя – более $1 млн.
31. Аналитика – со стороны
пользователя
Мало знать «среднюю температуру по больнице» и
мониторить только главную страницу сайта
Гистограммы распределения времени хитов, кодов
ответа и т.п. – из логов (awk-скрипт), pinba или других
инструментов
32.
33. Ключевые страницы – не только
доступные, но и быстрые
Замедление загрузки
страницы на 1 секунду
снижает конверсию на 7%, а
количество просмотров - на
11%.
34. Не забывайте «сохраняться»
Исследование Strategic Research Institute
30% предпринимателей после утраты
данных прекращают
предпринимательскую деятельность в
течение года.
60% предпринимателей, потерявших ВСЕ
данные, прекращают
предпринимательскую деятельность в
течение 6 месяцев после этого.
35. Резюме
Ваш сайт должен быть максимально доступен – в
разумных пределах
• Резервируйте критичные узлы – исходя из необходимости и
экономики
• Важно не только запустить проект, но и грамотно его
эксплуатировать – иметь систему мониторинга
• Доступность проекта зависит не только от инфраструктуры, но и
от кода, внешних сервисов и т.п.
• Имейте резервные копии и умейте быстро из них
восстанавливаться