Как рассчитать составное соглашение об уровне обслуживания (SLA) для облачных сервисов?

27

Облачные сервисы , размещенные на Amazon Web Services , Azure , Google и большинство других опубликовать S е р в L Evel A пылевом , или соглашение об уровне обслуживания для отдельных услуг , которые они предоставляют. Архитекторы, инженеры платформ и разработчики несут ответственность за их объединение для создания архитектуры, обеспечивающей хостинг для приложения.

Взятые в отдельности, эти службы обычно предоставляют что-то в диапазоне от трех до четырех девяток доступности:

  • Диспетчер трафика Azure: 99,99% или «четыре девятки».
  • SQL Azure: 99,99% или «четыре девятки».
  • Служба приложений Azure: 99,95% или «три девять пять».

Однако при объединении в архитектурах существует вероятность того, что какой-либо один компонент может выйти из строя, что приведет к общей доступности, которая не равна услугам компонента.

Наличие серийного соединения

Серийный доступ

В этом примере есть три возможных режима отказа:

  • SQL Azure не работает
  • Служба приложений не работает
  • Оба вниз

Поэтому общая доступность этой «системы» должна быть ниже 99,95%. Мое обоснование заключается в том, что SLA для обеих служб:

Услуга будет доступна 23 часа из 24

Затем:

  • Служба приложений может быть недоступна с 01:00 до 02:00.
  • База данных между 0500 и 0600

Обе составные части находятся в пределах своего SLA, но общая система была недоступна в течение 2 часов из 24.

Последовательная и параллельная доступность

Последовательная и параллельная доступность

В этой архитектуре существует большое количество режимов отказа, однако, в основном:

  • SQL Server в RegionA не работает
  • SQL Server в RegionB не работает
  • Служба приложений в RegionA не работает
  • Служба приложений в RegionB не работает
  • Диспетчер трафика не работает
  • Комбинации выше

Поскольку Traffic Manager является прерывателем цепи, он способен обнаруживать перебои в любом регионе и направлять трафик в рабочий регион, однако в форме диспетчера трафика по-прежнему существует единая точка отказа, поэтому полная доступность «системы» не может быть выше, чем 99,99%.

Как можно рассчитать и документировать составную доступность двух вышеуказанных систем для бизнеса, что может потребовать переархитектуры, если бизнес желает иметь более высокий уровень обслуживания, чем архитектура может обеспечить?

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

Ричард Слейтер
источник
Самый низкий SLA от SPOF, если ваше приложение способно справиться с разрывом сеанса?
Тенсибай
1
@Tensibai - я не думаю, что это может быть, основываясь на моем первом примере, если SLA для обеих служб будет доступен 23 часа из 24, тогда служба приложений может быть недоступна между 0100 и 0200, а база данных - между 0500 и 0600, обе составные части находятся в пределах своего SLA, но общая система была недоступна в течение 2 часов из 24. Имеет смысл?
Ричард Слейтер
Да, имеет смысл, но в этом случае результат должен быть продуктом всех нет?
Тенсибай
Я имею в виду приложение 99,95 х sql 99,95 должно быть общая доступность группы
Tensibai
Помните также, что вы можете построить систему, которая будет более надежной, чем ее компоненты, путем повторных попыток, отработки отказа или ухудшения состояния вместо полного отказа.
Xiong Chiamiov

Ответы:

19

Я бы воспринял это как математическую проблему, поскольку SLA - это вероятность быть в порядке.

В этом случае мы можем положиться на правила вероятности, чтобы получить общее.

В первом случае вероятность того, что служба приложений (A) и служба Sql (B) будут недоступны одновременно, является продуктом их вероятности:

P(A)*P(B) = 0.0005 * 0.0005 = 0,00000025

Вероятность того, что один из них не работает, является суммой их вероятности:

P(A)+P(B) = 0.001

Когда два события независимы, результирующая формула для учета вероятности того, что оба события будут недоступны:

P(A,B) = P(A) + P(B) - P(A)*P(B) = 0.001 - 0,00000025 = 0,00099975

Таким образом, общий SLA будет 1 - 0,00099975 = 0,99900025в процентах99.900025 %

Упрощение является продуктом первой вероятности: 0.9995 * 0.9995 = 0,99900025.

Применительно к вашему отключению в течение 1 часа / 24 часа (4 166 66% в день) это дает (десятичные дроби сокращены):

0.0416 + 0.0416 - (0.0416 * 0.0416) = 0,081597222

Так что вероятность быть в порядке 1 - 0.0816 = 0.9184в процентах:91,84%

24 * 0.0816 = 1.95 h

