1 of 98

The Art of SLOs

混沌のなかにこそ 勝機 信頼性あり

— 孫子の兵法 (The Art of War)

https://cre.page.link/art-of-slos-slides

2 of 98

ようこそ!

恥ずかしがらないで・・・

となりの人に やあ ってあいさつしてみよう

https://cre.page.link/art-of-slos-slides

3 of 98

参加者の約束

  • 私たちは学ぶためにここにいる
  • 質問をする (手を挙げて)
  • ひとりずつ しゃべる
  • みんな好意的だと考える
  • 「何についてしゃべってるんだっけ?」

https://cre.page.link/art-of-slos-slides

4 of 98

もくじ

  • 専門用語
  • なぜサービスには SLO が必要 なの?
  • エラー バジェットを使う
  • 良い SLI を選ぶ
  • SLO と SLI を作る

https://cre.page.link/art-of-slos-slides

5 of 98

Service Level Indicator

サービスの 信頼性 定量化できる 尺度

https://cre.page.link/art-of-slos-slides

6 of 98

Service Level Objectives

SLI に対する 信頼性の目標

https://cre.page.link/art-of-slos-slides

7 of 98

ユーザー?お客様?

お客様 というのは、サービスに 直接お金を払う ユーザー

https://cre.page.link/art-of-slos-slides

8 of 98

サービスには SLO が必要

https://cre.page.link/art-of-slos-slides

9 of 98

信じられないって?

「SLO を導入してから、運用と開発チームとの関係が、�わずかだが注目に値するほど改善した

— Ben McCormack, Evernote; The Site Reliability Workbook, Chapter 3

「... 明確に定義しないことには、いい仕事をすることは難しい。�「いい仕事」を定義するために SLO はことばを与えてくれる

— Theo Schlossnagle, Circonus; Seeking SRE, Chapter 21

https://cre.page.link/art-of-slos-slides

10 of 98

どんなシステムでも�最も重要な機能は�信頼性

https://cre.page.link/art-of-slos-slides

11 of 98

運用者

安定性

どうやったら

信頼性を

自分ごとにして

もらえるだろう?

開発者

アジリティ

https://cre.page.link/art-of-slos-slides

12 of 98

みんながサービスの望ましい信頼性

ついて納得できる

原理に基づいた方法

https://cre.page.link/art-of-slos-slides

13 of 98

信頼性が高い」って?

Netflix, Google 検索, Gmail, Twitter を思い浮かべてみて…

サービスがちゃんと「動いてる」って、どうやって見分ける?

https://cre.page.link/art-of-slos-slides

14 of 98

0 ms

300 ms

200 ms

お客様

“HTTP GET / …”

うーむ

目標

契約

https://cre.page.link/art-of-slos-slides

15 of 98

ついてきてる?

https://cre.page.link/art-of-slos-slides

16 of 98

どういうときにもっと高い信頼性が�必要になるんだろう?

https://cre.page.link/art-of-slos-slides

17 of 98

100%

基本的にどんなときでも 100% は誤った信頼性の目標です

Benjamin Treynor Sloss, VP 24x7, Google; Site Reliability Engineering, Introduction

https://cre.page.link/art-of-slos-slides

18 of 98

SLO は、ギリギリ達成 できればサービスの典型的なお客様が満足するような、性能や可用性のレベルにすべき

「SLO を満たしている」 ⇒ 「お客様は満足している」

「お客様が不満になる」 ⇒ 「SLO を満たしていない」

https://cre.page.link/art-of-slos-slides

19 of 98

SLO を測って目標をわずかに 超えるようにがんばる...

目標

SLI

https://cre.page.link/art-of-slos-slides

20 of 98

…でも高くしすぎない。ユーザーがそれに頼ってしまう

"Workflow", Randall Munroe, XKCD

Source: https://xkcd.com/1172/

目標

!

SLI

https://cre.page.link/art-of-slos-slides

21 of 98

エラー バジェット

SLO は許容可能なレベルの信頼性の欠如を意味する

これは割り当てることができる予算になる

https://cre.page.link/art-of-slos-slides

22 of 98

実装のしくみ

決められた期間(例: 28 日)における SLO のパフォーマンスを評価

残った予算がエンジニアリング作業の優先順位を決める

https://cre.page.link/art-of-slos-slides

23 of 98

ITIL での近似

SLO を満たしているほとんどの運用作業は標準的な変更

SLO を満たさなくなりそう通常の変更に戻す

