Slide 1

Slide 1 text

Qiita Conference 2023 SREによる信頼性の 高いサービス提供への挑戦 ~定量的観測と改善のサイクルによる データドリブンなサービス信頼性管理~ 莊 亞帆 株式会社うるる おもいで事業グループ えんフォト事業部開発課 Engineering Manager

Slide 2

Slide 2 text

Qiita Conference 2023 Opening あなたの開発チームは下記のことに困っていませんか? 開発チームがデリバリーファーストで開発をどんどん進めた結果、 いつのまにか、 突発的な障害対応に費やした時間がだんだん長くなり、 その影響でデリバリーの速度がどんどん落ちている。 改善はしたいけど、 開発の納期に間に合うために改善する余裕も徐々になくなり、 悪循環の日々が続く。。。

Slide 3

Slide 3 text

Qiita Conference 2023 本セッション想定の視聴者とゴール 想定の視聴者 1. サービスの信頼性を効率的に改善する方法を知りたい方。 2. 継続的にサービスの信頼性を維持しながら 開発を進める方法を知りたい方。 本日のゴール 1. 定量的観測と改善のサイクルによるデータドリブン なサービス信頼性管理のメリットを理解する 2. 本日紹介するサービス信頼性維持、向上の仕組み (SRE)を知り、導入のイメージをもてるようになる

Slide 4

Slide 4 text

Qiita Conference 2023 本日お話したいこと 1. 自己紹介 2. えんフォトの紹介 3. えんフォトのサービス信頼性管理における課題 4. SREを用いたデータドリブンなサービス信頼性管理方法の導入 5. まとめ 6. エンジニア採用のお知らせ

Slide 5

Slide 5 text

Qiita Conference 2023 自己紹介 えんフォトの 紹介 えんフォトのサ ービス信頼性管 理における課題 まとめ エンジニア採用 のお知らせ SREを用いたデー タドリブンなサー ビス信頼性管理方 法の導入 1. 2. 3. 4. 5. 6.

Slide 6

Slide 6 text

Qiita Conference 2023 自己紹介 莊 亞帆 (ソウ アハン) 経歴 ● 台湾出身、35歳 ● 2014年10月来日 ● Android App/Web APP/Infra/DevOps領域の開発を経験し、 2019年に株式会社うるるへジョイン ● うるるではCloud Solution Architect兼 Develop Team Scrum Masterとして活動 ● 現在はえんフォトのEMとして開発組織成長に務める 趣味 ● サウナ/温泉旅行 @YafanChuang @yafan_chuang

Slide 7

Slide 7 text

Qiita Conference 2023 自己紹介 えんフォトの 紹介 えんフォトのサ ービス信頼性管 理における課題 まとめ エンジニア採用 のお知らせ SREを用いたデー タドリブンなサー ビス信頼性管理方 法の導入 1. 2. 3. 4. 5. 6.

Slide 8

Slide 8 text

Qiita Conference 2023 えんフォトの紹介 ● 写真販売の手間を80%以上削減できる、保育園・幼稚園向け写真販売システム ● 2014年にサービスを開始 ● 4,100以上の園・27万人以上の保護者

Slide 9

Slide 9 text

Qiita Conference 2023 えんフォトの紹介:プロダクトビジョン 世界中のファミリーにもっと幸せな思い出を届けよう

Slide 10

Slide 10 text

Qiita Conference 2023 自己紹介 えんフォトの 紹介 えんフォトのサ ービス信頼性管 理における課題 まとめ エンジニア採用 のお知らせ SREを用いたデー タドリブンなサー ビス信頼性管理方 法の導入 1. 2. 3. 4. 5. 6.

Slide 11

Slide 11 text

Qiita Conference 2023 えんフォトのサービス信頼性管理における課題 えんフォト従来のサービス信頼性の管理方法:リアクティブなアプローチ アラート通知 開発チーム どんどん開発を進める システムメトリクス監視 死活監視 エラー監視 監視 インフラレイヤー アプリケーションレイヤー 課題解消 運用保守チーム

Slide 12

Slide 12 text

Qiita Conference 2023 えんフォトのサービス信頼性管理における課題 えんフォト従来のサービス信頼性の管理方法:リアクティブなアプローチ システムメトリクス監視 死活監視 アラート通知 監視 開発チーム どんどん開発を進める インフラレイヤー 課題解消 運用保守チーム 開発チームはデリバリーを優先する。 デリバリーを優先した結果、 十分に信頼性を考慮できず、 運用保守対応工数が慢性的に増える。 エラー監視 アプリケーションレイヤー

Slide 13

Slide 13 text

