サービス・レベル目標(SLO)は、一定期間の特定のサービスに対して合意されたパフォーマンス目標です。SLOはサービスの期待されるステータスを定義し、関係者が特定のサービスの健全性を管理し、イノベーションと信頼性のバランスを取りながら意思決定を最適化するのに役立ちます。1
SLOは、サービスのある側面の定量的なメトリクスであるサービス・レベル・インジケーター(SLI)を使用して測定されます。SLOは、サービス・プロバイダーと顧客の間のより広範な契約(サービス・レベル契約(SLA))の一部であり、顧客がプロバイダーに期待できるサービスのレベルを概説し、目標が達成されない場合のペナルティーを明確化します。
サービス・レベルがビジネス要件と顧客の要望に一致するようにするには、サイト信頼性エンジニアリング(SRE)チーム、DevOpsチーム、ITチームおよびその他の関連するチームが、各アプリケーションにおける重要なユーザー・ジャーニー、つまりエンド・ユーザーが目的の結果に到達できるようにするインタラクションを把握する必要があります。
SLO(およびSLA)を成功させるには社内の承認が不可欠であり、製品マネージャー、DevOpsチームおよび問題管理チーム、インフラストラクチャー担当エンジニアなど、複数の関係者がSLOの決定に参加することが欠かせません。フォーカス・グループ、調査、顧客からの苦情、SNSを通じて、外部の関係者も議論に参加することが重要です。
SLOの重要なロジックは、サービスの信頼性がユーザーの満足度につながり、それがより大きなビジネス・チャンスをもたらすというものです。測定可能な信頼性目標を設定すると、組織は快適で効率的なユーザー・エクスペリエンスと合理的なコストのバランスをとることができます。つまり、必要または期待を超えるサービス・レベルでIT予算を超過することがなくなります。
SLOは、サービス品質(QoS)と信頼性の目標を具体的かつ測定可能な客観的な言葉で定義するため必要です。この基準は、最高のパフォーマンス・レベルを定義するものではなく、可能な限り最高のパフォーマンス基準と、最低限受け入れられるパフォーマンス基準の範囲を定義するものである1。
SLOの目的は、米国のコンピューター関連のメディア企業であるO`Reilly Media社が発表したクラウド・エンジニアが知っておくべき97のこと(ibm.com外部へのリンク)にうまくまとめられています。この中で、O`Reilly Media社は次のように述べています。「信頼性、イノベーション速度、コストの間のトレードオフを経営陣が即座かつ理解できるようにするにはどうすれば良いでしょうか。この答えとなるのが、SLOです。SLOは、クラウド・コスト、変更速度、外部リスクの間のトレードオフのバランスをとる明確な信頼性ガイドラインを作成します」。
SLOは、サービス・パフォーマンスの追跡と評価に相互関係する複数の用語の 1 つです。
SLIは、サービスのいくつかの側面の定量的な尺度です。SLIは、エラー率、バッチ・スループット、リクエストのレイテンシーなど、システム・パフォーマンスの測定基準となる実際の数値を提供します。通常、測定値は集計され、レート、平均、またはパーセンタイルとして表示されます。
SLOは、サービス・レベル契約(SLA)を維持するために満たす必要がある測定の目標値(例えば、応答時間が200ミリ秒未満であることを保証するなど)のことです。これらの値は通常、一定期間にわたるパーセンテージとして表されます。
SLAは、ベンダーと顧客間の契約であり、個別のSLOで構成され、サービス・アクティビティー、機能、またはプロセスに対して特定のレベルを保証します。また、合意が守られなかった場合の罰則も定めています。
エラー・バジェットは、契約違反となる前に許容される障害の量を定義するSLOの側面です。エラー・バジェットにより、実際には避けられないサービスの計画的または計画外のダウンタイムを組み込むことができます。ダウンタイムを組み込むことで、開発チームは新しい開発、運用、インストールされたソフトウェアの更新や修正に関して、十分な情報に基づいた決定を下すことができます。
信頼性と応答性は、多くの場合、90%、99%、99.9%など、「100%に向かう9」で測定されます。例えば、CPU可用性目標は次のように示されます。
信頼性レベル | 許容される信頼性の低いウィンドウ | ||
|
|
| |
毎年 | 毎四半期 | 毎30日 | |
90% | 36.5 日 | 9 日 | 3 日あたり |
95% | 18.25 日 | 4.5 日 | 1.5 日あたり |
99% | 3.65 日 | 21.6 日 | 7.2 時間あたり |
99.5% | 1.83 日 | 10.8 時間 | 3.6 時間あたり |
99.9% | 8.76 時間 | 2.16 時間 | 43.2 時間あたり |
99.95% | 4.38 時間 | 1.08 時間 | 21.6 分 |
99.99% | 52.6 分 | 12.96 分 | 4.32 分 |
99.999% | 5.26 分 | 1.30 分 | 26.9 秒 |
|
|
| |
小数点が100に近いほど、通常、達成するにはコストと複雑さが大きくなります。社内外の顧客は、一定レベルの応答性を要求する場合があります。そのレベルを超えると、違いに気付かなくなります。SLOを設定することは、科学と芸術の一部であり、統計的な完全性、飛行効率性、現実的な目標のバランスを取ることと関連しています。
開発チームは新しい機能を提供したいと考えており、運用チームは安定性と品質を提供し、管理された方法で変更を導入したいと考えています。企業は社内外の顧客に製品やサービスを提供するにあたり、顧客の視点からサービス・レベルを測定することが重要です。
SLOは信頼性を中心に組織をまとめるのに役立ちます。最終的には、利害関係者は、速度とサービス品質の効果的なバランスを実現する、顧客向けの測定可能なSLOに合意する必要があります。
基本的なレベルでは、サービス・レベル目標は、サービスの信頼性を確保し、サービス・レベル契約が満たされることを保証するために重要です。SLAを満たしていれば、顧客は満足するはずなので、企業にとっても利益があります。
SLOは外部顧客にとって価値があるだけでなく、内部顧客にとっても貴重な洞察を提供します。SLOは、さまざまなチームがサービスとアプリケーションのパフォーマンスを評価し、改善方法を決定するのに役立ちます。SLOは、他のメリットの中でも、組織に次のようなメリットをもたらします。
信頼性の問題は会社に金銭的な損害を与える可能性があります。SLOが適切に設定されていれば、オブサーバビリティーにおけるギャップを確認して発見することができます。設定されたSLOは、組織内で使用されている複数の監視ツールからの分析情報を一元管理できる唯一の方法かもしれません。オブサーバビリティーが向上すると、より優れた製品の提供、顧客離れの削減、より効率的な運用が可能になります。
SLOとSLIは、サービスとアプリケーションのパフォーマンスに関する洞察を提供し、ダウンタイムやその他の潜在的な問題を正確に測定する手段をチームに提供します。この情報は、既存の製品を更新し、新機能をリリースする際に、イノベーションと信頼性のバランスを取ろうとするDevOpsチームやITチーム、その他の関連チームの役に立ちます。
顧客が体験するマイクロサービスの健全性を測定する、よく考え抜かれたSLOは、製品のパフォーマンスとユーザー・エクスペリエンスに関する貴重な洞察を提供します。
SLOの策定と追跡はどちらも、サービスとそれに関連する期待に対する理解に基づいて組織全体のチームを団結させるのに役立ちます。徹底的に検討されたSLOは、すべての関係者が自分の部署がサービスに何を期待しているかについて意見を述べ、SLAが満たされるようにするための自分の役割を理解するコミュニケーション文化を育みます。
さらに、SLOを使用してレポートを作成し、オートメーションを導入すると、チームの各メンバーがインシデントに関する質問に迅速に回答できるようになります。SLOはDevOpsチームやインフラストラクチャー担当チーム、SREチームにとって重要ですが、企業のほぼすべての側面のトランスフォーメーションも促進します。オブサーバビリティーを通じて収集されたデータは、アクセス可能でコンテキストに沿った実用的な情報に変換できます。これらの分析情報により、チームがタイムリーかつコスト効率の高い意思決定を行うために必要な可視性が提供されます。
目標が明確に定義されていれば、組織はオートメーションを利用してSLIを監視および測定できます。このアプローチは、監視を超えてエンドツーエンドのプロセスを完全に自動化するという目標を掲げ、目標が達成されていることを確認するのに役立ちます。
自動監視システムは、サービス・パフォーマンスがSLOで設定された目標を実際に達成できなかったり、SLAに違反したりする前に、潜在的な問題を検出するのに役立ちます。SLOを満たすプロセスが確立されると、例えばワークロードの需要に基づいてリソース割り当てを自動化するプラットフォームを使用することで、オートメーションを導入して一貫したパフォーマンスを確保できます。
SLOは、潜在的な問題が発生する前にDevOpsチームがその兆候を特定できるようにします。この先見性により、エンド・ユーザーに悪影響を与えたり、会社に金銭的な損害を与えたりする可能性のある、許容できないダウンタイムやその他のイベントを防止できます。
SLAでは、請求額を計算するために、月ごとのダウンタイムまたは可用性のパーセンテージが使用されることがよくあります。ダウンタイム期間は、システムが主要な機能を実行できない期間です。例えば、通信障害によってネットワークのダウンタイムが発生する可能性があります。業界の可用性基準は依然として高く、ダウンタイムのコストも増加し続けています。財務的な影響以外にも、SLOの不履行は顧客の不満につながる可能性もあります。
多くの組織は、事後対応型のインシデント管理プロセスに基づいて運営されています。しかし、インシデントが発生するまで待つと、システム内の問題の軽減と解決に時間がかかり、平均修復時間(MTTR)1 が増加します。適切に確立されたSLOは、オブサーバビリティーの向上に役立ち、組織が インシデント管理をより積極的に実行できるようにします。
無関係なアラートは運用コストを増加させるだけでなく、存在しないアラートに応答することでエンジニアが時間を浪費し、生産性が低下することで、燃え尽き症候群の発生率を高める可能性もあります。アラートにおける最大の課題の1つは、アラートが多すぎることと、逆に少なすぎることの間の適切なバランスを見つけることです。
ここで重要になるのは、劣化により信頼性の目標が達成できなくなる可能性が高い場合にエンジニアに通知するアラート、つまり症状ベースのアラートです。例えば、過去1時間において、サービスに対応にレイテンシーがあれば、その週のレイテンシーSLOを満たすことができなくなる可能性がある場合、これは大きな問題です。
ビジネスの人々に、システムの稼働時間の目標は何かと尋ねると、多くの人が 100%を目指したいと答えるかもしれません。これは非常に野心的ですが、非常に高価であり、何よりもまずIT予算の大部分を食いつぶしてしまう可能性があります。SLOは自慢するためのものではなく、顧客の期待を見つけてそれに応えるためのもので、顧客を満足させ、再び利用してもらえるようにします。信頼性は手段であり、目的ではありません。
パフォーマンス指標を測定できるからといって、それが顧客の満足度や収益にとって重要であるとは限りません。優先順位を付ける。ポジティブな顧客体験を最もよく示すメトリクスに焦点を当てます。
サービスレベル管理の基本(ibm.com外部へのリンク)では、Rick Sturm氏とWayne Morris氏は、現実的なSLOを設定するためのチェックリストを提供しています。
SLOは次の項目を満たす必要があります。
· 達成可能
· 再現可能
· 測定可能
· 理解可能
· 有意義
· 管理可能
· 手頃な価格
· 相互に受け入れ可能
リストが「達成可能」で始まることに注意してください。高すぎる目標を設定すると非常にコストがかかり、顧客が期待する以上のアップタイムを無駄に実現してしまう可能性があります。ここではSLO目標の達成に役立つ重要なベスト・プラクティスをいくつか紹介します。
SLAまたはビジネス目標をサポートするSLOを定義します。20項目のSLOは本当に5項目のSLOより4倍優れているのでしょうか。それとも、これは単にITチームの作業を増やし、顧客を混乱させるだけで、大きなメリットは得られないのではないでしょうか。測定できるものすべてを評価する必要はありません。
過大な約束をして、その後に不十分な成果しか得られない場合、罰金が高額になり、場合によっては顧客を失う原因にもなりかねません。現実的なSLO目標を設定してください。社内の関係者だけでなく顧客に対しても現実的になることで、誰もが十分な情報に基づいた意思決定を行うことができます。非現実的に高いSLO目標は、長期的にはコストがさらに高くなるだけです。
現実的な期待に事前に合意することで、社内チーム間および顧客との間で将来的に生じる混乱や対立を回避できます。
手動のメトリクス収集シートでは修復が遅くなり、根本原因の分析ができなくなる可能性があります。関連するSLIを収集してSLOを自動的に評価し、SLOが満たせなくなる前にに自動アラートが発せられるように設定します。また、重大な問題になる前に、スタッフが問題に対処できるよう、必要な背景情報と依存関係を明確にします。
IBM Instanaにより、DevOps、SRE、プラットフォーム、ITOps、開発など、誰もが必要なデータを必要なコンテキストで取得できるソリューションを提供することで、オブサーバビリティーを民主化できます。クラウドネイティブ向けに構築されながら、テクノロジーにとらわれないこのプラットフォームは、モバイル、Web、アプリケーション、インフラストラクチャー全体での論理的および物理的な依存関係のコンテキストを持つ、忠実度の高いデータ(1秒単位の粒度とエンドツーエンドのトレース)を自動的かつ継続的に提供します。
IBM® Turbonomicハイブリッドクラウド・コスト最適化プラットフォームを使用すると、重要なアクションをリアルタイムで継続的に自動化し、スタックの各レイヤーでコンピューティング、ストレージ、ネットワークのリソースを最も効率的な形でアプリに事前に割り振ることができます。
1「サービス・レベル目標」、IBM、2023年9月6日。