(ごめん、「標準的」と「通常」の違いすらわからない…)

https://cre.page.link/art-of-slos-slides

24 of 98

エラー バジェットは�何に使えばいいの?

https://cre.page.link/art-of-slos-slides

25 of 98

エラー バジェットは

  • 新しい機能のリリース
  • 予定されたシステムの変更
  • 避けられないハードやネットワークの障害
  • 計画停止
  • リスクの高い実験

などに使える

https://cre.page.link/art-of-slos-slides

26 of 98

  • 開発チームが自己管理するようになるエラーバジェットは開発チームにとっても貴重な資源になる
  • システム稼働時間に対する責任を共有するインフラ障害もエラーバジェットを消費する

  • 開発と SRE の共有のインセンティブになるイノベーションと信頼性のいいバランスを見つけられる
  • 開発チームが自分でリスクを管理できるエラーバジェットをどう使うかを開発チームが決める
  • 非現実的な信頼性の目標は魅力的でなくなる�そういう目標はイノベーションの速度を落とす

エラー バジェットの利点

https://cre.page.link/art-of-slos-slides

27 of 98

まだついてきてる?

https://cre.page.link/art-of-slos-slides

28 of 98

演習

信頼性の原則

https://cre.page.link/art-of-slos-slides

29 of 98

社員のみなさんへ

先日のシステム障害に対する否定的な報道をうけて、私たち全員が、サービスの信頼性についてもっと真剣に受け止める必要があると確信しました。

この公開書簡では、将来のみなさんの正しい意思決定を促すために、信頼性に関する 3 つの原則を示したいと思います。

https://cre.page.link/art-of-slos-slides

30 of 98

  • 信頼性に対して財政的なコミットをすることで、ユーザーの信頼を取り戻す必要があります。
  • ユーザーが将来のシステム障害を許容、あるいは楽しめるような方法を見つける必要があります。
  • 機能を追加する以前に、信頼性に対するユーザーの期待に応える必要があります。
  • ユーザーを幸せにする機能をもっと早く作る必要があります。
  • 今後二度と障害を起こすようなことがあってはなりません!

最初の原則は、ユーザーに関することです。私たちは今回ユーザーを失望させてしまいましたが、ユーザーはもっと優遇されるべきです。ユーザーは、私たちのサービスを利用したら、幸せになるべきなのです!

私たちのビジネスは...

https://cre.page.link/art-of-slos-slides

31 of 98

  • 短い反復で、早く失敗し、エラーを早期に発見する必要があります。
  • リスク軽減のため運用チームが新機能の設計を担う必要があります。
  • 信頼性が高いことが確認できた場合にのみ、新機能を公開する必要があります。
  • 制御された小さなステップでソフトウェアを構築してリリースする必要があります。
  • システムの信頼性が低い場合に、機能リリースの頻度を下げる必要があります。

2番目の原則は、サービスの構築方法に関するものです。信頼性を組み込むために、開発プロセスを変更する必要があります。

私たちのビジネスは...

https://cre.page.link/art-of-slos-slides

32 of 98

  • 運用チームと開発チームが信頼性の責任を共有する必要があります。
  • 運用作業とチームの優先順位を信頼性の目標に結び付ける必要があります。
  • 運用負荷を削減するためにシステムをより強固にする必要があります。
  • 障害が発生するのを防ぐために、全リリースで運用チームに拒否権を与える必要があります。
  • Twitterでの否定的な苦情を運用チームに直接通知する必要があります。

3番目の原則は、私たちの運用の実践に関するものです。今日私たちがしていることはうまくいきません。運用チームが燃え尽きており、インシデント率が高すぎます。改善するには、別のやりかたで行う必要があります。

私たちのビジネスは...

https://cre.page.link/art-of-slos-slides

33 of 98

これらの原則を実践するために、Google からいくつかのアイデアを借ります。次のステップは、サービスの SLO をいくつか定義し、それらに対するパフォーマンスの測定を開始することです。

読んでくれてありがとう!

Eleanor Exec, CEO

https://cre.page.link/art-of-slos-slides

34 of 98

休憩!

https://cre.page.link/art-of-slos-slides

35 of 98

いい SLI を選ぶ

https://cre.page.link/art-of-slos-slides

36 of 98

https://cre.page.link/art-of-slos-slides

37 of 98

time

不満なユーザー

https://cre.page.link/art-of-slos-slides

38 of 98

時間

時間

指標

指標

BAD

GOOD

