В своем исследовании я нашел два противоречащих друг другу определения «доступности» применительно к разработке программного обеспечения и архитектуре. Согласно [1]:
«Доступность системы может быть рассчитана как вероятность того, что она будет предоставлять указанные услуги в требуемых пределах в течение заданного интервала времени. Применительно к аппаратным средствам существует хорошо известное выражение, используемое для получения устойчивой доступности:
Среднее время безотказной работы/(среднее время безотказной работы+среднее время безотказной работы)
где MTBF относится к среднему времени наработки на отказ, а MTTR относится к среднему времени до ремонта. В мире программного обеспечения эту формулу следует интерпретировать так, что, думая о доступности, вы должны думать о том, что может привести к сбою вашей системы, насколько вероятно, что это произойдет, и что потребуется некоторое время для ее восстановления».
Однако согласно [2]:
«Доступность обычно выражается как отношение или процент времени, в течение которого услуга или компонент услуги фактически доступны для использования заказчиком, к согласованному времени, в течение которого услуга должна быть доступна. Доступность — это сочетание зрелости (отражающей частоту сбой), отказоустойчивость и восстанавливаемость (которая отражает продолжительность простоя после каждого сбоя).Это касается запуска и завершения (выполнения) приложения, обработки в нужное время и в правильном порядке, выполнения случайной обработки , время открытия онлайн-обработки и срок хранения файлов».
Так что же правильно? Источник 1 фактически одобрен в разделе архитектуры IEEE SWEBOK v3, поэтому его следует считать каноническим. Однако стандарт ISO/IEEE также является каноническим. Значит ли это, что доступность рассчитывается как среднее время до отказа, среднее время до отказа плюс среднее время до ремонта? или простое соотношение времени безотказной работы и согласованного/целевого времени безотказной работы?
1 - Басс, Лен и др. Архитектура программного обеспечения «Понимание атрибутов качества» на практике. Третье изд., Pearson Education, Inc., 2012. с. 98
2 - ISO/IEC/IEEE 24765:2017(E) 3.313 «доступность»
Между определениями есть небольшое несоответствие.
Чтобы показать пример того, как эти два определения могут различаться, рассмотрим гипотетическую компанию, которая отключает свои серверы на 8 часов каждый вторник, чтобы выполнить техническое обслуживание, которое учитывается в их SLA. В противном случае система должна работать.
7 дней в неделю * 24 часа в сутках * 60 минут в часе = 10080 минут в неделю
8 часов простоя * 60 минут в часе = 480 минут.
10080 – 480 = 9600.
Компания обещает 9600 минут безотказной работы в неделю.
Однако в дополнение к запланированному простою система иногда дает сбой. Предположим, что он падает 20 раз в неделю и каждый раз перезагружается за 4,81 минуты.
(24x7) MTBF = 10080 минут в неделю / 20 сбоев в неделю = 504 MTBF в минутах
(SLA) MTBF = 9600 минут в неделю / 20 сбоев в неделю = 480 MTBF в минутах
504/(504+4,81) = ~0,99054656944 = ~99,0547%
480/(480+4,81) = ~0,99007858748 = ~99,0079%
Однако, используя вторую формулу, основанную на СОГЛАСОВАНОМ времени безотказной работы, представляет собой простой процент времени безотказной работы по сравнению со временем простоя.
20 сбоев в неделю * 4,81 минуты = 96,2 минуты простоя.
(9600-96,2)/9600 = ~0,98997916666 = ~98,9979% времени безотказной работы
Итак, представьте себе, что клиент или клиент подает в суд на провайдера, говоря, что они обещали «две девятки» времени безотказной работы в SLA, утверждая, используя последнее определение, что они обеспечивают только одну девятку времени безотказной работы.
Я согласен, что это маловероятный пограничный случай, который становится еще менее вероятным, если мы рассчитываем среднее время безотказной работы с учетом запланированного времени простоя (которого обычно нет), но можно представить себе судебный процесс (например, нарушение SLA), зависящий от этого.
Начиная с 1:
MTBF/(MTBF + MTTR)
MTBF означает среднее время между отказами, а MTTR - среднее время на ремонт.
Подумайте об этих же числах немного по-другому:
Разделите одно на другое, и часть "в среднем" отменится, и вы получите результат:
time available / time supposed to be available
Это то, о чем в любом случае говорил 2.
Если вы хотите еще больше запутаться в этих различных способах мышления о вероятности, я предлагаю вам прочитать о байесовской вероятности.=