Slide 1

Slide 1 text

© SmartHR, Inc. サービスレベル⽬標による 信頼性への投資最適化 齋藤 諒⼀ SmartHR VP of Engineering 2025/10/15 画像を置換 画像を置換 佐藤 沢彦 SmartHR SRE

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

今⽇のお話 ✨“信頼性” 5

Slide 6

Slide 6 text

💡信頼性とは? “求められる機能を、定められた条件の下で、定め られた期間にわたり、障害を起こすことなく実⾏す る確率”[1] 6 [1] Betsy Beyer、 Chris Jones Jennifer Petoff、 Niall Richard Murphy編/澤田武男、関根達夫、細川一茂、矢吹大輔監訳/ Sky株式会社 玉川竜司訳 『SRE サイトリライ ア ビリティエンジニアリング – Google の信頼性を支えるエンジニアリングチーム』株式会社オーム社、 2017年、p.xiv 「期待通りに使える」

Slide 7

Slide 7 text

信頼性が低い状態とは? ❏ 遅い ❏ 動かない 7

Slide 8

Slide 8 text

信頼性が低いと…… ❏ ECサイト ➠ユーザーが離脱しほかで買い物 ❏ 広告 ➠ みてもらえない ❏ 定額制サービス ➠ 解約 8

Slide 9

Slide 9 text

9 どこまで信頼性に投資すべきか? ✔ 100msのレスポンスを95msに改善! ✔ 0.001%の確率で発⽣するエラーを改善! 他の機能を作っていたほうがユーザーのため になったのでは?

Slide 10

Slide 10 text

10 信頼性 機能開発 信頼性と機能開発 への投資のバラン スを取る必要があ る

Slide 11

Slide 11 text

信頼性の計測

Slide 12

Slide 12 text

Webアプリケーションの信頼性指標 ❏ レイテンシー ❏ 悪化すれば「遅い」と⾔われる ❏ エラーレート ❏ 悪化すれば「動かない」と⾔われる 12

Slide 13

Slide 13 text

13 機能開発 システムの複雑さ⬆ レイテンシー悪化 エラーレート悪化 機能開発を⾏えば⾏うほ ど、信頼性は下がってし まう 信頼性 の低下

Slide 14

Slide 14 text

14 機能開発 レイテンシー エラーレート

Slide 15

Slide 15 text

15 機能開発 レイテンシー エラーレート レイテンシーやエラー レートのような信頼性を 計測し、開発計画を変え ることが重要

Slide 16

Slide 16 text

16 信頼性を計測し開発計画を変更.... やってない.... というひとがいるかもしれません

Slide 17

Slide 17 text

17 たぶん、(暗黙的 に)信頼性を計測 しててます

Slide 18

Slide 18 text

“それ※をどうやって計測しますか?ほとんど の⼈にとって、その答えは「今⽇誰が怒鳴っ ているかによる」でしょう”[2] 18 [2] David N. Blank-Edelman著/山口能迪訳 『SREをはじめよう – 個人と組織による信頼性獲得への第一歩』株式会社オーム社、 2024年、p.174 文字の強調(色分け)は引用者によるものです ※引⽤者注: 信頼性のこと

Slide 19

Slide 19 text

「誰が怒鳴っているか」による信頼性計測 ⼈数ベース 19 数⼈が怒って いる😠😠😠 誰も怒ってい ない😊 たくさんの⼈ が怒っている 😡😡😡😡 😡😡😡😡 😡😡😡😡 信頼性高 信頼性中 信頼性低

Slide 20

Slide 20 text

20 営業部⻑が 怒っている 😠 ⼀般社員しか 怒ってない 😊 重要ユーザーが 怒っている😡 信頼性高 信頼性中 信頼性低 「誰が怒鳴っているか」による信頼性計測 ロールベース

Slide 21

Slide 21 text

「誰が怒鳴っているか」に よる信頼性計測の問題点

Slide 22

Slide 22 text

22 信頼性に投資すべきときに投資できない 機能開発 レイテンシー エラーレート だれかを怒ら せるライン 信頼性への投 資を開始すべ きライン ❏ 誰かを怒らせて初め て信頼性の低下に気 づく ❏ 対応が後⼿に回る ❏ 発覚したときは緊急 事態

Slide 23

Slide 23 text

23 信頼性に投資すべき所に投資できない ❏ 1⼈の意⾒だとしても声の⼤きさや、地位の⾼さ、ビジネ ス上の関係値によって、投資対象が決まる ❏ 信頼性の悪化は、極端な使われ⽅や偶発的な問題によっ て、ごく⼀部の⼈だけにしか影響していなかった可能性 必ずしも優先度の⾼い信頼性の問題 に対処できるわけではない

Slide 24

Slide 24 text

24 今⽇は「誰が怒鳴っているか」よ り良いやり⽅を紹介します!

Slide 25

Slide 25 text

サービルレベル⽬標 (SLO)とはなにか?

Slide 26

