Slide 1

Slide 1 text

Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. ©2022 Yahoo Japan Corporation All rights reserved. ~Yahoo! JAPANのSLI/SLOを⽤いた統合監視~ KaaS桶狭間の戦い ヤフー株式会社 システム統括本部 中村 昭太

Slide 2

Slide 2 text

©2022 Yahoo Japan Corporation All rights reserved. ヤフー株式会社 システム統括本部 • 2019年新卒⼊社 • KaaS運⽤チームに配属されて3年⽬ • 運⽤上のイケてないとこを解消していくのが好き 2 中村 昭太

Slide 3

Slide 3 text

©2022 Yahoo Japan Corporation All rights reserved. このセッションについて はじめに、ヤフーのKubernetes as a Service (以下KaaS) をご紹介し、少数のメン バーで膨⼤な数のKubernetesの機能の信頼性を担保する上で発⽣した課題について お話しします。 次に、その課題を解決するために構築したSLI/SLOの計測・監視システムについて と、SLI/SLOを活⽤し始めたことで新たに⽣じた課題への対処⽅法を共有します。 3

Slide 4

Slide 4 text

©2022 Yahoo Japan Corporation All rights reserved. アジェンダ 1. ヤフーのKaaSについて 2. KaaSの運⽤における課題 3. SLI/SLOの計測・監視を活⽤した運⽤ 4. SLI/SLOを活⽤し始めたことで新たに⽣じた課題 5. まとめと今後の展望 4

Slide 5

Slide 5 text

©2022 Yahoo Japan Corporation All rights reserved. アジェンダ 1. ヤフーのKaaSについて 2. KaaSの運⽤における課題 3. SLI/SLOの計測・監視を活⽤した運⽤ 4. SLI/SLOを活⽤し始めたことで新たに⽣じた課題 5. まとめと今後の展望 5

Slide 6

Slide 6 text

©2022 Yahoo Japan Corporation All rights reserved. ヤフーのKaaS 1.ヤフーのKaaSについて 6 • Z Labで開発されたKaaSソフトウェアを、ヤフーのKaaSチームが運⽤ • ヤフーのサービス開発チームに、Kubernetesクラスタを提供 Ϡϑʔ ,BB4ӡ༻νʔϜ 43&$3& Ϡϑʔ αʔϏε։ൃνʔϜ

Slide 7

Slide 7 text

©2022 Yahoo Japan Corporation All rights reserved. Kubernetesクラスタの利⽤状況の遷移 1.ヤフーのKaaSについて 7 $MVTUFST $MVTUFST $MVTUFST $MVTUFST $MVTUFST • Kubernetesクラスタ数: 1000+ • Node(VM)数: 33000+ • コンテナ数: 550000+ • 利⽤チーム数: 220+ $MVTUFST

Slide 8

Slide 8 text

©2022 Yahoo Japan Corporation All rights reserved. KaaS運⽤チームの業務の概要 1.ヤフーのKaaSについて 8 Ϡϑʔ ,BB4ӡ༻νʔϜ ਺໊ ,VCFSOFUFT $MVTUFS "11σϓϩΠ Ϡϑʔ αʔϏε։ൃ νʔϜ ,BB4σϓϩΠ ,T$MVTUFSσϓϩΠ ΫϥελΞυΦϯσϓϩΠ ,T$MVTUFS؂ࢹ ,TόʔδϣϯΞοϓ ໰͍߹ΘͤରԠ ໰୊ௐࠪ ,VCFSOFUFT $MVTUFS ,VCFSOFUFT $MVTUFS

Slide 9

Slide 9 text

