Google Cloud アーキテクチャ フレームワークのこのドキュメントでは、サービスレベル目標(SLO)を理解して作成するために必要なコンセプトを定義しています。
基本的に、SLO はユーザーに提供するサービスの信頼度目標を反映したものとなります。これらの目標を定める際には、重要な関係者全員からの意見を取り入れることが重要です。さまざまなグループと管理レベルがサービスへの強い関心を持っています。これには、ビジネス オーナー、プロダクト オーナー、経営幹部、エンジニア、サポート スタッフ、オペレーション、営業、サービスに関連するその他のチームが含まれます。
選択すべき信頼度の目標が何通りもあり、関係者からの意見を得る方法はたくさんあります。最終的に目標をどのように選択するかは、要件、関係者、その他の要因に基づいてお客様と組織が決定します。このプロセスはこのガイドの範囲外ですが、SLO とその開発方法を記述した共有ドキュメントを作成するという簡単な方法があります。SLO を実装し、継続的に改善するにあたり、チームがドキュメントを繰り返し使用できます。
以下のセクションでは、SLO のさまざまなコンポーネントを定義します。
サービスレベル
サービスレベルとは、サービスがユーザーのために期待される作業をどの程度行えているかを測定したものです。この指標はユーザーの満足度の観点から説明でき、サービスの固有の特性、ユーザーベース、ユーザーの期待に応じて、さまざまな方法で測定できます。このガイドでは、パフォーマンスとシステムの信頼度を関連付けます。
サービスレベルの例: ユーザーがサービスを迅速に利用できることを期待しています。
サービスレベル指標
サービスレベル指標(SLI)は、定量的に測定可能なユーザーの満足度の指標です。インジケーターは、サービスの改善や低下に伴い経時変化するグラフ上の線と考えることができます。サービスレベルを評価するには、ユーザーの満足度を表す指標を選択します。可用性はよくある SLI です。
SLI の例: 過去 10 分間に成功したリクエストの数を、同じ期間内のすべての有効なリクエストの数で割った値。
この例の SLI は具体的かつ明確に定義されており、数値として表現されます。この値は、サービスの可用性を反映しています。この SLI を一定期間追跡することで、チームはサービスの全体的な可用性を判断できます。
SLI の選択について詳しくは、SLI を選択するをご覧ください。
サービスレベル目標
サービスレベル目標(SLO)は、SLI によって測定されるサービスが達成することを期待される目標範囲です。次の例では、応答時間(サービスの速度)を SLI として使用します。
SLO の例: 14 日間にわたって測定されたすべての有効なリクエストの 95% で、サービスのレスポンスが 400 ミリ秒(ms)より早い。
この SLO の例の SLI は、400 ミリ秒より早いリクエストの数を有効なリクエスト数で割った値です。この割合は 14 日間にわたってトラッキングされます。目標は、すべてのリクエストの 95% を満足させることです。つまり、最終結果(基準を満たすリクエストの割合)が 95% を超えると、サービスの SLO を満たしたことになります。
まとめると、SLI はサービスの測定値(速度、可用性、成功など)です。SLO は、これらの測定値の具体的な量(割合)が所定のレベルまたは範囲を満たしている、または超えるという期待値です。期待されるレベルを下回る場合は、不良となります。特定のパフォーマンス領域で、ユーザーに信頼できるサービスを提供できていません。
SLO の選択の詳細については、SLO を選択するをご覧ください。
サービスレベル契約
サービスレベル契約(SLA)は、お客様とサービス プロバイダ、お客様の顧客との間の契約です。これは、お客様が約束している SLO と最終的に期待される SLO をリストにしたものです。SLA では、SLO が満たされなかった場合の処理も指定します。SLO が守られなかった場合、サービス プロバイダは払い戻しや割引サービスを提供します。より重要なサービスでは、法的措置や懲罰的損害賠償が発生する可能性があります。
このガイドでは、SLA について詳しく説明しません。SLA に言及しているのは、SLO、SLI、ユーザーの理解を補強するためです。
エラー バジェット
SLO の話の中で理解しておく必要がある最後の値は、SLO 違反とならない範囲でサービスが耐えられる、好ましくないイベントの割合または数です。この数値はエラー バジェットと呼ばれ、ビジネスで予測および許容できるエラーの量を定義するものです。
ここでは、SLI(割合で表される)を可用性として使用します。割合の 3 個以上の「9」は、その SLI の測定精度を示します。つまり、「9」の数は可用性の割合を表します。
SLO は 9 が 3 個の 99.9% であるとします。100% から SLO 値を差し引いたエラー バジェットは 0.1% になります。可用性に関する 0.1% のバジェットは、サービスが利用できない期間が年間 9 時間を少し下回ることを意味します。さらに 9 が増えると、エラー バジェットが大幅に減少します。可用性が 99.99%(9 が 4 個)となると、サービス停止時間は 1 時間未満になります。
ダウンタイムには、リクエストの失敗、障害(クラッシュやソフトウェアのバグ)や設計(アップグレードやテスト)、人為的ミス、事故などによるサーバー ダウンタイムが含まれます。
次のステップ
- SLO を選択するを確認する。
- アーキテクチャ フレームワークの他の柱の推奨事項を確認する。
- Cloud アーキテクチャ センターで、リファレンス アーキテクチャ、図、ベスト プラクティスを確認する。