https://cre.page.link/art-of-slos-slides

39 of 98

時間

時間

指標

上下していて指標の悪化がわかりにくい

指標

BAD

GOOD

https://cre.page.link/art-of-slos-slides

40 of 98

時間

指標

指標の悪化がサービスで起きる問題と相関する

指標

時間

BAD

GOOD

https://cre.page.link/art-of-slos-slides

41 of 98

時間

時間

指標

指標の S/N 比が悪い

指標は良好な�S/N 比を示す

指標

?

BAD

GOOD

https://cre.page.link/art-of-slos-slides

42 of 98

SLO

SLI

https://cre.page.link/art-of-slos-slides

43 of 98

SLI :

良いイベント

有効なイベント

× 100%

https://cre.page.link/art-of-slos-slides

44 of 98

3–5 SLIs*

* ユーザージャーニーあたり

https://cre.page.link/art-of-slos-slides

45 of 98

SLO

SLI

https://cre.page.link/art-of-slos-slides

46 of 98

ビジネスの視点からみて

どれくらいの�パフォーマンス

必要だろう?

https://cre.page.link/art-of-slos-slides

47 of 98

ユーザーの期待

過去のパフォーマンス

ものすごくひっぱられる

https://cre.page.link/art-of-slos-slides

48 of 98

?

継続的な

改善

https://cre.page.link/art-of-slos-slides

49 of 98

おなかいっぱい?

https://cre.page.link/art-of-slos-slides

50 of 98

SLO と SLI を作る

https://cre.page.link/art-of-slos-slides

51 of 98

?

https://cre.page.link/art-of-slos-slides

52 of 98

みんなのゲーム: Fang Faction

Web サーバー

API サーバー

リーダーボード

プロファイル

ゲーム�サーバー

リーダーボードの�生成

ロード

バランサー

https://cre.page.link/art-of-slos-slides

53 of 98

SomeUser のプロファイル

SomeUser

かえる族�Faction Score: 31337

Midwest Canyon

https://fangfactiongame.com/profile/someuser

チーム:

かえる族

リーダー:

SomeUser

メールアドレス:

user@example.com

更新

1.

2.

3.

4.

5.

6.

Tri-Bool 65535

Tri Repetae 61995

Triassic Five 52391

Tricksy Hobbits 37164

かえる族 31337

Trite Examples 29243

https://cre.page.link/art-of-slos-slides

54 of 98

プロファイル ページの読み込み

Web サーバー

API サーバー

リーダーボード

プロファイル

ゲーム�サーバー

リーダーボードの�生成

ロード

バランサー

https://cre.page.link/art-of-slos-slides

55 of 98

SLI Menu

リクエスト / レスポンス

可用性

レイテンシー

品質

データ処理

カバレッジ

正確性

鮮度

スループット

ストレージ

スループット

レイテンシー

https://cre.page.link/art-of-slos-slides

56 of 98

可用性

レイテンシー

プロファイルページの読み込みに成功する

プロファイルページの読み込みが速い

https://cre.page.link/art-of-slos-slides

57 of 98

可用性

レイテンシー

  • 成功をどう定義するか
  • 成功/失敗はどこに記録されるか
  • 速さをどう定義するか
  • タイマーはいつ開始/停止するか

プロファイルページの読み込みに成功する

プロファイルページの読み込みが速い

https://cre.page.link/art-of-slos-slides

58 of 98

可用性

レイテンシー

有効なリクエストのうち、しきい値よりも速く処理された割合

有効なリクエストのうち、正常に処理された割合

  • 成功をどう定義するか
  • 成功/失敗はどこに記録されるか
  • をどう定義するか
  • タイマーはいつ開始/停止するか

プロファイルページの読み込みに成功する

プロファイルページの読み込みが速い

https://cre.page.link/art-of-slos-slides

59 of 98

可用性

レイテンシー

有効なリクエストのうち、しきい値よりも速く処理された割合

有効なリクエストのうち、正常に処理された割合

  • 成功をどう定義するか
  • 成功/失敗はどこに記録されるか
  • をどう定義するか
  • タイマーはいつ開始/停止するか

プロファイルページの読み込みに成功する

プロファイルページの読み込みが速い

https://cre.page.link/art-of-slos-slides

60 of 98

可用性

レイテンシー

/profile/{user} に対する HTTP GET リクエストのうち、しきい値よりも速く処理された割合