©2022 Yahoo Japan Corporation All rights reserved. KaaSの運⽤や、これまで直⾯してきた課題と解決法について詳細は… 1.ヤフーのKaaSについて 9 IUUQTXXXTMJEFTIBSFOFUUFDICMPHZBIPPLVCFSOFUFT BTBTFSWJDFQSPEVDUJPOZKUDJOTIJCVZBBZKUD IUUQTXXXTMJEFTIBSFOFUUFDICMPHZBIPPLTKQ ಈը൛IUUQTXXXZPVUVCFDPNXBUDI WXC",F%;:

Slide 10

Slide 10 text

©2022 Yahoo Japan Corporation All rights reserved. 10 今回は 「ヤフーのKaaS運⽤チームが各種機能の信頼性を担保できているのか︖」 という点についてフォーカスします

Slide 11

Slide 11 text

©2022 Yahoo Japan Corporation All rights reserved. アジェンダ 1. ヤフーのKaaSについて 2. KaaSの運⽤における課題 3. SLI/SLOの計測・監視を活⽤した運⽤ 4. SLI/SLOを活⽤し始めたことで新たに⽣じた課題 5. まとめと今後の展望 11

Slide 12

Slide 12 text

©2022 Yahoo Japan Corporation All rights reserved. 信頼性とは… 1.ヤフーのKaaSについて 12 “[システムが]求められる機能を、定められた条件の下で、定められた期間 にわたり、障害を起こすことなく実⾏する確率” 0DP10$POOPSBOE",MFZOFS ʮ1SBDUJDBM3FMJBCJMJUZ&OHJOFFSJOHʯ UIFEJUJPO8JMFZ

Slide 13

Slide 13 text

©2022 Yahoo Japan Corporation All rights reserved. これまでの監視 2.KaaSの運⽤における課題 13 ͋ʔ͜ͷίϯςφ͕ མͪͯΔͳΒɺ LVCFDUMͰ ૢ࡞Ͱ͖ͳ͍ΑͶ ೝՄγεςϜ ࿈ܞ༻ίϯςφ "MFSU ,BB4ӡ༻νʔϜ

Slide 14

Slide 14 text

©2022 Yahoo Japan Corporation All rights reserved. 監視の課題1 – 機能が正常かは部分的な監視のみでは不⼗分である 2.KaaSの運⽤における課題 14 ΞϥʔτඈΜͰ͖ͯͳ͍ʂ ؾ෇͚ͳ͔ͬͨʜ ೝՄγεςϜ ࿈ܞ༻ίϯςφ αʔϏε։ൃνʔϜ LVCFDUM࢖͑ͳ͍Μ Ͱ͚͢Ͳʁ • 原因: kube-apiserverの不調, NW, マシンリソース, 認可システムDown, etc… ✨ ✨ ,BB4ӡ༻νʔϜ

Slide 15

Slide 15 text

©2022 Yahoo Japan Corporation All rights reserved. 監視の課題1 – 機能が正常かは部分的な監視のみでは不⼗分である 2.KaaSの運⽤における課題 15 Ξϥʔτى͖ͯΔ͚Ͳ ͜ΕͰԿͷػೳ͕࢖͑ ͳ͘ͳΔΜͩʜ ,BB4ӡ༻νʔϜ ೝՄγεςϜ ࿈ܞ༻ίϯςφ "MFSU • kubectlを使えない。本当にそれだけ…︖

Slide 16

Slide 16 text

©2022 Yahoo Japan Corporation All rights reserved. 監視の課題2 – 具体的な影響範囲・MTTR(平均修復時間)の特定が難しい 2.KaaSの運⽤における課題 16 ͍͔ͭΒෆௐͩͬͨΜͩʜ ͲͷΫϥελͰ໰୊͕ൃੜ ͍ͯ͠ΔΜͩʜ αʔϏε։ൃνʔϜ ͏͕ͪ࢖͍ͬͯΔ Ϋϥελ͸Өڹ ͋Γ·͔͢ʁ 🔥 🔥 ,BB4ӡ༻νʔϜ

Slide 17

Slide 17 text

