「世の中には難しいことが多い!」と感じることが多い私が、様々な用語を、初学者向けにわかりやすく全力で解説します。
解説する用語
SLO、SLI、SLAについて解説をしていきます。SLO、SLI、SLAはシステム開発をするうえでは必須となってくる知識となります。ただ、意外とどのような値を設定すればよいのか理解していない方もいるかと思います。もめ事を発生させないためにも理解しておきましょう。
SLO、SLI、SLAを設定する理由
システム開発はアプリケーションを作成して終わりではありません。
「アプリケーションがちゃんと稼働しているか」を継続して確認していかなければなりません。
この時に具体的な目標を決めておかないと、そもそも「ちゃんと稼働しているか」という判断がつきませんね。「ちゃんと稼働しているって何?」ってなります。
システム開発者とシステム開発を依頼した顧客の間でも、「ちゃんと稼働しているか」の明確な基準がないと揉めるかもしれません。「システム止まったけどどうなってんの!?」となるかもしれません。
SLO、SLI、SLAを設定することで、関係者間で「ちゃんと稼働しているか」の基準を合わせることが出来ます。
具体的にどのように設定していくのか、次のセクションで解説していきます。
詳細に説明するよ
例えば、今週のサザエさんがじゃんけんで何を出すか予測するシステムがあるとします。
このシステムは今週のサザエさんが放送する日付を入力するとサザエさんが何を出すかを教えてくれます。
このシステムを例として、SLO、SLI、SLAについて考えていきましょう。
SLIとは
SLI(Service Level Indicator)とは、サービスの品質を測定するための指標になります。SLIは、数値やパーセンテージなど、定量的に測定できる指標であることが重要です。
システム開発においては以下のようなものがあげられます。
- 可用性:どれだけの時間サービスが利用可能か
- 応答時間:ユーザーからのリクエストにどれくらいの速度でレスポンスを返せるか
- エラー率:サービスで発生するエラーの割合
- スループット: サービスが処理できるデータ量
システム開発をしたことがある人であればなんとなくイメージはつきやすいかなと思います。この指標をもとにSLOを決めていきます。
SLOとは
SLO(Service Level Objective)とは、サービス提供者が達成を目指すサービス品質の目標値です。SLIに基づいて具体的な数値で設定されます。
サザエさんがじゃんけんで何を出すか予測するシステムでSLOを考えてみましょう。
可用性
99.9%以上の可用性を目標とします。99.9%以上というと、1年間でシステムが止まる時間を8.76時間以内にするということになります。絶対に止まってはいけないシステムではないので妥当でしょう。
応答時間
平均1秒以内の応答時間を目標とします。「来週もまた、見てくださいね~」と言い出してからボタンを押せば間に合いますね。
エラー率
0.1%未満のエラー率を目標とします。これはエラーになる確率を1000回に1回未満に抑えるということになります。日本の人口が1.2億人、サザエさんの視聴率が8%だとすると、960万人がサザエさんを視聴します。そのうち、1%がこのシステムを使うとすると9.6万人になります。9.6万人が毎週1回使うとすると、エラーになる人を毎週96人未満に抑える計算になります。95人すまん。。
スループット
1秒あたり1万件のリクエストを処理できることを目標とします。ほとんどの人がサザエさんが終わるころに使い始めると予想します。予告からじゃんけんまでの30秒間がこのシステムの勝負所です。
以下の表に今回決めたSLIとSLOについてまとめます。
SLI | SLO |
どれだけの時間サービスが利用可能か | 99.9%以上 |
どれくらいの速度でレスポンスを返せるか | 平均1秒以内の応答時間 |
サービスで発生するエラーの割合 | 0.1%未満のエラー率 |
サービスが処理できるデータ量 | 1秒あたり1万件のリクエストを処理する |
SLAとは
SLA(Service Level Agreement)とは、サービス提供者と顧客の間で合意されたサービス品質に関する契約です。SLOを基に定められ、書面で締結されます。
SLAには、サービス内容、SLO、違反時のペナルティなどが記載されています。これは、顧客とサービス提供者の間の権利と義務を明確にするものです。
サザエさんがじゃんけんで何を出すか予測するシステムでSLOを考えてみましょう。ちなみにこのシステムの作成依頼をしたのはノリスケだとします。そのため、顧客はノリスケとして、ノリスケとSLAを結びます。
- サービス内容:サザエさんがじゃんけんで何を出すか予測するシステム
- SLO:可用性 99.9%、応答時間 1秒以内、エラー率 0.1%未満、スループット 1秒あたり1万件のリクエストを処理できること
- 違反時のペナルティ:サービス料金の割引、1週間のいくらちゃんのお世話
まとめ
- SLI:サービス品質を定量的に測定するための指標
- SLO:サービス提供者が目指す目標値
- SLI:サービス提供者と顧客の間で合意されたサービス品質に関する契約
本サイトでの注意事項
本サイトではなんとなく理解することを目的としているため正確性に欠ける表現がありますのでご注意ください。