Каково определение «доступности»?

Каково определение «доступности»?
Каково определение «доступности»? - brett_jordan @ Unsplash

В своем исследовании я нашел два противоречащих друг другу определения «доступности» применительно к разработке программного обеспечения и архитектуре. Согласно [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 - среднее время на ремонт.

Подумайте об этих же числах немного по-другому:

  • MTBF - время доступности, в среднем.
  • MTBF + MTTR - это время, которое должно быть доступно, в среднем.

Разделите одно на другое, и часть "в среднем" отменится, и вы получите результат:

time available / time supposed to be available

Это то, о чем в любом случае говорил 2.

Если вы хотите еще больше запутаться в этих различных способах мышления о вероятности, я предлагаю вам прочитать о байесовской вероятности.=


LetsCodeIt, 5 января 2023 г., 18:14