©2022 Yahoo Japan Corporation All rights reserved. 監視の課題2 – 具体的な影響範囲・MTTR(平均修復時間)の特定が難しい 2.KaaSの運⽤における課題 17 • 障害対応後、再発防⽌のためにポストモーテムを作成する • 影響範囲・MTTRを特定できないと、具体的なダメージコントロールの改善策を打ち 出せない ো֐ൃੜ࣌ؒ ো֐Өڹൣғ ΑΓ୹͘ ΑΓڱ͘

Slide 18

Slide 18 text

©2022 Yahoo Japan Corporation All rights reserved. 監視の課題3 – 多発するアラートの対応にコストがかかる 2.KaaSの運⽤における課題 18 ,BB4ӡ༻νʔϜ "MFSU "MFSU "MFSU • 1000クラスタもあればアラートの数も… 🔥 🔥 🔥

Slide 19

Slide 19 text

©2022 Yahoo Japan Corporation All rights reserved. どうやって監視の課題を解決するのか︖ 2.KaaSの運⽤における課題 19 「機能が正常かは部分的な監視のみでは不⼗分である」 「具体的な影響範囲・MTTRの特定が難しい」 ֤,VCFSOFUFTΫϥελͰ4-*Λܭଌ͠ɺ ू໿ͯ͠4-0ͷҧ൓Λ؂ࢹͰ͖Ε͹Αͦ͞͏ʂ 「多発するアラートの対応にコストがかかる」

Slide 20

Slide 20 text

©2022 Yahoo Japan Corporation All rights reserved. アジェンダ 1. ヤフーのKaaSについて 2. KaaSの運⽤における課題 3. SLI/SLOの計測・監視を活⽤した運⽤ 4. SLI/SLOを活⽤し始めたことで新たに⽣じた課題 5. まとめと今後の展望 20

Slide 21

Slide 21 text

©2022 Yahoo Japan Corporation All rights reserved. SLI (Service Level Indicator) とは︖ 3.SLI/SLOの計測・監視を活⽤した運⽤ 21 その機能が正常に動作するのかを測定したもの • エラー率、レイテンシなどをメトリクスとして扱う • 従来の監視と違い「機能の⼀部分」ではなく「機能(UX)⾃体」を⾒ている

Slide 22

Slide 22 text

©2022 Yahoo Japan Corporation All rights reserved. SLO (Service Level Objective) とは︖ 3.SLI/SLOの計測・監視を活⽤した運⽤ 22 サービスレベルの⽬標値。特定の期間で期待された指標 • SLOを下回る → サービスレベルを維持できてない。障害 • KaaS運⽤チームでは1週間で設定 • 統合監視した時のサンプル数が多すぎない • 1週間単位での振り返りがしやすい

Slide 23

Slide 23 text

©2022 Yahoo Japan Corporation All rights reserved. ヤフーのKaaSにおけるSLOの定義の例 3.SLI/SLOの計測・監視を活⽤した運⽤ 23 機能 SLO アプリケーションが動作できる 99.99% kubectlの操作が⾏える 99.5% アプリケーションのログを転送できる 99.5% 外部ストレージで永続ボリュームを 作成・削除できる 99% 外部ストレージで永続ボリュームの 読み込み・書き込みができる 99.9%

Slide 24

Slide 24 text

©2022 Yahoo Japan Corporation All rights reserved. SLI/SLOを計測・統合監視することでの課題の解決 3.SLI/SLOの計測・監視を活⽤した運⽤ 24 「機能が正常かは部分的な監視のみでは不⼗分である」 • 計測対象の機能のどこか⼀部分が壊れたらサービスレベルは低下をするため、 何の機能が正常か異常かの判断が即座に可能 「具体的な影響範囲・MTTRの特定が難しい」 • SLIを集約して統合的に監視できれば、影響範囲やMTTRが明確にわかる • ⻑期で運⽤すればMTTF(平均故障時間)もわかる 「多発するアラートの対応にコストがかかる」 • アラートを機能ごとにまとめ、アラート設定でSLOを閾値を利⽤可能

