Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第89回 雲勉【オンライン:初心者向け】実践!SLI/SLO with New Relic!

l_tanno
November 25, 2022

第89回 雲勉【オンライン:初心者向け】実践!SLI/SLO with New Relic!

l_tanno

November 25, 2022
Tweet

More Decks by l_tanno

Other Decks in Technology

Transcript

  1. 第89回 雲勉【オンライン︓初⼼者向け】 実践︕SLI/SLO with New Relic︕ 2022/11/24

  2. 0.講師⾃⼰紹介 n ⼤園 隼⼈ • 所属 ︓クラウドインテグレーション事業部 MSP セクション 東京第2グループ

    グループリーダー • 経歴 ︓零細企業で⾊々なお仕事 ( 2年 ) ネットワーク保守監視業務 ( 2年 ) • ひとこと ︓雲勉初登壇です︕外部向けの発表⾃体が初なので お⼿柔らかにお願いしますmm 2
  3. 0.受講想定者 ・Google SRE に興味がある / 興味はあるが、理解まで難しいと感じている ・SLI / SLO の導⼊を検討している、サービスレベルの計測をしたいと考えている

    ・New Relic に興味がある 補⾜︓内部機能 ( Dashboards ) のハンズオンを⾏うため 多少触れたことがあると尚良いです︕ 3
  4. 0.受講想定者 New Relic の知識に不安がある⽅は 以下のウェビナーを受講するとより理解が深まります︕ Ø New Relic はじめの⼀歩 概要編

    ­ https://newrelic.com/jp/events/2020-08-06/webinar-first-steps-overview Ø New Relic ダッシュボードワークショップ( NRQL ⼊⾨編 ) ­ https://newrelic.com/jp/events/2020-11-29/nru-201-202008271-ty 4
  5. アジェンダ 0. ⾃⼰紹介 受講想定者 1. Google SRE について 2. SLI

    / SLO への理解 3. New Relic 導⼊ - ハンズオン 4. 終わりに 5. 質疑応答 5
  6. 1. Google SRE について 6

  7. 1.Google SRE について – 概要 7 SRE ( Site Reliability

    Engineer(ing) ) → ⽇本語訳では「サイト信頼性エンジニアリング」
  8. 1.Google SRE について – 信頼性 とは︖ 8 どのようなシステム、サービスにおいても 最も重要な機能は 信頼性

    である → サービスの信頼性が著しく失われると ユーザーからの信⽤、関⼼も容易に失われてしまう
  9. 1.Google SRE について – 信頼性 とは︖ 9 信頼性 を⾼くして 100%

    にすれば良いの︖ ✖ 基本的にどんなときでも 100%は誤った信頼性 の⽬標
  10. 1.Google SRE について – 信頼性 とは︖ 10 常に新機能を追加しているサービスにとって 信頼性 と

    機能追加 (=変更) はトレードオフ
  11. 1.Google SRE について – SRE とは︖ 11 SRE とは... サービスの信頼性の⽋如におけるリスク

    と イノベーション ( 開発 ) の速度、サービスの運⽤効率性 との バランスを取るためのプラティクス および 役割
  12. 1.Google SRE について – SLI / SLO への理解 12 サービスの信頼性は⾼くすればするほど良い訳ではない

    問題は「どこで線を引くべきか︖」
  13. 1.Google SRE について – SLI / SLO への理解 13 そもそもサービスが「うまく稼働している」はどう⾒分けるの︖

    → 可⽤性、レイテンシーなどなどを計測する必要がある
  14. 2. SLI / SLO への理解 14

  15. 2.SLI / SLO への理解 – 概要 SLA ( Service Level

    Agreement / サービスレベル契約 ) Ø サービスの信頼性に関する顧客との取り決め SLO ( Service Level Objective / サービスレベル⽬標 ) Ø SLA に抵触する前にサービスの信頼性に関する問題を検知するためのしきい値 SLI ( Service Level Indicator / サービスレベル指標 ) Ø SLO を満たすために計測すべき指標 / 尺度 15
  16. 2.SLI / SLO への理解 – SLI 参考例 例えば cloudpack のトップページの表⽰が

    2秒 以内である割合だったり 16
  17. 2.SLI / SLO への理解 – SLI 参考例 あるいは cloudpack の公式ページから問い合わせをした際の

    リクエスト処理成功割合 ( HTTPステータスコード 5xx 以外のものなど ) などを定めたもの 17
  18. 2.SLI / SLO への理解 – SLI とは︖ 要するに... サービスを利⽤するユーザーが 体験する上で期待しているようなこと

    や ユーザーの 満⾜するであろうこと を SLI として定義するとよい 18
  19. 2.SLI / SLO への理解 – SLI とは︖ SLI︓ 良いイベント ✖

    100% 有効なイベント 19
  20. 2.SLI / SLO への理解 – SLO とは︖ その上で... 定義した SLI

    に対しての ⽬標ならびにしきい値 を SLO として策定 例 )SLI が cloudpack のトップページの表⽰が 2秒 以内で成功した割合とした場合に 99% 以上 を SLO ( ⽬標値 ) とする 20
  21. 2.SLI / SLO への理解 – SLO とは︖ SLO は ギリギリ達成できれば

    サービスの典型的なユーザーが満⾜するような、⽬標値とすべき 「SLO を満たしている」 ⇄ 「ユーザーが満⾜している」 「SLO を満たしていない」⇄ 「ユーザーは不満である」 21
  22. 2.SLI / SLO への理解 – SLO とは︖ SLO の ⽬標設定には

    ⽬標値 と 測定期間 の両⽅を設定 22 SLO の種類 ⽬標 可⽤性 過去 28 ⽇ で 97% の成功 レイテンシー 過去 28 ⽇ で リクエストの 99% < 2000ms ... ...
  23. 2.SLI / SLO への理解 – エラーバジェット とは︖ エラーバジェット ( ⾮信頼性予算

    ) とは... サービスの信頼性がある程度損なわれても許容出来る指標 =割り当てることができる予算になる 例 )SLO が 99% の⽬標値であった場合に残りの 1% は エラー を許容しても良い 23
  24. 2.SLI / SLO への理解 – エラーバジェット とは︖ エラーバジェットの使い道としては... ・新しい機能のリリース ・予定されたシステムの変更

    ・避けられないハード、ネットワークの障害 ・計画停⽌ ・リスクの⾼い実験 などに使える 24
  25. 2.SLI / SLO への理解 – メリット SLI / SLO を策定することで...

    ・どのレベルのサービス品質を⽬指して 開発 / 運⽤をするのかの指針 ・エラーバジェットにより エラーの概念を変えて開発や運⽤の活動にエラーの予算を利⽤できる = 適度なサービスの品質を保つ ≒ ⾼いパフォーマンスの維持 に繋がる 25
  26. 3. New Relic 導⼊ - ハンズオン 26

  27. 3.New Relic 導⼊ – Dashboards ( レイテンシー ) 前提条件 :

    Browser Agent をサーバーへ導⼊済 オレンジのライン が SLI で iret.media の表⽰速度が 2秒 以内で定義 緑のライン が SLO で今回は 99% で策定 27
  28. 3.New Relic 導⼊ – Dashboards ( レイテンシー ) SELECT percentage(count(*),

    WHERE duration <= 2), 0.99 as 'SLO' FROM PageView WHERE pageUrl = 'https://iret.media/' AND appName = 'service_MEDIA-PRD_php' TIMESERIES AUTO SINCE 1 day ago NRQL : オレンジの⽂ が SLI で iret.media の表⽰速度が 2秒 以内で定義 緑の⽂ が SLO で 今回は 99% で策定 28
  29. 3.New Relic 導⼊ – Dashboards ( 可⽤性 ) オレンジのライン が

    SLI で cloudpack.jp の リクエスト処理成功割合 で定義 緑のライン が SLO で 今回は 97% で策定 前提条件 : APM Agent をサーバーへ導⼊済 29
  30. 3.New Relic 導⼊ – Dashboards ( 可⽤性 ) NRQL :

    オレンジの⽂ が SLI で cloudpack.jp の リクエスト処理成功割合 で定義 緑の⽂ が SLO で 今回は 97% で策定 SELECT percentage(count(*), WHERE httpResponseCode < '400'), 0.97 as 'SLO' FROM Transaction WHERE name = 'WebTransaction/Uri/index.php' AND appName = 'service_CLP-PRD_php' TIMESERIES AUTO SINCE 1 day ago 30
  31. 3.New Relic 導⼊ – Service levels 機能 1. New Relic

    機能メニュー から Service levels を選択 2. Add a service level indicator (SLI) から SLI を定義 データの収集しているサービス、対象 Entity を選択 2. 3. プリセット選択 もしくは カスタマイズした SLI を作成 3. 4. 設定完了したら画像のように、GUI 上で期間ごとの SLI の確認が容易になる 31
  32. 4. 終わりに 32

  33. 4.終わりに ・SLI の導⼊で 開発のスピード と サービスの信頼性 の バランスを取れる ・New Relic

    での SLI / SLO の実導⼊はそこまで時間は掛かりません ただし、SRE チームの作成、SLO / SLI の 定義、どのように活⽤するかの検討には時間が掛かるかも... ・SLI / SLO の定義にはサンプルが沢⼭あるので、ぜひ検索してみてください︕ → SRE Google - Example SLO Document 33 ・SRE の原則としてシステムの最も重要な機能は「信頼性」であると⾔うこと
  34. 4.終わりに – 最後の最後に︕ 今回は SRE、SLI / SLO の基礎的な部分をお話しましたが ユーザージャーニー、トイルなどなどのもっとたくさんのプラティクスが Google

    SRE 本 にまとめられています︕ オンラインだと 無料 で閲覧可能 ( 英⽂のみ ) のため 興味を持った⽅はぜひ読んでみてくださいmm → SRE Books 34
  35. EOF 35