/profile/{user} または /profile/{user}/avatar に対する HTTP GET リクエストのうち、正常に処理された割合

  • 成功をどう定義するか
  • 成功/失敗はどこに記録されるか
  • をどう定義するか
  • タイマーはいつ開始/停止するか

プロファイルページの読み込みに成功する

プロファイルページの読み込みが速い

https://cre.page.link/art-of-slos-slides

61 of 98

可用性

レイテンシー

/profile/{user} に対する HTTP GET リクエストのうち、しきい値よりも速く処理された割合

/profile/{user} または /profile/{user}/avatar に対する HTTP GET リクエストのうち、正常に処理された割合

  • 成功をどう定義するか
  • 成功/失敗はどこに記録されるか
  • をどう定義するか
  • タイマーはいつ開始/停止するか

プロファイルページの読み込みに成功する

プロファイルページの読み込みが速い

https://cre.page.link/art-of-slos-slides

62 of 98

可用性

レイテンシー

/profile/{user} に対する HTTP GET リクエストのうちX ms 範囲内で処理されたリクエストの割合

/profile/{user} または /profile/{user}/avatar に対する HTTP GET リクエストのうち、ステータスが200番台300番台 または 400 番台 (excl. 429) を返す割合

  • 成功をどう定義するか
  • 成功/失敗はどこに記録されるか
  • をどう定義するか
  • タイマーはいつ開始/停止するか

プロファイルページの読み込みに成功する

プロファイルページの読み込みが速い

https://cre.page.link/art-of-slos-slides

63 of 98

SLI Menu

測定の戦略

アプリケーションレベルのメトリックス

ログ 処理

フロント エンド インフラのメトリックス

人工的なクライアント/データ

クライアント サイド への埋め込み

https://cre.page.link/art-of-slos-slides

64 of 98

可用性

レイテンシー

ロードバランサーで測定した、/profile/{user} に対する HTTP GET リクエストのうちX ms 範囲内にレスポンス全体を送信したものの割合

ロードバランサーで測定したステータスが/profile/{user} または /profile/{user}/avatar に対するすべての HTTP GET リクエストのうち200番台300 番台または 400 番台 (excl. 429) を返す割合

  • 成功をどう定義するか
  • 成功/失敗はどこに記録されるか
  • をどう定義するか
  • タイマーはいつ開始/停止するか

プロファイルページの読み込みに成功する

プロファイルページの読み込みが速い

https://cre.page.link/art-of-slos-slides

65 of 98

演習

ポストモーテム

https://cre.page.link/art-of-slos-slides

66 of 98

可用性

レイテンシー

ロードバランサーで測定したステータスが、/profile/{user} または /profile/{user}/avatarに対するHTTP GET リクエストのうち200番台3XX または 4XX (excl. 429) を返す割合

および

5秒ごとに外形監視で測定される/profile/prober_user 及びリンクのある全てのリソースに対するHTTP GETリクエストのうち "ProberUser"を含む有効なHTMLを返す割合

ロードバランサで測定した、/profile/{user} に対する HTTP GET リクエストのうちX ms 範囲内にレスポンス全体を送信したものの割合

https://cre.page.link/art-of-slos-slides

67 of 98

SLI は障害モードを網羅している?

API サーバー

リーダーボード

プロファイル

ロード

バランサー

外形監視

可用性

可用性

レイテンシー

ゲーム

サーバー

リーダーボードの�生成

Web サーバー

https://cre.page.link/art-of-slos-slides

68 of 98

演習

SLO の目標値を決める

https://cre.page.link/art-of-slos-slides

69 of 98

ジャーニーの信頼性の目標には何を設定しよう?

サービス

SLO の種類

目標

Web: プロファイル

可用性

Web: プロファイル

レイテンシー

...

...

過去 28 日 99.95% 成功

過去 28 日リクエストの 90% < 500ms

目標には目標値測定期間の両方がないといけない

https://cre.page.link/art-of-slos-slides

70 of 98

まだ眠くない?

https://cre.page.link/art-of-slos-slides

71 of 98

休憩!

https://cre.page.link/art-of-slos-slides

72 of 98

ワークショップ: SLI と SLO を設定してみよう

これまでの手順に沿って ゲーム内通貨の購入 ジャーニーに取り組もう:

  • メニューから SLI の仕様を選ぶ (冊子の 6 ページを参照)
  • 定義 を置き換えて詳細な SLI の実装を作る
  • ユーザージャーニーを順に追って網羅できているか確認する
  • ビジネス要件から野心的な SLO を設定する