Это меньше, чем наихудший случай за 2 часа, потому что есть вероятность, что оба не работают одновременно.

Имея это в виду, вы можете заметить наличие каждого из них 95,84%и 0,958333333 * 0,958333333 = 0,918402778который является нашим 91.84%сверху (извините за полные десятичные числа здесь, но они необходимы для демонстрации)

Теперь для вашего второго случая мы начнем извлекать выгоду из нашей составной вероятности для каждого региона (извините, я отклонил изменение для SQL, чтобы оно оставалось разумным), предполагая, что не существует независимой вероятности для самого региона и что каждый регион изолирован и как таковой сбой БД сбивает только его регион.

У нас есть диспетчер трафика с вероятностью ОК, P(T) = 0.9999и каждое приложение + пара БД с вероятностью ОК P(G) = 0,99900025из

Сколько регионов мы играем роль, поскольку мы должны применить произведение вероятности отказа только для того, чтобы получить вероятность того, что оба региона не работают одновременно,
0,00099975 * 0,00099975 = 0,0000009995000625что означает общую доступность по крайней мере одного региона99,049375 %

Теперь у нас есть общая доступность регионов, а продукт с диспетчером трафика дает нам общую доступность системы:

0.9999 * 0,9999990004999375 = 0,99989900059988750625

Общая доступность 99.989900 %

Другой источник в качестве объяснения доступен на документах Azure (ссылка любезно предоставлена Радж Рао )

Tensibai
источник
Общая доступность кажется очень низкой - на самом деле, добавляя дополнительный регион и диспетчер трафика, SLA становится на порядок ниже, чем если бы это был только один регион. Я пытаюсь выяснить, как я делал это для сетей из глубины моего мозга.
Ричард Слейтер
Уф! Я был уверен, что схожу с ума.
Ричард Слейтер
Математика @RichardSlater исправлена
Tensibai
2
@BruceBecker, вероятно, да, на самом деле, кажется, что IEEE опубликовал исследование по этой теме, я подозреваю, однако, учитывая цель вычисления этих чисел, это больше о наличии конкретных «доказательств» того, что вам нужны или не нужны возможности высокой доступности. добавлены в систему - то есть мы используем эти цифры для принятия решений о прибыльности, основанных на склонности компаний к риску. Построение байесовской модели, возможно, не лучшее использование нашего времени.
Ричард Слейтер
1
@BruceBecker Да, часть проблемы связана (один и тот же центр обработки данных выходит из строя, и оба сервиса находятся внутри него, что должно быть низким), в остальном, я думаю, мы можем с уверенностью предположить, что службы приложений и службы SQL работают на разных системах и вряд ли терпеть неудачу в то же время по той же причине . Чтобы углубиться в математику, потребуется точная документация о том, как устроена архитектура Azure, и поэтому на нее может ответить только кто-то из Microsoft.
Тенсибай
18

Прочитав превосходный ответ Тенсибая , я понял, что раньше у меня была возможность рассчитать это для целей сетевого анализа. Я выкопал свою копию Основы сети высокой доступности Криса Оггерино, и у меня не получилось разобраться с этим, не совсем из первых принципов.

Взятие моего серийного примера непосредственно из ответа Тенсибая - просто случай умножения вероятности доступности каждого компонента другим:

Серийный доступ

Так

99,95% * 99,95% = 99,9%

Расчет его параллельно является немного более сложным , как мы делаем необходимость учитывать , что процент ип доступность будет:

Последовательная и параллельная доступность

Расчет производится следующим образом:

  1. Умножьте ООН наличие двух регионов вместе.

    0,1% * 0,1% = 0,0001%

  2. Преобразуйте это обратно в доступность

    100% - 0,0001% = 99,9999%

  3. Умножьте доступность Traffic Manager на доступность двух регионов.

    99,99% * 99,9999% = 99,9899%

  4. Результатом является доступность всей системы.

    99,9899% близко к 99,99%

Я закончил с использованием Excel для выполнения расчетов, вот значения:

Excel значения

... и формулы ...

Формулы Excel

Ричард Слейтер
источник
1
Вот и все, более простым способом, чем мой (я чувствовал необходимость продемонстрировать математику позади :))
Tensibai
Согласен, ваш ответ действительно хорош для математики.
Ричард Слейтер
SQL Azure составляет 99,99%, а не 99,95%
Джеффри Тан
1
@JefferyTang это (вероятно) было во время написания вопроса / ответа (я точно не помню), и фактическое значение не меняет методологию, чтобы получить ответ на «Как рассчитать составной SLA из SLA отдельных частей», который это реальный вопрос.
Тенсибай