Slide 26 text

● サービルレベル⽬標(SLO)とは? ○ ➠ サービスレベル指標(SLI)に対する ⽬標値 ● サービルレベル指標(SLI)とは? ○ ➠ 信頼性に対するユーザーの満⾜度を 測ることのできる指標 26

Slide 27

Slide 27 text

27 ECサイトにおけるSLIの具体例 ❏ 「トップページ」表⽰のレイ テンシー ❏ 「カートへ追加」ボタンのレ イテンシー ❏ 「購⼊」ボタンのエラーレー ト “悪くなったときにユーザーが不満を抱く指標”

Slide 28

Slide 28 text

28 ❏ 「トップページ」表⽰のレイテンシー※が2秒以内 ❏ 「カートへ追加」ボタンのレイテンシー※が4秒以内 ❏ 「購⼊」ボタンのエラーレートが1%以内 SLIに対する⽬標値がSLOになる ※実際はp99、p95といった下位N%を除外した最も悪いレイテンシーの値が採⽤されま す。レイテンシーはネットワークの状態によって極端な悪い値が出ることがあるため、 SLOでは平均値ではなく、このような統計値が採⽤されます。

Slide 29

Slide 29 text

29 SLOを使った投資判断 現在 過去 未来 過去の⼀定期間のSLIを集計 SLOを達成? 機能開発に 投資 信頼性に投 資 true false これからの投資を決定

Slide 30

Slide 30 text

SLO導⼊前のSmartHR

Slide 31

Slide 31 text

31 新機能A開発 新機能B開発 新機能C開発 SLO導⼊前のSmartHR ❏ 基本は新機能の開発が続く ❏ 信頼性への投資は “問い合わせ があった時” ❏ ⾃発的な信頼性への投資もある が、エンジニアのセンスと興味 次第

Slide 32

Slide 32 text

32 SLO導⼊前のSmartHR 適切な時に適切な信頼性への投 資が⾏えなかったため、信頼性 の問題が積み重なっていってし まった... ⼤規模な障害につな がってしまう...

Slide 33

Slide 33 text

SmartHR⼤規模障害

Slide 34

Slide 34 text

❏ 2024/9頃からSmartHR全体の信頼性が許容不能な レベルまで低下 ❏ レイテンシーが極端に悪化したり、レスポンスがエ ラーになる事象がユーザーから多数報告される

Slide 35

Slide 35 text

35 当時のSLO 当時はSLOは⼀応定義されている状態(運⽤されていない)

Slide 36

Slide 36 text

❏ 9⽉だけで7回の“アクセス しづらい不具合”のお知ら せ ❏ 復旧を宣⾔しても、その後 アクセスしづらい事象が再 発

Slide 37

Slide 37 text

❏ 相互に依存する問題が多数発⽣していた ❏ どれか1つへの対処を⾏っても信頼性が根本的に回復しな かった ❏ →このため何度も復旧宣⾔をしてしまった DBコネクション枯渇 スロークエリ 不適切なIndexの利用 DBのCPU不足 リクエストの滞留 なにが起きていたのか?

Slide 38

Slide 38 text

38 ⼤規模障害への反省 ❏ 本来なら逐次的に対応が⾏われているべきだった ❏ 根本的な原因は信頼性への投資を適切に⾏えない 開発プロセス SLOの本格的な導⼊へ

Slide 39

Slide 39 text

SLO導⼊後のSmartHR

Slide 40

Slide 40 text

40 SLO導⼊後のSmartHR スプリント スプリント スプリント 👁 SLOの確認 👁 SLOの確認 👁 SLOの確認 ❏ 1スプリントに1回、SLOの 確認を実施 ❏ SLOを達成したか否かに応 じて次のスプリントでのタ スクを調整 ※より洗練された運⽤ではSLOの未達成の程度 (エラーバジェット)に応じて、信頼性へ の投資を⾏うかを調整することがあります

Slide 41

Slide 41 text

41 SLO前 SLO後 判断タイミング 問い合わせが来たら 定期的な監視 信頼性対応時の 開発体制 緊急対応になりがち 通常のスプリントの中で消化 判断基準 問い合わせの性質‧量 計測による 判断をする⼈ 問い合わせに対応する⼈ が中⼼ プロダクトオーナー含むチーム全 体の合意に基づく 信頼性への投資がどう変わったか?

Slide 42

Slide 42 text

42 信頼性に対して、必要な時に必 要な投資を⾏う体制が確⽴🎉 事業成⻑への投資も安⼼

Slide 43

Slide 43 text

まとめ

Slide 44

Slide 44 text

まとめ 1. 「誰が怒鳴っているか」による信頼性 計測の問題点 2. SLOによって、信頼性に対して適切な 投資ができるようになる 3. SmartHRでは信頼性投資をSLOで改善

Slide 45

Slide 45 text

SLOをやってみたい場合

Slide 46

Slide 46 text

46

Slide 47

Slide 47 text

No content