Что такое составной SLA?
Современные системы собираются из множества взаимосвязанных элементов — балансировщиков нагрузки, баз данных, сторонних API, CDN и так далее. У каждого есть собственное соглашение об уровне обслуживания (SLA), выраженное в процентах аптайма, например 99,9%. Составной (совокупный) SLA — это реальная доступность всей системы после того, как все её части соединены вместе. Этот калькулятор объединяет аптайм отдельных компонентов в единый сквозной показатель доступности и переводит его в конкретные значения простоя за день, месяц и год.
Последовательная и параллельная схема
Способ соединения компонентов кардинально влияет на результат. В последовательной схеме (цепочка зависимостей) для успешной обработки запроса должны работать все компоненты, поэтому их доступности перемножаются — итог всегда ниже самого слабого звена. В параллельной (резервированной) схеме система остаётся доступной, пока работает хотя бы один путь, поэтому перемножаются вероятности отказов; резервирование поднимает доступность выше, чем у любого отдельного компонента.
$$A_{\text{total}} = \text{A}_1 \times \text{A}_2 \times \text{A}_3 \times \text{A}_4$$$$A_{\text{total}} = 1 - \left(1-\text{A}_1\right)\left(1-\text{A}_2\right)\left(1-\text{A}_3\right)\left(1-\text{A}_4\right)$$
Как пользоваться калькулятором
Выберите топологию, затем введите процент аптайма каждого компонента (например, 99,95). Поддерживается до четырёх компонентов; оставьте необязательные поля пустыми, если их меньше. В результате вы увидите составную доступность и ожидаемый простой за основные периоды.
Разбор примера
Допустим, ваше приложение зависит от трёх последовательных компонентов, у каждого по 99,9%. Переведём в доли: \(0{,}999 \times 0{,}999 \times 0{,}999 = 0{,}997002999\), то есть 99,7003%. Это простой около 0,2997% — примерно 26,26 часа в год. Соединяя последовательно сервисы с «тремя девятками», вы получаете на выходе всего «две девятки» — именно поэтому так важно резервирование.
Частые вопросы
Почему результат для последовательной схемы ниже каждого из входных значений? Потому что каждая зависимость добавляет вероятность отказа; перемножение чисел меньше единицы всегда уменьшает итог.
Неужели параллельная схема настолько повышает аптайм? Да — два независимых пути по 99% дают \(1 - (0{,}01 \times 0{,}01) = 99{,}99\%\), при условии что отказы действительно независимы.
Что означает 99,9% в пересчёте на время? Около 8,77 часа простоя в год или примерно 43,8 минуты в месяц.