クラウドサービスの複合サービスレベル契約(SLA)をどのように計算しますか?


27

が主催するクラウドサービスAmazon Webサービスアズールグーグルや他のほとんどは公開S ervice L EVEL A greementそれらが提供する個々のサービスのために、またはSLAを。アーキテクト、プラットフォームエンジニア、および開発者は、これらを組み合わせて、アプリケーションのホスティングを提供するアーキテクチャを作成する責任があります。

これらのサービスは、単独で使用すると、通常、3〜4の範囲の可用性を提供します。

  • Azure Traffic Manager:99.99%または「フォーナイン」。
  • SQL Azure:99.99%または「フォーナイン」。
  • Azure App Service:99.95%または「スリーナインファイブ」。

ただし、アーキテクチャで一緒に組み合わせると、いずれかのコンポーネントが停止し、コンポーネントサービスとは異なる全体的な可用性が得られる可能性があります。

シリアル化合物の可用性

シリアルアベイラビリティ

この例には、次の3つの障害モードがあります。

  • SQL Azureがダウンしています
  • App Serviceがダウンしています
  • 両方ともダウンしています

したがって、この「システム」の全体的な可用性は99.95%未満でなければなりません。これを考える私の理由は、両方のサービスのSLA が次のようになっている場合です

サービスは24時間のうち23時間利用可能です

次に:

  • App Serviceは0100〜0200の間にある可能性があります
  • 0500から0600の間のデータベース

両方のコンポーネント部分はSLA内にありますが、システム全体は24時間のうち2時間利用できませんでした。

シリアルおよびパラレルの可用性

シリアルおよびパラレルの可用性

このアーキテクチャには、主に次のような多数の障害モードがあります。

  • RegionAのSQL Serverがダウンしています
  • RegionBのSQL Serverがダウンしています
  • RegionAのApp Serviceがダウンしています
  • RegionBのApp Serviceがダウンしています
  • Traffic Managerがダウンしています
  • 上記の組み合わせ

Traffic Managerはサーキットブレーカーであるため、いずれかの地域の停止を検出し、トラフィックを作業領域にルーティングすることができますが、Traffic Managerの形式には単一障害点があるため、「システム」の全体的な可用性は99.99%を超えます。

上記の2つのシステムの複合可用性をビジネス向けに計算および文書化するにはどうすればよいですか?

図に注釈を付けたい場合は、Lucid Chartでそれらを作成し、多目的リンクを作成しました。誰でも編集できるので、注釈を付けるページのコピーを作成することをお勧めします。


アプリがセッションの中断に対処できると仮定した場合のSPOFからの最低SLA?
テンシバイ

1
@Tensibai -私は私の最初の例に基づいて、それができるとは思わない場合は、両方のサービスのSLAが、それは、その後、アプリケーションサービスが間から0100と0200とデータベースの間で可能性が24のうち、23時間利用できるようになりました0500および0600、両方のコンポーネントパーツはSLA内ですが、システム全体は24時間のうち2時間利用できませんでした。
リチャードスレーター

うん、理にかなっていますが、この場合、結果はすべての製品ですか?
テンシバイ

つまり、アプリ99.95 x SQL 99.95がグループの全体的な可用性になるはずです
-Tensibai

また、完全な障害の代わりに再試行、フェールオーバー、または劣化を行うことにより、コンポーネントよりも信頼性の高いシステムを構築できることにも留意してください。
熊Chiamiov

回答:


19

私はそれを数学の問題として、SLAがOKである確率であると考えています。

この場合、確率規則に依存して全体を取得できます。

最初のケースでは、App Service(A)とSql Service(B)が同時にダウンする確率は、それらの確率の積です。

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

それらの1つがダウンしている確率は、それらの確率の合計です。

P(A)+P(B) = 0.001

2つのイベントが独立している場合、両方のイベントがダウンする確率を考慮する結果の式は次のとおりです。

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時間の停止(1日の4,166666%)に適用されます(10進数は省略されます)。

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

したがって、OKになる確率は1 - 0.0816 = 0.9184パーセントで表されます。91,84%

24 * 0.0816 = 1.95 h

両方が同時にダウンする可能性があるため、これは最悪の場合である2時間よりも短くなります。

