アドベントカレンダー7日目:SREを読んでみた「サービスレベル目標」編①

  • 2020.12.10
198
NO IMAGE

前回は、リスクの受容について、学びました。
リスクを受容するのは、そうすることで、余裕を作り、様々な改善へリソースを割けることにつながるからです。
リスクを受容したことによる予算をエラーバジェットと呼び、それのメリットも学びました。
今回からリスクの線引き、つまりサービス目標に関する知識を学んでいきます。

まず、サービスレベルを定義する3つの言葉(SLI、SLO、SLA)について、説明します。
言葉の定義の意味を理解することで、概念的なサービスレベルに関する概念的な分類を行います。

SLI(サービスレベル指標:Service Level Indicators)

SLIは、サービスレベルの指標のことで、サービスレベルの性質を慎重に定義された計測量です。

重要なSLIとして、以下があります。

  • リクエストのレイテンシ(リクエストに対するレスポンスを返すまでにかかった時間)
  • システムのスループット(毎秒のリクエスト数)
  • エラー率(受信したリクエストに対するエラーの比率)
  • 可用性(サービスが利用できる時間の比率)
  • イールド(処理に成功したリクエストの比率)
  • 耐久性(長期にわたって、データが保存されている確率)

上記のようなシステム寄りの定義が、SLIの意味になります。

SLO(サービスレベル目標:Service Level Objective)

SLOは、SLIで計測でされるサービスレベルのターゲット値、あるいはターゲット値の範囲です。
すなわち、SLI <= ターゲット あるいは 下限 <= SLI <= 上限がSLOになります。
SLOがユーザーに対して、明示されていない場合、ユーザーは、システムに関して、サービス運用側とは異なる考えを持つようになります。
そのため、システムを過剰に信頼したり、逆に実際以上に当てにならないものと考えるようになります。
SLOを設定し、それを公開することで、ユーザーがシステムに持つ隠れた不満をなくすことができます。

SLA(サービスレベルアグリーメント:Service Level Agreement)

ユーザーの間で結ぶ明示的あるいは暗黙の契約であり、SLOが満たせた場合、あるいは満たせなかった場合の規定が含まれます。
通常、SREはSLAの構築にはかかわりません。なぜなら、SLAがビジネスやプロタクトに密接にかかわるものだからです。SLAを持たない、明示していないサービスもありますが、これの有無にかかわらず、SLIとSLOを定義し、サービスを管理することは価値があります。

まとめ

  • SLI、SLO、SLAは、サービス定義を行う為、またそれを説明するための概念

引用

  1. Betsy Seyerほか SRE サイトリライアビリティエンジニアリング オライリー 39-42