Qiita Conference 2023 えんフォトのサービス信頼性管理における課題 えんフォト従来のサービス信頼性の管理方法:リアクティブなアプローチ システムメトリクス監視 死活監視 アラート通知 監視 DevOpsチーム どんどん開発を進める インフラレイヤー 課題解消 DevOpsチーム 結局、運用保守工数が増え、開発スピード がどんどん落ちてしまう。 エラー監視 アプリケーションレイヤー

Slide 14

Slide 14 text

Qiita Conference 2023 えんフォトのサービス信頼性管理における課題 十分に信頼性を考慮して開発を進めればいいのだが。。。 どこまで考慮すればいいのか? どういう状態が信頼性のあるサービスだと言えるのか? 目指す目標はなんだろうか? 信頼性の評価の基準はなんだろうか?

Slide 15

Slide 15 text

Qiita Conference 2023 えんフォトのサービス信頼性管理における課題 サービスの信頼性が低いと誰も喜ばないと分かるのだが。。。 私達エンジニアは常に様々な制約と戦う中で、 完璧なシステムを作ることはなかなか難しい。 そして、非常に労力がかかる。 コスト 品質 納期

Slide 16

Slide 16 text

Qiita Conference 2023 えんフォトのサービス信頼性管理における課題 エンジニア カスタマーサポート ユーザー ビジネスサイド 皆を幸せにする方法はないか?

Slide 17

Slide 17 text

Qiita Conference 2023 自己紹介 えんフォトの 紹介 えんフォトのサ ービス信頼性管 理における課題 まとめ エンジニア採用 のお知らせ SREを用いたデー タドリブンなサー ビス信頼性管理方 法の導入 1. 2. 3. 4. 5. 6.

Slide 18

Slide 18 text

Qiita Conference 2023 SREを用いたデータドリブンなサービス信頼性管理方法の導入 SREとは ● Site Reliability Engineering ● サイトの信頼性を向上、維持する仕組み ● Start by Google

Slide 19

Slide 19 text

Qiita Conference 2023 SREを用いたデータドリブンなサービス信頼性管理方法の導入 なぜSREを導入するのか? リアクティブなアプローチ ↓ プロアクティブなアプローチへ ● 障害の発生を前提にシステムを設計、開発する。 ● 定量的な信頼性指標と目標を策定し、達成する前提で開発 を行う。 ● システム維持、運用作業を自動化し、重複的な価値の低い 手動作業を排除することで、ヒューマンエラーやオペレー ションコストを抑える。

Slide 20

Slide 20 text

Qiita Conference 2023 SREを用いたデータドリブンなサービス信頼性管理方法の導入 なぜSREを導入するのか? エンジニア カスタマーサポート ユーザー ビジネスサイド SREの仕組みを用いることで、 具体的な指標や目標を持って 求めるサービスの信頼性レベルを維持する前提で どんどん開発することができる。

Slide 21

Slide 21 text

Qiita Conference 2023 SREを用いたデータドリブンなサービス信頼性管理方法の導入 なぜSREを導入するのか? エンジニア カスタマーサポート ユーザー ビジネスサイド つまり、 全員が納得の行く基準でサービスの信頼性を維持できる。

Slide 22

Slide 22 text

Qiita Conference 2023 SREを用いたデータドリブンなサービス信頼性管理方法の導入 ・障害系の問い合わせやクレームを減らしたい。 カスタマーサポート ・障害によるビジネス損失をしたくない。 ・新しい機能をどんどん開発してほしい。 ビジネスサイド ・開発に集中したい。 ・適切な運用/保守の工数を確保したい。 エンジニア ・安定、快適にサービスを利用したい。 ユーザー 全員が納得の行く基準をどうやって決める?

Slide 23

Slide 23 text

Qiita Conference 2023 ・安定、快適にサービスを利用したい。 ・障害によるビジネス損失をしたくない。 ・新しい機能をどんどん開発してほしい。 ・障害系の問い合わせやクレームを減らしたい。 ・開発に集中したい。 ・適切な運用/保守の工数を確保したい。 求めること 求めることに対する具体的な定義 (何がどの状態であるか?) = ? (具体的な指標) SREを用いたデータドリブンなサービス信頼性管理方法の導入

Slide 24

Slide 24 text

Qiita Conference 2023 SREにおけるサービス信頼性維持の仕組み 保証事項に対する定量的な指標 各SLI指標の維持目標値 一定期間の維持目標に対する達成度合い SREを用いたデータドリブンなサービス信頼性管理方法の導入 例:サービスの安定稼働 SLO (Service Level Objective) SLI (Service Level Indicator) Error Budget SLA (Service Level Agreement) サービスの信頼性レベルの保証事項 サービスの稼働時間は99.5%の可用性を 保証する ・サービスの応答確認OK(200 OK)の合計 時間 ・1ヶ月の応答確認OK(200 OK)の合計時間 が99.9%以上である Error Budgetの消耗状況 = 46% (例)

