目次
SLOのコンセプト
信頼できるアプリケーションパフォーマンスのためのSLO向上
効果的なアプリケーションパフォーマンスとネットワークインフラが継続的なサービス提供と高い顧客満足度につながります。これを達成するためには、アプリケーションのKPIであるサービスレベル指標(SLI)を定義、監視、評価することが重要となります。
KPIを定義したら、サービスレベル目標(SLO)を設定して監視を行います。サービスレベル同意(SLA)はITサービスプロバイダーとユーザー間で交わされる同意です。この目標はSLOより達成しやすい水準に設定されます。
ユースケース:SLO監視による高トラフィックイベント発生時のSLA確認
Eコマースプラットフォームではフラッシュセールスのような高トラフィックイベントによりパフォーマンスで遅延が発生することがあります。サービスレベルを維持するために、アプリケーションパフォーマンス監視(APM)とネットワーク監視ツールの両方を使用し、アプリケーションとネットワークインフラの正常性を追跡しています。
SLAのコミットメントを確保するには、APMとネットワーク監視の両方で、内部SLOを設定して追跡することが重要です。
APMではチェックアウトプロセスといった重要なユーザーアクション時に遅延が発生するのを検知します。また、ネットワーク監視では、データセンター接続における大きな遅延といった問題を特定します。
監視ツールにSLOを作成し、バーンレートやエラー予算といったSLOメトリックを追跡することで、パフォーマンスのボトルネックを特定します。これにより、トラフィックピーク時にもアプリケーションの可用性とパフォーマンスを維持することに繋がり、顧客満足度をSLAに準拠するようにできます。
SLOの導入
SLOを導入するステップは次のとおりです。
-
KPIの定義
まず初めに、信頼性のゴールに到達するために計測する値をKPIとして定義します。KPIを定義することでSLIを設定でき、そのSLIに基づいてSLOを定めることができます。
例として、EコマースプラットフォームのKPIには次のものが挙げられます。
- アプリケーションの応答時間:アプリケーションがユーザーのリクエストの応答に要した時間です。
- ネットワーク可用性:ネットワーク接続におけるアップ時間の割合です。
KPIは計測可能な値で、会社やシステムが目標を達成するための指標になります。SLO監視では、KPIでサービスパフォーマンス、信頼性、コンプライアンスを追跡します。
-
SLIはサービス正常性を示すKPIから取得された定量的な尺度です。
例として、上記のKPIに対するSLIは次のものが挙げられます。
-
アプリケーション応答時間:200ミリ秒以下
-
ネットワーク可用性99.9%以上
これらSLIはSLO追加ページで指定でき、またそこで下記の評価方法を選択できます。
SLI計算は評価方法に基づいて行われます。
- 時間ベース評価
期間でSLIを計測する方法です。指定した期間内のサービスアップ時間と応答時間を追跡します。
SLI =(準拠していた時間 / 監視時間の合計)* 100
上記の例場合、30日間の期間でネットワークが99.9%稼働していた必要があります。
- 時間枠ベース評価
小さい間隔(1時間など)で時間を分けて、それぞれの枠でサービスパフォーマンスを評価します。指定した枠でパフォーマンスが良かった場合、成功したイベントとして枠全体がカウントされます。
SLI = ∑ ((1つの枠で準拠していた時間 / 1つの枠の合計時間) *100)
これにより5秒ごとのアプリケーション応答時間を評価できます。
-
数ベース評価
操作(トランザクション、APIリクエスト)の数全体に対する成功した操作の割合を評価できます。
SLI =(成功したイベント数 / 全体のイベント数)* 100
この方法はアプリケーションの可用性の評価に使用されます。
-
エラー予算の計算
エラー予算はSLO違反に達するまでのダウンタイムや障害数です。
上記の例で、EコマースプラットフォームのSLO対象が98%と設定されてい場合、アプリケーションとネットワークのこの値は2%となります。
エラー予算がある場合はSLOに準拠います。またSLO違反まで残りどれだけ余裕があるかを把握できます。
エラー予算の計算には次の時間枠が使用されます。
- 時間枠の合計:選択した期間の全体の時間です(例:週の場合は7日間、月の場合は30日間)
- 計算された時間枠:期間の開始から現在の日時までの経過時間です。
今週または今月を選択した場合、時間枠の合計と計算された時間枠は同じになります。
-
バーンレートの監視
バーンレートはエラー予算の消費速度を表します。バーンレートが1より大きい場合、エラー予算の消費が速く、SLO違反のリスクが発生していることを表します。
例として、期間ないで4800アプリケーションの障害が発生し、エラー予算が5000であった場合、バーンレートは次のように計算されます。
バーンレート = 実際のエラーレート / エラー予算
4800 / 5000 = 0.96
バーンレート「0.96」はサービスがSLOの安全圏にあることを意味します。
値の意味:
バーンレート = 0:エラー予算に変更がありません
バーンレート < 1:安全圏の範囲内でエラー予算が消費しています
バーンレート = 1:エラー予算がすべて使い果たされた状態です
バーンレート > 1:エラー予算が超過しSLO違反が発生する状況です
-
エラー時間の計算
アプリケーションやネットワークの障害が発生した場合でもエラー時間が超過していない場合、そのアプリケーションはユーザーが利用し続けられ、SLO違反は発生しません。
SLO違反が発生していないがサービスに障害が発生している期間をエラー時間と表します。
エラー時間 = (エラー予算 / 100) × 期間の合計
期間の合計が7日(168時間)の例は次のとおりです。
エラー時間 =(5 / 100) x 168 = 8.4時間
上記はアプリケーションに障害が発生していても、8.4時間までならSO違反が発生しないことを表します。
SLOを設定することは、サービス正常性を監視しアプリケーションの信頼性維持することに繋がります。KPIを定義し、SLIを設定し、エラー予算とバーンレートを追跡することで、サービスの最適なパフォーマンスを維持できます。
これらのプラクティスにより、ユーザーに影響が及ぶ前に問題を特定し解決することで、顧客満足度の上昇に繋げられます。
関連ガイド