Slide 25

Slide 25 text

©2022 Yahoo Japan Corporation All rights reserved. SLI/SLOを計測・統合監視することでの課題の解決 3.SLI/SLOの計測・監視を活⽤した運⽤ 25 「機能が正常かは部分的な監視のみでは不⼗分である」 • 計測対象の機能のどこか⼀部分が壊れたらサービスレベルは低下をするため、 何の機能が正常か異常かの判断が即座に可能 「具体的な影響範囲・MTTRの特定が難しい」 • SLIを集約して統合的に監視できれば、影響範囲やMTTRが明確にわかる • ⻑期で運⽤すればMTTF(平均故障時間)もわかる 「多発するアラートの対応にコストがかかる」 • アラートを機能ごとにまとめ、アラート設定でSLOを閾値を利⽤可能 ۩ମతʹͲ͏΍ͬͯ΍Δͷʁ

Slide 26

Slide 26 text

©2022 Yahoo Japan Corporation All rights reserved. SLIの測定 - Cloudprober 3.SLI/SLOの計測・監視を活⽤した運⽤ 26 • Google謹製のOSS、実装はGo • 定期的にプローブを実⾏し、 特定の操作が 期待通りに実⾏できるかを計測できる • 実⾏回数、成功回数、レイテンシなどをメトリクス として出⼒する IUUQTHJUIVCDPNDMPVEQSPCFSDMPVEQSPCFS

Slide 27

Slide 27 text

©2022 Yahoo Japan Corporation All rights reserved. Cloudprober の external probe 3.SLI/SLOの計測・監視を活⽤した運⽤ 27 KaaSで提供する機能について実⾏させれば SLIを測定できる 外部のプログラムを定期実⾏し、その結果をメトリクスとして出⼒する

Slide 28

Slide 28 text

©2022 Yahoo Japan Corporation All rights reserved. external probe によるSLI測定の実践例 3.SLI/SLOの計測・監視を活⽤した運⽤ 28 「KaaS 利⽤者は、外部ストレージで永続ボリュームを作成・削除できる」 下記の⼀連の動作を定期実⾏させる • kubectl applyでPersistentVolumeを作成 • kubectl deleteでPersistentVolumeを削除

Slide 29

Slide 29 text

©2022 Yahoo Japan Corporation All rights reserved. external probe によるSLI測定の実践例 3.SLI/SLOの計測・監視を活⽤した運⽤ 29 「KaaS 利⽤者は、外部ストレージで永続ボリュームを作成・削除できる」 $MPVEQSPCFS • 各Kubernetesクラスタで実⾏ • メトリクスとして出した結果を 同クラスタのPrometheusが取得 17 17 FYUFSOBM@QSPCF

Slide 30

Slide 30 text

©2022 Yahoo Japan Corporation All rights reserved. SLI/SLOの統合監視 - Prometheusによるfederation 3.SLI/SLOの計測・監視を活⽤した運⽤ 30 ,BB4؀ڥ FBTU ,BB4ӡ༻νʔϜ༻,VCFSFOUFT $MPVEQSPCFS 4-*ͷϝτϦΫε ͷΈू໿ ֤छϝτϦΫεू໿ FYQPSUFS ɾ ɾ ɾ ,BB4؀ڥ XFTU $MPVEQSPCFS FYQPSUFS ɾ ɾ ɾ $MVTUFST

Slide 31

Slide 31 text

©2022 Yahoo Japan Corporation All rights reserved. 信頼性を担保していくための仕組み - SLI/SLOを使ったアラーティング 3.SLI/SLOの計測・監視を活⽤した運⽤ 31 Error Budget と Burn Rate • Error BudgetはSLOに基づき許容する損失可能な信頼性 • Burn RateはError Budgetを消費する速度 #VSO3BUF "MFSU