もし終わったら、別のジャーニーにも取り組んでみる

45 分ぐらいやってみよう

https://cre.page.link/art-of-slos-slides

73 of 98

みんなのゲーム: Fang Faction

Play

Store

Web サーバー

API サーバー

リーダーボード

プロファイル

ゲーム�サーバー

リーダーボードの�生成

ロード

バランサー

https://cre.page.link/art-of-slos-slides

74 of 98

休憩!

https://cre.page.link/art-of-slos-slides

75 of 98

ゲーム内通貨の購入

モデル解答

https://cre.page.link/art-of-slos-slides

76 of 98

ジャーニーの分解

5 つのリクエストとレスポンスのペア

  • APIサーバからSKUのリストをフェッチする
  • Play ストアからSKUの詳細を フェッチする
  • ユーザーはPlayの課金フローを  起動する
  • APIサーバにトークンを送信する
  • Playストアはトークンを確認する

1

2

3

4

5

https://cre.page.link/art-of-slos-slides

77 of 98

ジャーニーの分解

ジャーニーには 2 つの部分がある�A: SKU のフェッチ

  • APIサーバからSKUのリストをフェッチする
  • PlayストアからSKUの詳細を フェッチする
  • ユーザーはPlayの請求フローを  起動する
  • API サーバにトークンを送信する
  • Playストアはトークンを確認する

1

2

https://cre.page.link/art-of-slos-slides

78 of 98

ジャーニーの分解

ジャーニーには 2 つの部分がある�B: アイテムの購入

  • API サーバからSKUのリストをフェッチする
  • PlayストアからSKUの詳細を フェッチする
  • ユーザーはPlayの課金フローを  起動する
  • API サーバにトークンを送信する
  • Playストアはトークンを確認する

3

4

5

https://cre.page.link/art-of-slos-slides

79 of 98

ジャーニーの分解

