Доступность: обзор со свободным припоминанием
Подсказки на свободное припоминание через весь раздел доступности. Ответь сначала своими словами — включая арифметику — затем открой образец и сверься: SLO/SLA, девятки и бюджеты ошибок, резервирование и коррелированный отказ, failover и split-brain.
Припоминание бьёт перечитывание. Для каждой подсказки скажи или напиши полный ответ по памяти — включая арифметику — прежде чем откроешь образец. Усилие реконструкции математики SLO, размера резервирования и того, почему failover вызывает split-brain, и заставляет это держаться.
Реконструируй костяк раздела, не подглядывая: как связаны три service-level термина и где ставить каждый, чего стоят девятки и как складывается доступность, что покупает бюджет ошибок, как размерять резервирование и почему реплики в одной AZ не зарезервированы, и как failover может вызвать тот самый сбой, что должен был предотвратить.
- 01Определи SLI, SLO и SLA, скажи, как они связаны, и где ставишь SLO.
- 02Дай таблицу девяток для простоя в месяц и объясни, почему каждая девятка стоит ~10× больше.
- 03Что такое бюджет ошибок и как он меняет поведение команды?
- 04Объясни размер резервирования (N/N+1/N+2), active-active против active-passive и почему реплики в одной AZ не зарезервированы.
- 05Различи failover и отказоустойчивость, объясни split-brain и его починку, и ловушку retry storm.
Если ты смог реконструировать каждый ответ по памяти, ты держишь костяк раздела. Три service-level термина связаны в одну сторону — измеряй SLI, целься в SLO, обещай SLA — и SLO стоит жёстче SLA как раннее предупреждение. Девятки (99,9% ≈ 43 мин/мес → 99,999% ≈ 26 с) стоят порядок каждая, ведь доступность умножается по зависимостям, а бюджет ошибок (100% − SLO) превращает надёжность в тратимый ресурс. Резервирование размеряют до N+1 под пик и размещают в независимых доменах отказа, ведь реплики в одной AZ — это коррелированный отказ, а не резервирование. Failover (реактивный, с окном восстановления) отличается от отказоустойчивости (замаскированной, без окна), и failover, что не отличит мёртв от недостижим, вызывает split-brain — чинится кворумом или fencing, а не лучшими таймаутами — тогда как retry storm на failover укрощают ограниченными таймаутами и ограниченными ретраями с backoff и jitter. Объединяющая идея: доступность ≈ MTBF/(MTBF+MTTR), так что раз отказы неизбежны, лучшая инвестиция обычно — быстрое отрепетированное восстановление — и всё это рассуждение, которое делаешь до инцидента, а не поведение, что обнаруживаешь во время него.
Что-то непонятно?
Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.