システム開発を行う時やシステムサービスを利用する際に利用者(発注側)と提供者(受注側)との間でサービスにおける取り決めなどを契約しますが、取り決めの中で「SLA(えすえるえー)」というものも合意します。
SLAはシステム稼働後に重要になってきます。
そして、同じような言葉で「SLO」もありますので、今回はSLAとSLOの違いに関しても解説します。
SLA(えすえるえー)とは
SLA(Service Level Agreement)は日本語にすると「サービスレベル合意書」となりますが、これはサービス提供者とサービス利用者の間で「どのような内容のサービスを、どのレベルの品質で提供するか」をサービス開始前に双方で取り決めて明文化したものをいいます。
なぜSLAが大事かと言うと、例えばクラウドサービスを利用する時に、しょっちゅうサービスが止まってしまったら、使い物にならないですよね。
なので、利用者からみれば「サービスを絶対止めないでください」ということを提供者にお願いします。
とはいえ、サービス提供者側からしたら、「100%止めない」となると、相当のコストが掛かるし、そもそも100%は現実的ではありません。
そこで、提供者と利用者の間で、どのレベルまでなら許容できるかを予め合意しておきます。
稼働率のSLAに関して、簡単な例を以下に上げます。
SLAの例
- 24時間365日で提供されるサービスの稼働率を99.5%に設定してSLAを合意する
- SLA上は1か月で合計約3.6時間以内のサービス停止が許容される
- もしも、サービスダウンで4時間サービスが停止してしまったら、SLA違反となる
- SLA違反の場合はサービス利用料の10%を利用者に返金する。
このようにSLAを取り決めることで、提供者はサービスレベルの維持に頑張りますし、利用者も安心してサービスを使うことができるようになりますね。
SLAを上げる、つまり稼働率を限りなく100%に近づけたり、障害完了時間を30分以内とかを実現しようとすると、それだけ人員やシステム構成のボリュームが多くなるので、当然コストが掛かり、利用者へ請求される金額も高くなります。
そのため、SLAには利用者がどんな使い方をするかによって、適切な内容にしていく必要がありますね。
SLO(エスエルオー)とは
一方、SLO(Service Level Objective)は日本語にすると「サービスレベル目標」となります。
SLOはあくまでも「目標」なので、サービスの提供者が設定するだけなので、利用者には見せないこともあります。
目標値なので、SLA よりも高い(厳しい)数値が設定されます。
例えば、さきほどSLA で稼働率 99.5 % を設定していた場合は、SLO は稼働率 99.9 % に設定するような形になります。
そして、SLO は提供者が勝手に決めるので、もしも守れなくても利用者に対してのペナルティはありません。
とはいえ、守れない目標値を設定しても意味がないので、そこは現実的な数値にします。
また、利用者にも開示することで、利用者へ信頼や安心感を与えることもできますね。
SLAとSLOの違い
ここまでSLAとSLOの内容を解説してきましたので、SLAとSLOの違いは大体把握できたかと思いますが、改めて違いを比較してみましょう。
下図にまとめてみましたが、SLAはペナルティが発生する分、「遵守できる内容や値を設定する」ということになりますね。
一方、SLOは具体的な数値を設定して、提供者側の内部目標として使うことが多いですね。ペナルティが発生しないので、ある程度高い目標値を設定できますね。
まとめ
今回はサービスレベルを設定するためのSLAとSLOに関して解説してきました。
SLAとSLOのまとめ
- SLA(サービスレベル合意書)は「どのような内容のサービスを、どのレベルの品質で提供するか」を提供者と利用者で合意する
- SLO(サービスレベル目標)は「サービスレベルの目標」を提供者が設定する
- SLAよりSLOの方が設定する数値が高い(厳しい)
- SLAは達成できない時に利用者に対してペナルティが発生する
SLAはサービス提供者側が元から決めていて、変更できないこともありますが、一からシステムを開発するような時は、開発の要件定義工程からある程度SLAどうしようか、提供者と利用者が話し合いを行うこともありますね。
SLAの値をどうするかはお互い譲れない時もありますが、揉めたくはない部分ですね。。。
SLA、SLOに似た言葉としては「SLM(Service Level Management):サービスレベルマネジメント」「SLI(Service Level Indicator):サービスレベル指標」などがありますので、間違いないよう気を付けましょう。
以上です!