Slide 25

Slide 25 text

Qiita Conference 2023 SREを用いたデータドリブンなサービス信頼性管理方法の導入 Error Budget = 予算 = 許容範囲 サービスの稼働時間のSLO目標を99.9% 合計時間:720時間 許容範囲:43.2分 現状 = 20分間のダウンタイム発生 Error Budgetの消耗状況 = 46% 現状 = 40分間のダウンタイム発生 Error Budgetの消耗状況 = 93% どんどんリリースしてOK 改善活動をしたほうがいい

Slide 26

Slide 26 text

Qiita Conference 2023 1、保証事項(SLA)を定義し、指標(SLI)を定義する 3、指標に対する維持目標(SLO)を設定する 2、指標(SLI)を計測する 4、Error Budgetを監視し、目標(SLO)を達成する前提で開発と信頼 性維持、改善活動を行う SREを開始する流れ SREを用いたデータドリブンなサービス信頼性管理方法の導入 5、定期的にSLA、SLI、 SLOの見直しをする

Slide 27

Slide 27 text

Qiita Conference 2023 1、SLA(サービスレベルの保証事項)、SLIの定義(サービスレベル指標) SREを用いたデータドリブンなサービス信頼性管理方法の導入 求めること SLA例 ● サービスの継続稼働率は99.9%以上 ● リクエスト成功率は99.9%以上 ● 5秒以内に応答するリクエスト数が 99.9%以上 ● などなど。。。 保証したいサービスレベルの項目(SLA) ・安定、快適にサービスを利用したい。 ・障害によるビジネス損失をしたくない。 ・新しい機能をどんどん開発してほしい。 ・障害系の問い合わせやクレームを減らしたい。 ・開発に集中したい。 ・適切な運用/保守の工数を確保したい。

Slide 28

Slide 28 text

Qiita Conference 2023 1、SLA(サービスレベルの保証事項)、SLIの定義(サービスレベル指標) SREを用いたデータドリブンなサービス信頼性管理方法の導入 サービスの応答確認の200 OKの合計時間 / 月間合計時間 更にSLIにに落とし込む サービスの継続稼働率は99.9% 以上 保証したいサービスレベル (SLA) リクエスト成功率は99.9%以上 5秒以内に応答するリクエスト数 が99.9%以上 HTTPリクエストのレスポンスコードが500~599以外のリクエスト 数 / 月間リクエスト総数 5秒以内実行完了のWeb Transaction数 / 月間合計Web Transaction総数

Slide 29

Slide 29 text

Qiita Conference 2023 2、SLI(サービスレベル指標)の計測:計測、可視化、監視 SREを用いたデータドリブンなサービス信頼性管理方法の導入 サービスの応答確認の200 OKの合 計時間 / 月間合計時間 HTTPリクエストのレスポンスコー ドが500~599以外のリクエスト数 / 月間リクエスト総数 5秒以内実行完了のWeb Transaction数 / 月間合計Web Transaction総数 計測対象(SLI) 計測方法(例) 監視(例) Slack ErrorBudgetの確認 アラート確認 Dashboard Web Transaction計測 200 OK計測 様々なツールで メトリクス計測 独自の計測 サーバーレスの実 行時間計測 Prometheus Dashboard SLI/SLO/ ErrorBudgetの可視化 Dashboard Dashboard 集約

Slide 30

Slide 30 text

Qiita Conference 2023 SREを用いたデータドリブンなサービス信頼性管理方法の導入 3、SLO(サービスレベル目標)の設定:設定方法 現状で ギリギリで達成できる目標 理想の目標 達成できる? YES 維持、 改善し てみる ・リソースを増やす ・目標を下げる NO ・目標を現状維持 ・目標を上げる

Slide 31

Slide 31 text

Qiita Conference 2023 4、SLOの維持、向上 SREを用いたデータドリブンなサービス信頼性管理方法の導入 Spikeの原因はな にか? 1. 各SLI、SLO、ErrorBudgetをDashboardで可視化し、だれも見れる状態にする 2. 毎日の朝会でチームメンバーを集め、チェックをしてから行動を決める 月初~現時点までのSLI値が SLOを上回っているか? エラーバジェットの余剰分 はあるか? SLIの推移傾向は 想定通りか?

Slide 32

Slide 32 text

