🎲

SLA・SLO・SLIについてゆるく学んでみた

2024/11/19に公開

はじめに

SLA(Service Level Agreement)・SLO(Service Level Objective)・SLI(Service Level Indicator)
の説明を見てもぱっとイメージがつかないので、
簡単な例がないかChatGPTに聞いてみたら面白かったので軽く共有します。

例示

オンラインゲームに例えて見ると下記のような感じです。

SLA(Service Level Agreement)

サービス提供者(ゲーム会社)とサービス利用者(プレイヤー)の間で交わされる全体的な約束

  • 例:「ゲーム会社は24時間365日、安定したオンラインゲームサービスを提供します」という約束
  • ポイント
    • どのようなサービスを提供するのかを明確にする
    • お互いの期待を一致させる

要は、ちゃんとサービス提供するよ!っとサービス提供者が宣言するだけのところ。

ここだけだとサービス利用者は「安定したオンラインゲームサービス」とは?となるので次のSLOに進みます。

SLO(Service Level Objective)

SLOはSLAの定義内で設定される具体的な数値や基準

    • 「サーバーの稼働率を99.9%以上に維持します」
    • 「プレイヤーからの問い合わせには48時間以内に対応します」
    • 「ゲーム内の遅延時間(ラグ)を平均100ミリ秒以下に抑えます」
  • ポイント
    • 具体的で測定可能な目標を設定する
    • サービスの質や性能について詳細に決める

要は、具体的な数値や基準が入れたからこの状態が維持されてたら文句言わないでね!っとサービス提供者が宣言するだけのところ。

これがないオンライゲームは例え鯖落ちをしても責任は取る必要がない。
(実際は利用者が減るし、文句も出るかも笑)

SLI(Service Level Indicator)

SLIは、SLOで設定した目標がどれだけ達成されているかを測定するための数値やデータ。

    • 「今月のサーバー稼働率は99.95%でした」
    • 「プレイヤーからの問い合わせへの平均対応時間は18時間でした」
    • 「ゲーム内の平均遅延時間は90ミリ秒でした」
  • ポイント:
    • 実際のサービス性能を数値化する
    • SLOとの比較で目標達成度を評価する

要は、SLOは目標値立てたので実値を計測してちゃんとクリアしてますよ!っとサービス提供者が数値やデータを出すところ。

SLOで立てた目標をクリアしていれば問題ないが、

  • サーバーの障害でメンテが続いたり
  • 運営へ問い合わせても返信が激おそだったり
  • ゲームの応答速度がおそすぎたり

こんなことがあると詫び石案件に繋がったりする。

なぜこれが重要なのか?

サービス提供者(ゲーム会社)が宣言するだけ損する感じがしますが、
実はSLA、SLO、SLIを明確にすることで長い商売をするのであれば信頼貯金が貯められます。

  • プレイヤーは安心してゲームを楽しむことができる
    • ゲームプレイの継続につながる
  • ゲーム会社はサービスの品質を維持・向上させるための指標を持つことができる
    • チータやクラッカー対策の指標として使える
  • 問題が発生した場合でも迅速に対応し、信頼関係を保つことができる
    • 信頼貯金が高いと鯖落ちもネタ程度で済む

トラブル時の対応

例えば、SLIの数値を集計したところ、ある月にサーバー稼働率が98%に落ちてしまったとします。これはSLO(99.9%)を下回っています。
この場合:

  • ゲーム会社は原因を調査し、問題を解決する必要があります
  • プレイヤーに対してお詫びや補償(例:詫び石)を行うことがあります
  • 将来的な改善策を計画し、再発防止に努めます

SLIを達成できなければ一発アウトというよりは回避策を用意しておくと、
サービス利用者が寛大に見てくれる可能性があります。

さいごに

オンラインゲームの例を通して、SLA、SLO、SLIについてゆるく学んでみました。
これらは定義するのが面倒な部分だと思うのですが、
サービスの品質を維持し、ユーザーの満足度を高めるための重要な要素です。

あと、ChatGPT o1-previewすごいですね、、7割ぐらい本文をそのまま使えました。
(SLA、SLO、SLIについて難しい記事ばかりだったのでゆるく学べて良かったです。)

以上hamaでした〜

Discussion