Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

0.講師⾃⼰紹介 n ⼤園 隼⼈ • 所属 ︓クラウドインテグレーション事業部 MSP セクション 東京第2グループ グループリーダー • 経歴 ︓零細企業で⾊々なお仕事 ( 2年 ) ネットワーク保守監視業務 ( 2年 ) • ひとこと ︓雲勉初登壇です︕外部向けの発表⾃体が初なので お⼿柔らかにお願いしますmm 2

Slide 3

Slide 3 text

0.受講想定者 ・Google SRE に興味がある / 興味はあるが、理解まで難しいと感じている ・SLI / SLO の導⼊を検討している、サービスレベルの計測をしたいと考えている ・New Relic に興味がある 補⾜︓内部機能 ( Dashboards ) のハンズオンを⾏うため 多少触れたことがあると尚良いです︕ 3

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

アジェンダ 0. ⾃⼰紹介 受講想定者 1. Google SRE について 2. SLI / SLO への理解 3. New Relic 導⼊ - ハンズオン 4. 終わりに 5. 質疑応答 5

Slide 6

Slide 6 text

1. Google SRE について 6

Slide 7

Slide 7 text

1.Google SRE について – 概要 7 SRE ( Site Reliability Engineer(ing) ) → ⽇本語訳では「サイト信頼性エンジニアリング」

Slide 8

Slide 8 text

1.Google SRE について – 信頼性 とは︖ 8 どのようなシステム、サービスにおいても 最も重要な機能は 信頼性 である → サービスの信頼性が著しく失われると ユーザーからの信⽤、関⼼も容易に失われてしまう

Slide 9

Slide 9 text

1.Google SRE について – 信頼性 とは︖ 9 信頼性 を⾼くして 100% にすれば良いの︖ ✖ 基本的にどんなときでも 100%は誤った信頼性 の⽬標

Slide 10

Slide 10 text

1.Google SRE について – 信頼性 とは︖ 10 常に新機能を追加しているサービスにとって 信頼性 と 機能追加 (=変更) はトレードオフ

Slide 11

Slide 11 text

1.Google SRE について – SRE とは︖ 11 SRE とは... サービスの信頼性の⽋如におけるリスク と イノベーション ( 開発 ) の速度、サービスの運⽤効率性 との バランスを取るためのプラティクス および 役割

Slide 12

Slide 12 text

1.Google SRE について – SLI / SLO への理解 12 サービスの信頼性は⾼くすればするほど良い訳ではない 問題は「どこで線を引くべきか︖」

Slide 13

Slide 13 text

1.Google SRE について – SLI / SLO への理解 13 そもそもサービスが「うまく稼働している」はどう⾒分けるの︖ → 可⽤性、レイテンシーなどなどを計測する必要がある

Slide 14

Slide 14 text

2. SLI / SLO への理解 14

Slide 15

Slide 15 text

2.SLI / SLO への理解 – 概要 SLA ( Service Level Agreement / サービスレベル契約 ) Ø サービスの信頼性に関する顧客との取り決め SLO ( Service Level Objective / サービスレベル⽬標 ) Ø SLA に抵触する前にサービスの信頼性に関する問題を検知するためのしきい値 SLI ( Service Level Indicator / サービスレベル指標 ) Ø SLO を満たすために計測すべき指標 / 尺度 15

Slide 16

Slide 16 text

2.SLI / SLO への理解 – SLI 参考例 例えば cloudpack のトップページの表⽰が 2秒 以内である割合だったり 16

Slide 17

Slide 17 text

2.SLI / SLO への理解 – SLI 参考例 あるいは cloudpack の公式ページから問い合わせをした際の リクエスト処理成功割合 ( HTTPステータスコード 5xx 以外のものなど ) などを定めたもの 17

Slide 18

Slide 18 text

2.SLI / SLO への理解 – SLI とは︖ 要するに... サービスを利⽤するユーザーが 体験する上で期待しているようなこと や ユーザーの 満⾜するであろうこと を SLI として定義するとよい 18

Slide 19

Slide 19 text

2.SLI / SLO への理解 – SLI とは︖ SLI︓ 良いイベント ✖ 100% 有効なイベント 19

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

2.SLI / SLO への理解 – エラーバジェット とは︖ エラーバジェットの使い道としては... ・新しい機能のリリース ・予定されたシステムの変更 ・避けられないハード、ネットワークの障害 ・計画停⽌ ・リスクの⾼い実験 などに使える 24

Slide 25

Slide 25 text

2.SLI / SLO への理解 – メリット SLI / SLO を策定することで... ・どのレベルのサービス品質を⽬指して 開発 / 運⽤をするのかの指針 ・エラーバジェットにより エラーの概念を変えて開発や運⽤の活動にエラーの予算を利⽤できる = 適度なサービスの品質を保つ ≒ ⾼いパフォーマンスの維持 に繋がる 25

Slide 26

Slide 26 text

3. New Relic 導⼊ - ハンズオン 26

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

4. 終わりに 32

Slide 33

Slide 33 text

4.終わりに ・SLI の導⼊で 開発のスピード と サービスの信頼性 の バランスを取れる ・New Relic での SLI / SLO の実導⼊はそこまで時間は掛かりません ただし、SRE チームの作成、SLO / SLI の 定義、どのように活⽤するかの検討には時間が掛かるかも... ・SLI / SLO の定義にはサンプルが沢⼭あるので、ぜひ検索してみてください︕ → SRE Google - Example SLO Document 33 ・SRE の原則としてシステムの最も重要な機能は「信頼性」であると⾔うこと

Slide 34

Slide 34 text

4.終わりに – 最後の最後に︕ 今回は SRE、SLI / SLO の基礎的な部分をお話しましたが ユーザージャーニー、トイルなどなどのもっとたくさんのプラティクスが Google SRE 本 にまとめられています︕ オンラインだと 無料 で閲覧可能 ( 英⽂のみ ) のため 興味を持った⽅はぜひ読んでみてくださいmm → SRE Books 34

Slide 35

Slide 35 text

EOF 35