ユーザーはアイテムを購入しない   かもしれない :-(

  • APIサーバからSKUのリストをフェッチする
  • PlayストアからSKUの詳細を  フェッチする
  • ユーザーはPlayの課金フローを  起動する
  • API サーバにトークンを送信する
  • Playストアはトークンを確認する

この部分は別々に考えないといけない!

1

2

https://cre.page.link/art-of-slos-slides

80 of 98

ジャーニーの分解

2 つのリクエストはAPI サーバに    全くヒットしない!

  • API サーバからSKUのリストをフェッチする
  • PlayストアからSKUの詳細を フェッチする
  • ユーザーはPlayの課金フローを  起動する
  • API サーバにトークンを送信する
  • Playストアはトークンを確認する

サーバーやロードバランサーのメトリックだとジャーニーを網羅できないかも :-(

2

3

https://cre.page.link/art-of-slos-slides

81 of 98

2

3

ジャーニーの分解

2 つのリクエストはAPI サーバに    全くヒットしない!

  • API サーバからSKUのリストをフェッチする
  • PlayストアからSKUの詳細を フェッチする
  • ユーザーはPlayの課金フローを  起動する
  • API サーバにトークンを送信する
  • Playストアはトークンを確認する

サーバーやロードバランサーのメトリックだとジャーニーを網羅できないかも :-(

...クライアントから情報収集するならユーザーに同意を得ないといけない

https://cre.page.link/art-of-slos-slides

82 of 98

購入フロー

どのSLIを使う?

購入フローのジャーニーは

リクエスト/レスポンス

SLI メニューをみると

可用性レイテンシの SLI

を使えばよさそうだ

https://cre.page.link/art-of-slos-slides

83 of 98

購入フローの可用性

仕様

Bは売上につながるので、そこから始めよう

  • API サーバからSKUのリストを  フェッチする
  • PlayストアからSKUの詳細を    フェッチする
  • ユーザーはPlayの課金フローを�起動する
  • API サーバにトークンを送信する
  • Playストアはトークンを確認する

可用性SLI の仕様

正常に処理された有効なリクエストの割合

3

4

5

https://cre.page.link/art-of-slos-slides

84 of 98

購入フローの可用性

有効なリクエスト

可用性SLI

正常に処理された有効なリクエストの割合

… どのリクエストが有効んだろう

  • ユーザーはPlayの請求フローを  

起動する

  • API サーバにトークンを送信する?
  • Playストアはトークンを確認する?

課金フローが開始されたってことは、ユーザーが購入する意志を示した、ということ

ユーザーがクライアントからの情報収集に同意してくれれば、その意志を捕捉できる

3

https://cre.page.link/art-of-slos-slides

85 of 98

購入フローの可用性

正常の基準

可用性SLI

情報収集に同意したユーザーが開始した課金フロー のうち成功したものの割合

成功したことはどうやってわかる?

一連のやりとりが成功するってことだ!

  • 良いステータスコード:購入トークン
  • 良いステータスコード:口座情報更新
  • 良いステータスコード:有効なトークン
    • トークンが無効な場合、APIコールに対して 402返答する

3

4

5

https://cre.page.link/art-of-slos-slides

86 of 98

購入フローの可用性

測定

可用性SLI

情報収集に同意したユーザーが開始した課金フロー のうち成功したものの割合

課金フローは以下を返す

  • OKおよび購入トークン
  • または FEATURE_NOT_SUPPORTED
  • または ITEM_UNAVAILABLE
  • または USER_CANCELED

/api/completePurchase は以下を返す

  • 200 OKおよび パース可能なJSON
  • または 402 Payment Required

… でも、どこでそれを測定しよう?

3

4

https://cre.page.link/art-of-slos-slides

87 of 98

3

4

購入フローの可用性

測定

可用性SLI

情報収集に同意したユーザーが開始した課金フロー のうち成功したものの割合

課金フローは以下を返す

  • OKおよび購入トークン
  • または FEATURE_NOT_SUPPORTED
  • または ITEM_UNAVAILABLE
  • または USER_CANCELED

/api/completePurchase は以下を返す

  • 200 OKおよび パース可能なJSON
  • または 402 Payment Required

… でも、どこでそれを測定しよう?

ゲームクライアントで測定して、非同期で報告させよう!

https://cre.page.link/art-of-slos-slides

88 of 98

購入フローのレイテンシ仕様

Bのレイテンシも測定したいよね

  • API サーバからSKUのリストをフェッチする
  • PlayストアからSKUの詳細を フェッチする
  • ユーザーはPlayの課金フローを�起動する
  • API サーバにトークンを送信する
  • Playストアはトークンを確認する

レイテンシSLI の仕様

しきい値よりも速く処理された有効なリクエストの割合

3

4

5

https://cre.page.link/art-of-slos-slides

89 of 98

購入フローのレイテンシ�有効なリクエスト

レイテンシSLI

しきい値よりも速く処理された有効なリクエストの割合

… どのリクエストが有効なんだろう?

  • ユーザーはPlayの課金フローを�起動する
  • API サーバにトークンを送信する
  • Playストアはトークンを確認する

3 じゃないの?

  • 変動が大きすぎて、S/N 比が悪い
  • 課金フローは、端末を操作する時間が長い

4

https://cre.page.link/art-of-slos-slides

90 of 98

購入フローのレイテンシ�「遅すぎる」しきい値

レイテンシSLI

しきい値よりも速く処理された/api/completePurchaseリクエストの割合

… で、十分に速いって何だろう?

ざっくり見積もると

  • トークンの確認 <= 500ms
  • データベースへの書き込み <= 200ms
  • ちょっと切り上げると...

https://cre.page.link/art-of-slos-slides

91 of 98

購入フローのレイテンシ�測定

レイテンシSLI

1000ms以内に 理される/api/completePurchaseリクエストの割合

… で、どこでそれを測定しよう?

いつからいつまでを測る?

https://cre.page.link/art-of-slos-slides

92 of 98

購入フローのレイテンシ�測定

レイテンシSLI

ロードバランサーで測定され

1000ms以内に完全なレスポンス がクライアントに返されている

/api/completePurchasリクエストの割合

https://cre.page.link/art-of-slos-slides

93 of 98

ちょっとだけ宣伝させて...

https://cre.page.link/art-of-slos-slides

94 of 98

https://cre.page.link/art-of-slos-slides

95 of 98

SLO をもっと勉強したい? Coursera のコースを受けてみて:

https://cre.page.link/coursera

https://cre.page.link/art-of-slos-slides

96 of 98

この本は HTML なら無料で読めるよ!

https://landing.google.com/sre/books/

https://cre.page.link/art-of-slos-slides

97 of 98

ありがとう!

アンケートにも答えてね!

Insert QR code link

to feedback form

in this space!

Insert QR code link

to feedback form

in this space!

https://cre.page.link/art-of-slos-slides

98 of 98

Q&A

パネリストに質問をどうぞ!

https://cre.page.link/art-of-slos-slides