Slide 32

Slide 32 text

©2022 Yahoo Japan Corporation All rights reserved. 信頼性を担保していくための仕組み - SLI/SLOを使ったアラーティング 3.SLI/SLOの計測・監視を活⽤した運⽤ 32 Multiple Burn Rate で複数アラートルールを設定する • 複数の期間におけるBurn Rateの⾼まりを検知し、アラートを出す • Error Budgetを急激に消費する場合とゆるやかに消費する場合を検知し、それぞれ の場合で対応⽅法を決められる (PPHMF 4JUF3FMJBCJMJUZ&OHJOFFSJOH IUUQTTSFHPPHMFXPSLCPPLBMFSUJOHPOTMPT

Slide 33

Slide 33 text

©2022 Yahoo Japan Corporation All rights reserved. 信頼性を担保していくための仕組み - SLI/SLOを使ったアラーティング 3.SLI/SLOの計測・監視を活⽤した運⽤ 33 メリット • 閾値としてSLOを扱え、コントロールがしやすい • 機能についての異常を検知でき、MTTD(平均検出時間)の削減が可能

Slide 34

Slide 34 text

©2022 Yahoo Japan Corporation All rights reserved. 信頼性を担保していくための仕組み - SLI/SLO統合監視⽤ダッシュボード 3.SLI/SLOの計測・監視を活⽤した運⽤ 34 メリット • 1ダッシュボードを⾒るだけで全Kubernetesクラスタの各機能が正常かがわかる • 障害時の影響範囲やMTTRが明らかにわかる

Slide 35

Slide 35 text

©2022 Yahoo Japan Corporation All rights reserved. SLI/SLOの監視システムを活⽤した運⽤ 3.SLI/SLOの計測・監視を活⽤した運⽤ 35 SLI/SLOを使ったアラーティング •アラートが発⽣したらSeverityに応じて対応 SLI/SLO統合監視⽤ダッシュボード • 毎朝チームで確認 • リリース後や、新規にKubernetesクラスタを提供したときに確認 • 障害が発⽣したときの影響の調査

Slide 36

Slide 36 text

©2022 Yahoo Japan Corporation All rights reserved. SLI/SLOの監視システムを活⽤することで改善したこと 3.SLI/SLOの計測・監視を活⽤した運⽤ 36 従来の監視の3つの課題を解決するだけでなく、付加価値も⽣まれた • リリース後・クラスタ作成後のQuality Assurenceにでき、⼿動での確認⼯数を削減できる • マネージャー層の⽅々が、プロダクトの品質を保てているのかを確認できるようになった

Slide 37

Slide 37 text

©2022 Yahoo Japan Corporation All rights reserved. アジェンダ 1. ヤフーのKaaSについて 2. KaaSの運⽤における課題 3. SLI/SLOの計測・監視を活⽤した運⽤ 4. SLI/SLOを活⽤し始めたことで新たに⽣じた課題 5. まとめと今後の展望 37

Slide 38

Slide 38 text

©2022 Yahoo Japan Corporation All rights reserved. 課題1 – 異常は起きていないのに低下したサービスレベルがノイズになる 4.SLI/SLOを活⽤し始めたことで新たに⽣じた課題 38 • 特定の機能が動かないように特別な設定がされているKubernetesクラスタでは、 SLIの計測が常に失敗し続けるような状態になる • 可視化するとダッシュボードが真っ⾚になり、アラートも鳴ってしまう • KaaS運⽤チームは異常が発⽣しているのか、意図的に機能が無効化されている のかが判断できなくなる ͜ͷΫϥελͷϩάసૹͷ4-*௿͍ʂ Կ͔ى͖ͯΔʁ ͦͷΫϥελɺϩάసૹແޮԽ ͯ͠ΔΒ͍͠Ͱ͢Α

Slide 39

Slide 39 text

©2022 Yahoo Japan Corporation All rights reserved. 課題1への対策 – sli-silencerの導⼊ 4.SLI/SLOを活⽤し始めたことで新たに⽣じた課題 39 • 特定のクラスタで特定の機能が無効化されて いることをメトリクスで出す • 可視化やアラートルールに渡す前にそれらを 含まないようにする ,BB4ӡ༻νʔϜ༻,VCFSFOUFT TMJTJMFOFS ແޮԽͷઃఆ

Slide 40

Slide 40 text

©2022 Yahoo Japan Corporation All rights reserved. 課題2 – SLIの測定で関係システムへ⾼負荷を与えてしまった 4.SLI/SLOを活⽤し始めたことで新たに⽣じた課題 40 SLIの定期測定で⾼頻度にオペレーションを実⾏すると、 関連システムへの⾼負荷を与えてしまう • 外部ストレージに負荷をかけすぎ、新規に ボリューム を作成できない状態に陥ってしまった $MPVEQSPCFS 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17

Slide 41

Slide 41 text

©2022 Yahoo Japan Corporation All rights reserved. 課題2への対策 – SLI計測間隔の調整 4.SLI/SLOを活⽤し始めたことで新たに⽣じた課題 41 • Cloudproberではinterval_msecの設定 • 計測間隔を⻑くすることで、頻度を下げ、関係システムへの負荷を軽減できた • 間隔が⻑すぎると計測の精度が落ちるためため、関係システムの管理者と相談し、 丁度いい間隔に調整が必要

Slide 42

Slide 42 text

©2022 Yahoo Japan Corporation All rights reserved. • 1000+クラスタで各種SLIを計測し、それをPrometheusのクエリを使って計算し、 可視化したらダッシュボードの表⽰が完了するのに1分以上かかってしまった 課題3 – ダッシュボードが重すぎて使い物にならない 4.SLI/SLOを活⽤し始めたことで新たに⽣じた課題 42

Slide 43

Slide 43 text

©2022 Yahoo Japan Corporation All rights reserved. 課題3の対策 – Prometheus, Grafanaのチューニング 4.SLIを活⽤し始めたことで新たに⽣じた課題 43 • Recording Ruleで予め計算を実⾏しておく • Subqueryを使わない 表⽰完了まで1分以上 → 5秒以内 まで縮まった • SinglestatパネルはInstant化 • GraphでResolu_onを⼩さくして表⽰する データ量を減らす

Slide 44

Slide 44 text

©2022 Yahoo Japan Corporation All rights reserved. アジェンダ 1. ヤフーのKaaSについて 2. KaaSの運⽤における課題 3. SLI/SLOの計測・監視を活⽤した運⽤ 4. SLI/SLOを活⽤し始めたことで新たに⽣じた課題 5. まとめと今後の展望 44

Slide 45

Slide 45 text

©2022 Yahoo Japan Corporation All rights reserved. まとめ 5.まとめと今後の展望 45 • SLI/SLOを活⽤した統合監視をすることで、信頼性を保つための体制を整えた • 20数名しかいないKaaS運⽤チームが、1000+のクラスタの機能を監視できるよ うになった • SLI/SLOを活⽤し始めると様々な課題も発⽣するため、注意が必要

Slide 46

Slide 46 text

©2022 Yahoo Japan Corporation All rights reserved. 今後の展望 5.まとめと今後の展望 46 • SLIの測定ができてないKaaSの機能について測定できるようにし、従来の監視を 抜け出す • 新機能のGA要件に「SLIの測定ができていること」を加えていきたい • エラーバジェットの活⽤ • CI/CDで」リリースしたら⾃動でSLI/SLOチェックし、サービスレベルの低下を確 認したら⾃動でロールバックできるようにしたい

Slide 47

Slide 47 text

©2022 Yahoo Japan Corporation All rights reserved. 47 ご清聴ありがとうございました。