Qiita Conference 2023 SREを用いたデータドリブンなサービス信頼性管理方法の導入 4、SLOの維持、向上:エラーバジェットの燃焼速度の監視と使い切った時の対応 SLO維持できない可能性がある。 要注意 SLOを維持できない可能性が高い。 要対応 エラーバジェットポリシー エラーバジェットを使い切った時の対応ポリシー 例: ● リリースを凍結し、エラーバジェット が回復するまでに改善活動を行う。 ● 重要なリリースの場合は責任者権限で リリースを許可することができる

Slide 33

Slide 33 text

Qiita Conference 2023 5、定期見直し:SLOの見直し SREを用いたデータドリブンなサービス信頼性管理方法の導入 99.9% 99.9% 99.9% 99.99% (達成) 99.95% 99.7% (未達) 2人月 99.99% (引き上げ) 99.95% (現状維持) 99.9% (現状維持) 99.95% 99.99% 99.99 % 判断 理想値より上回 る→引き上げ サービスの応答確認の200 OKの 合計時間 / 月間合計時間 HTTPリクエストのレスポンスコ ードが500~599以外のリクエス ト数 / 月間リクエスト総数 5秒以内実行完了のWeb Transaction数 / 月間合計Web Transaction総数 リソースを投入し改善してみる ↓ 3人月 投入リソース SLI SLO (現状) 実績 修正後SLO SLO (理想)

Slide 34

Slide 34 text

Qiita Conference 2023 5、定期見直し:SLOの見直し SREを用いたデータドリブンなサービス信頼性管理方法の導入 投入リソース SLI SLO (現状) 99.9% 99.9% 99.9% 実績 99.99% 99.95% 99.7% (未達) 修正後SLO 2人月 99.99% (引き上げ) 99.95% (現状維持) 99.5% (引き下げ) SLO (理想) 99.95% 99.99% 99.99 % 判断 サービスの応答確認の200 OKの 合計時間 / 月間合計時間 HTTPリクエストのレスポンスコ ードが500~599以外のリクエス ト数 / 月間リクエスト総数 5秒以内実行完了のWeb Transaction数 / 月間合計Web Transaction総数 リソースを変更せず、 理想値を引き下げる

Slide 35

Slide 35 text

Qiita Conference 2023 5、定期見直し:SLI/SLAの見直し SREを用いたデータドリブンなサービス信頼性管理方法の導入 SLA/SLI 定期的に見直しをすべきな理由 サービスが常に変化するため、 SLA(それに伴うSLI、SLOも)はサービスの実態 と常に一致であるべきだから サービスの応答確認の200OKの合計時間 / 月間合計時間 HTTPリクエストのレスポンスコードが 500~599以外のリクエスト数 / 月間リク エスト総数 5秒以内実行完了のWeb Transaction数 / 月間合計Web Transaction総数 見直し

Slide 36

Slide 36 text

Qiita Conference 2023 自己紹介 えんフォトの 紹介 えんフォトのサ ービス信頼性管 理における課題 まとめ エンジニア採用 のお知らせ SREを用いたデー タドリブンなサー ビス信頼性管理方 法の導入 1. 2. 3. 4. 5. 6.

Slide 37

Slide 37 text

Qiita Conference 2023 まとめ 本日のゴール① 定量的観測と改善のサイクルによるデータドリブンな サービス信頼性管理のメリットを理解する エンジニア カスタマーサポート ユーザー ビジネスサイド SREの仕組みを用いることで、 全員が納得の行く基準でサービスの信頼性を維持できる。

Slide 38

Slide 38 text

Qiita Conference 2023 1、保証事項(SLA)を定義し、指標(SLI)を定義する 3、指標に対する維持目標(SLO)を設定する 2、指標(SLI)を計測する 4、Error Budgetを監視し、目標(SLO)を達成する 前提で開発と信頼性維持、改善活動を行う 本日のゴール② 本日紹介するサービス信頼性維持、向上の仕組み(SRE)を知り、 導入のイメージをもてるようになる まとめ 5、定期的にSLI、 SLOの見直しをする

Slide 39

Slide 39 text

Qiita Conference 2023 自己紹介 えんフォトの 紹介 えんフォトのサ ービス信頼性管 理における課題 まとめ エンジニア採用 のお知らせ SREを用いたデー タドリブンなサー ビス信頼性管理方 法の導入 1. 2. 3. 4. 5. 6.

Slide 40

Slide 40 text

Qiita Conference 2023 エンジニア採用のお知らせ うるるはエンジニア募集中です!! 興味ある方は右のQRコードで ULURUのEngineer Recruiting Site を是非見てみてください! https://engineer.uluru.biz/

Slide 41

Slide 41 text

Qiita Conference 2023 ご清聴ありがとうございました!!