心の中で、あなたはそれぞれの利用可能性に気づくことが維持することである95,84%0,958333333 * 0,958333333 = 0,918402778私たちである91.84%(ここでは完全な小数のため申し訳ありませんが、彼らはデモのために必要とされる)上から

2番目のケースでは、領域ごとに独立した確率がなく、各領域が隔離されていると仮定して、各領域の複合確率からゲインを開始します(合理的な状態を維持するためにSQLの変更を却下しました) DBに障害が発生すると、その領域のみがダウンします。

トラフィックマネージャーのOK確率がP(T) = 0.9999あり、各アプリとDBのカップルはOK確率P(G) = 0,99900025から

両方の領域が同時にダウンする確率を得るためだけに、故障確率の積を適用する必要があるので、どの程度の領域が役割を果たします
0,00099975 * 0,00099975 = 0,0000009995000625か。つまり、少なくとも1つの領域の全体的な可用性を意味します。99,049375 %

これで、リージョン全体の可用性が得られました。TrafficManagerを備えた製品は、システムの全体的な可用性を提供します。

0.9999 * 0,9999990004999375 = 0,99989900059988750625

全体的な可用性は 99.989900 %

説明としての別のソースは、Azureのドキュメントで入手可能です(Raj Raoの好意によるリンク)


全体的な可用性は非常に低いようです。実際、追加のリージョンとトラフィックマネージャーを追加することにより、SLAは単一のリージョンである場合よりも桁違いに低くなります。私は私の脳の後ろからネットワークのためにこれを行う方法を掘ろうとしています。
リチャードスレーター

ふう!私は怒っていたと確信していた。
リチャードスレーター


2
@BruceBeckerはおそらくはい、IEEEがこのトピックに関する研究を公開しているように見えますが、これらの数値を計算する目的を考えると、高可用性機能を必要とする、または必要としない具体的な「証明」を持つことですシステムに追加されました。つまり、これらの数値を使用して、企業のリスク選好度に基づいて費用対効果を決定します。ベイジアンモデルを構築することは、私たちの時間を最大限に活用できるとは限りません。
リチャードスレーター

1
@BruceBeckerはい、問題の一部は結び付けられています(同じデータセンターがダウンし、両方のサービスがその中にありますが、これは低くなければなりません)。残りについては、アプリサービスとSQLサービスが異なるシステムで実行され、同じ理由で同時に失敗する。数学をさらに進めるには、Azureアーキテクチャの実行方法に関する正確なドキュメントが必要になるため、Microsoftの誰かしか答えられません。
テンシバイ

18

Tensibaiの優れた答えを読んだ後、ネットワーク分析の目的でこれを計算することができたことがわかりました。Chris OggerinoによるHigh Availability Network Fundamentalsのコピーを掘り下げ、最初のプリンシパルではなく、これを解決するのに苦労しました。

Tensibaiの答えから直接私の連続した例を取り上げると、各コンポーネントが利用可能になる確率を他のコンポーネントで乗算するだけの場合です。

シリアルアベイラビリティ

そう

99.95%* 99.95%= 99.9%

私たちがパーセンテージかを検討する必要がそうであるように並行して、それを計算すると、もう少し複雑である国連の可用性がなりますが。

シリアルおよびパラレルの可用性

計算は次のように行われます。

  1. 乗算国連一緒に二つの領域の可用性。

    0.1%* 0.1%= 0.0001%

  2. それを可用性に戻す

    100%-0.0001%= 99.9999%

  3. Traffic Managerの可用性に2つの地域の可用性を掛けます。

    99.99%* 99.9999%= 99.9899%

  4. 結果は、システム全体の可用性です。

    99.9899%は99.99%に近い

計算を実行するためにExcelを使用することになりました。値は次のとおりです。

Excel値

...および式...

Excelの数式


1
それは私のものよりも簡単な方法です(私は背後にある数学を実証する必要性を感じました:))
Tensibai

同意した、あなたの答えは数学にとって本当に良い。
リチャードスレーター

SQL Azureは99.95%ではなく99.99%
Jeffery Tang

1
@JefferyTangそれは(おそらく)質問/回答の執筆時であり(正確には覚えていません)、実際の値は「個々の部品SLAから複合SLAを計算する方法」への答えを得るための方法論を変更しません本当の質問です。
テンシバイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.