Почему "пять девяток" почти невозможны без деградации UX
Чем ближе система к абсолютной доступности, тем чаще приходится жертвовать качеством UX. И снова поднимается тема фундаментального компромисса. К слову, все мои доклады на конференциях именно про поиск компромиссов в разных аспектах при построении систем.
🎖 Иллюзия непрерывной доступности
Любая распределённая система подвержена сбоям: сетевые задержки, частичные отказы, деградация зависимых сервисов. Стремление к "пяти девяткам" означает, что система должна продолжать отвечать почти всегда, даже если часть компонентов не работает. Но отвечать - не значит работать идеально.
Именно здесь возникает ключевой конфликт: либо пользователь получает быстрый, но неполный или устаревший результат, либо он ждёт (или получает ошибку), пока система восстановит целостность данных и всех зависимостей.
🎖 Контролируемое ухудшение
Один из главных инструментов достижения высокой доступности - мягкая деградация. Система продолжает функционировать, но с урезанным функционалом.
Примеры:
▪️ отключение рекомендаций при недоступности ML-сервиса;
▪️ показ кэшированных данных вместо актуальных;
▪️ упрощённый интерфейс без тяжёлых компонентов.
С точки зрения SLA это победа: сервис доступен.
С точки зрения UX - компромисс: пользователь получает "второсортный" опыт там, где точность данных явно не влияет на финансовые и репутационные потери бизнеса.
Важно, что деградация должна быть предсказуемой и управляемой, иначе она превращается в хаос.
🎖 Запасные пути
Заранее подготовленные сценарии на случай сбоя.
▪️ переход на кэш
▪️ использование реплик или вторичных источников данных
▪️ возврат значений по умолчанию
▪️ очереди и отложенная обработка
Проблема таких сценариев в том, что:
▪️ снижается точность
▪️ устаревшие данные
Например, пользователь видит неполный список заказов. Сервис работает, но доверие к нему может снижаться. Это недопустимо, потому что пользователь начнет делать повторный заказ, а это влечет двойныезаказы и звонки в поддержку. Будет значительно проще показать ошибку вместо неполного заказа и сообщение попробовать заглянуть сюда позднее. Этот функционал критичен, и полумеры здесь не спасут, лучше выбрать полную деградацию. А вот если у каталога отвалился фильтр - это уже не так критично и врят ли потом придется отменять двойные заказы после восстановления, и здесь значения по умолчанию или кеш вполне рабочие варианты.
Канал есть в MAX
Post #153
88
- 👍 1