5. Почему архитектура должна
отличаться?
Многие из существующих подходов и паттернов не
решают задачу отказоустойчивости и
масштабируемости
Отрасль высоконагруженных приложений молода, и
общепринятые подходы еще не выработаны
12. The 9s - Девятки
Доступность % Отказ в год Отказ в месяц Отказ в неделю
90% («одна девятка») 36.5 дней 72 часов 16.8 часов
95% 18.25 дней 36 часов 8.4 часов
97% 10.96 дней 21.6 часов 5.04 часов
98% 7.30 дней 14.4 часов 3.36 часов
99% («две девятки») 3.65 дней 7.20 часов 1.68 часов
99.5% 1.83 дней 3.60 часов 50.4 минут
99.8% 17.52 часов 86.23 минут 20.16 минут
99.9% («три девятки») 8.76 часов 43.2 минут 10.1 минут
99.95% 4.38 часов 21.56 минут 5.04 минут
99.99% («четыре девятки») 52.56 минут 4.32 минут 1.01 минут
99.999% («пять девяток") 5.26 минут 25.9 секунд 6.05 секунд
14. Связи с внешними сервисами
Каков тип сервиса (party, commercial/public)
Есть ли ограничения по количеству API-вызовов?
Есть ли ограничения по частоте API-вызовов?
Есть ли черные/белые списки?
Каков SLA?
Есть ли публичная ифнормация о качестве соблюдения SLA?
Предоставляет ли сервис данные о своем здоровье?
Предоставляет ли сервис данные напрямую или аггрегирует данные?
Есть ли аналогичные сервисы?
15. Определяем точки отказа приложения
Соединения с базой данных
Подключения к веб-сервису
Конфигурационные файлы
Внутренние взаимодействия
Аутентификация
17. Автономные модули приложения
Имеют высокую доступность
Гибкие и восстанавливаемые
Имеют низкий риск полного отказа
Легко масштабируются репликацией
Предоставляют данные о собственном здоровье
Редко требуют ручного вмешательства
22. Предохранитель в Netflix
Анализирует уровень ошибок (timeout/exception/full queue) в минуту
• Запрос истек по тайм-ауту
• Пул потоков и очередь задач заполнены на 100%
• Клиентская библиотека выбросила исключение на запросе
При превышении критического уровня ошибок выбирает одну из стратегий
обрыва:
• Custom Fallback
• Fail silent
• Fail fast
37. Design for Operations
Сбои будут происходить, это неизбежно
Нужно быть готовыми к сбоям и обеспечить
возможность быстрого восстановления
По возможности, нужно стараться предугадывать
возможные сбои, опираясь на метрики диагностики
38. Модель здоровья - Health Model
Обеспечьте высокий уровень логгирования и сбора диагностики
Введите метрики состояния модуля, минимум три
• Healthy
• Partially Healthy
• Unhealthy
Определите интерфейсы для получения здоровья модуля
Определите интерфейсы для получения детальной диагностики
Определитe интерфейсы для восстановления здоровья
(restart/reimage)
40. Полезные материалы
Failsafe: Guidance for Resilient Cloud Architectures
Failsafe: Architecture and Patterns
Failsafe: Building Scalable, Resilient Cloud Services
43. Внимание, конкурс!
Вопрос: На какие платформы можно
осуществлять трансляцию контента из
Media Services?
• Flash, Silverlight, HTML5
• Android, iOS, Windows Phone, Windows 8
• Smooth Streaming, Apple HLS
• Xbox, IPTV
• Все перечисленные
Ответы пишите в сообществе:
facebook.com/groups/azurerus/