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

[SRE NEXT 2022]増大を続けるYahoo! JAPAN Kubernetesクラスタ群キャパシティ管理のモダン化

srenext
May 23, 2022

[SRE NEXT 2022]増大を続けるYahoo! JAPAN Kubernetesクラスタ群キャパシティ管理のモダン化

SRE NEXT 2022
https://sre-next.dev/2022/

[Speaker]
ヤフー株式会社 KaaS SRE 水落 啓太

[Description]
増大を続けているヤフーKubernetesクラスタ群(1,000+クラスタ, 400,000+コンテナ)のキャパシティ管理をシステム化し、キャパシティプラニングなどキャパシティに関する運用業務健全化に取り組んだ事例を紹介します。
私たちは、ヤフーの各種サービスを支えるプラットフォームとしてKubernetesクラスタを簡単に利用可能とするKaaS (Kubernetes as a Service) を運用するチームです。
旧来システムのシステム刷新や、ビジネスの伸びやキャンペーンに伴うシステム拡張といったイベントに応じて、ヤフーKaaSには、Kubernetesクラスタ利用の需要が絶えず生じています。私たちは、KaaS利用者の需要に答え続けるために、RDB, Go, Grafanaを活用し、Kubernetesクラスタ提供に必要なキャパシティ情報を的確に把握し、キャパシティに関する各業務を迅速・的確に推進するための仕組みを整えました。
SREの一分野であるキャパシティ管理の課題に、SREチームとして取り組む中で得られた知見を交えながら、SREの幅広さ・面白さに迫ります。

srenext

May 23, 2022
Tweet

More Decks by srenext

Other Decks in Technology

Transcript

  1. Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved.

    ©2022 Yahoo Japan Corporation All rights reserved.
    増大を続ける
    Yahoo! JAPAN Kubernetesクラスタ群
    キャパシティ管理のモダン化
    ヤフー株式会社 Kubernetes as a Serviceチーム
    水落 啓太

    View Slide

  2. ©2022 Yahoo Japan Corporation All rights reserved.
    •水落 啓太(みずおち けいた)

    •ヤフー株式会社Kubernetes as a Serviceチーム所属

    •広告システム開発 → Private PaaS開発/PO/SRE → KaaS SRE
    •バックエンドSWE → SRE
    •SREをはじめ、ソフトウェア技術を駆使して課題解決することが好きです




    自己紹介
    0. 自己紹介
    2

    View Slide

  3. ©2022 Yahoo Japan Corporation All rights reserved.
    アジェンダ
    1. Yahoo! JAPAN Kubernetes as a Service
    2. SREとキャパシティ管理
    3. KaaSキャパシティ管理の課題
    4. KaaSキャパシティ管理のモダン化
    5. SRE実現ツールとしてのRDB
    6. SREって面白い
    7. まとめ
    3

    View Slide

  4. ©2022 Yahoo Japan Corporation All rights reserved.
    1. Yahoo! JAPAN Kubernetes as a Service
    4

    View Slide

  5. ©2022 Yahoo Japan Corporation All rights reserved.
    •ヤフー社向けマネージドKubernetesサービス

    •GCP GKE, AWS EKSに相当

    •インフラ基盤研究開発を専門とするZ Lab株式会社により開発

    •ヤフーKaaSチームにより運用及び社内インテグレーション



    Yahoo! JAPAN Kubernetes as a Service
    1. Yahoo! JAPAN Kubernetes as a Service
    5
    KaaS Team
    開発

    運用
    for
    for
    for
    ......
    提供・管理

    KaaS

    View Slide

  6. ©2022 Yahoo Japan Corporation All rights reserved.
    Kubernetes as a Service規模(2022/4現在)
    1. Yahoo! JAPAN Kubernetes as a Service
    6
    Kubernetesクラスタ数
    1,000+ 

    VM数
    33,000+

    コンテナ数
    550,000+

    利用チーム数
    220+


    View Slide

  7. ©2022 Yahoo Japan Corporation All rights reserved.
    2. SREとキャパシティ管理
    7

    View Slide

  8. ©2022 Yahoo Japan Corporation All rights reserved.




    •キャパシティプランニングはSREの責務のひとつ

    •本発表では、キャパシティに関する業務一般を指して、キャパシティ管理という言葉も使います

    SREにおけるキャパシティ管理
    2. SREとキャパシティ管理
    8
    SREチームは、サービスの可用性、レイテンシ、パフォーマンス、効率性、変更管
    理、モニタリング、緊急対応、キャパシティプランニングに責任を負います。

    SREサイトリライアビリティエンジニアリング 1.3 SREの信条

    View Slide

  9. ©2022 Yahoo Japan Corporation All rights reserved.
    •キャパシティ → システムリソースのキャパシティ(容量)
    •CPU、メモリ、ディスク、ネットワーク帯域 etc...
    •キャパシティが不足すると、、、
    •システムを拡張できない
    •システム障害
    など致命的な問題が発生
    → SREとしてキャパシティを適切に扱い、問題回避に努めたい
    キャパシティ
    2. SREとキャパシティ管理
    9

    View Slide

  10. ©2022 Yahoo Japan Corporation All rights reserved.
    3. KaaSキャパシティ管理の課題
    10

    View Slide

  11. ©2022 Yahoo Japan Corporation All rights reserved.
    •Kubernetes as a Serviceは急激に規模増大している
    → キャパシティ管理の課題も増大......。
    KaaSキャパシティ管理の課題
    3. KaaSキャパシティ管理の課題
    11

    View Slide

  12. ©2022 Yahoo Japan Corporation All rights reserved.
    •KaaSキャパシティプランニング
    •KaaS利用者の需要を元にシステムの増強・購入計画を立てる
    •不足すると考えられるリソース増強・購入を
    IaaSチームに依頼する
    •6ヶ月ごとに実施
    •リソースの購入・投入には3~12ヶ月程度のリードタイムがかかるため事前の計画が大切
    課題1. キャパシティプランニングの工数が大きい
    3. KaaSキャパシティ管理の課題
    12

    View Slide

  13. ©2022 Yahoo Japan Corporation All rights reserved.
    課題1. キャパシティプランニングの工数が大きい
    3. KaaSキャパシティ管理の課題
    13
    KaaSチーム
    KaaS利用者 IaaSチーム
    ヒアリングシート

    2022QxまでにCPU,MEM=xx,yy利用
    予定
    2022Qxまでに利用予定のマシンリ
    ソース量を教えてください
    ヒアリングシート

    リソース購入計画書

    2022Qxまでにリソースがyy不足するの
    で、zz分追加したい
    IaaSリソース

    View Slide

  14. ©2022 Yahoo Japan Corporation All rights reserved.
    •キャパシティプランニングで大事なこと
    → 需給ギャップの把握(リソース需要に対して供給は十分か?)
    •今後1~2年にわたる需給ギャップを算出し、不足分に対処する
    課題1. キャパシティプランニングの工数が大きい
    3. KaaSキャパシティ管理の課題
    14

    View Slide

  15. ©2022 Yahoo Japan Corporation All rights reserved.
    • 需給内訳図(社内資料抜粋)
    • 右図のような内訳を
    四半期ごとに表計算ソフト
    により算出する
    課題1. キャパシティプランニングの工数が大きい
    3. KaaSキャパシティ管理の課題
    15

    View Slide

  16. ©2022 Yahoo Japan Corporation All rights reserved.
    •需給ギャップ算出に必要なデータ群
    課題1. キャパシティプランニングの工数が大きい
    3. KaaSキャパシティ管理の課題
    16
    供給データ 需要データ
    投入済み

    CPU, Memory量

    投入予定

    CPU, Memory量

    利用済み

    CPU, Memory量

    利用予定

    CPU, Memory量


    View Slide

  17. ©2022 Yahoo Japan Corporation All rights reserved.
    •全てが違うデータソースに......。
    課題1. キャパシティプランニングの工数が大きい
    3. KaaSキャパシティ管理の課題
    17
    供給データ 需要データ
    投入済み

    CPU, Memory量

    投入予定

    CPU, Memory量

    利用済み

    CPU, Memory量

    利用予定

    CPU, Memory量

    OpenStackメトリクス
    IaaSチームとの

    調整記録
    KaaS API
    需要ヒアリングシートetc...

    View Slide

  18. ©2022 Yahoo Japan Corporation All rights reserved.
    •リソース需要は常にキャパシティプランニングにて予測した通りに、発生する訳ではない
    •緊急のビジネスキャンペーンの実施
    •リソースヒアリング回答者の見積もりミス
    課題2. リソース開放限界の算出が困難
    3. KaaSキャパシティ管理の課題
    18

    View Slide

  19. ©2022 Yahoo Japan Corporation All rights reserved.
    課題2. リソース開放限界の算出が困難
    3. KaaSキャパシティ管理の課題
    19
    〇〇案件のために
    K8sクラスタをxxTB増強
    したいです!
    できますか?

    ......
    KaaS利用者 KaaSチーム

    View Slide

  20. ©2022 Yahoo Japan Corporation All rights reserved.
    •何が困難なのか
    → 現在のシステム空きリソースを見るだけでは不十分
    → その空きリソースは他の利用者や案件のために、確保しているかもしれない
    → 「真の空きリソース」が分からない
    課題2. リソース開放限界の算出が困難
    3. KaaSキャパシティ管理の課題
    20
    KaaSエンジニア
    とりあえず、現状
    xxTBは空いている
    な。
    しかし、、、

    空きリソース情報

    View Slide

  21. ©2022 Yahoo Japan Corporation All rights reserved.
    •システムがキャパシティプランニング通りに消化される保証はない
    •前述の緊急開放による消化多発や、過去開放していたが利用されていなかったリソースがサービス
    インなど
    •リソース枯渇把握が遅れ、現実にリソースの枯渇を起こしたことも
    ......。
    •KaaS利用者のビジネスを止める事象
    •致命的問題
    課題3. システムリソース枯渇を予見しにくい
    3. KaaSキャパシティ管理の課題
    21

    View Slide

  22. ©2022 Yahoo Japan Corporation All rights reserved.
    •キャパシティプランニング表=表計算ファイル
    •前述の緊急開放の判断のためなどに、アドホックにキャパシティプランニング表が再集計されたりする
    •いわゆる「最新.xlsx」問題
    課題4. キャパシティプランニングのマスタが行方不明になりやすい
    3. KaaSキャパシティ管理の課題
    22

    View Slide

  23. ©2022 Yahoo Japan Corporation All rights reserved.
    課題4. キャパシティプランニングのマスタが行方不明になりやすい
    3. KaaSキャパシティ管理の課題
    23
    KaaSエンジニア
    キャパプ
    ラ.xlsx
    キャパプラ
    _2.xlsx
    元のファイルを壊すと
    いけない
    念のため
    コピーしておこう


    View Slide

  24. ©2022 Yahoo Japan Corporation All rights reserved.
    •後日......
    課題4. キャパシティプランニングのマスタが行方不明になりやすい
    3. KaaSキャパシティ管理の課題
    24
    他のKaaSエンジニア
    キャパプラ.xlsx
    キャパプラ_2.xlsx

    キャパプラ_マスタ.xlsx
    キャパプラ_xx修正済み.xlsx

    View Slide

  25. ©2022 Yahoo Japan Corporation All rights reserved.
    1. キャパシティプランニングの工数が大きい

    2. リソース開放可能量の算出が困難

    3. システムリソース枯渇を予見しにくい

    4. キャパシティプランニングマスタが行方不明になりやすい


    → 解決を目指す




    KaaSキャパシティ管理課題まとめ
    3. KaaSキャパシティ管理の課題
    25

    View Slide

  26. ©2022 Yahoo Japan Corporation All rights reserved.
    4. KaaSキャパシティ管理のモダン化
    26

    View Slide

  27. ©2022 Yahoo Japan Corporation All rights reserved.
    •キャパシティ課題解決に向けて解決策の方針を考える
    KaaSキャパシティ管理改善
    4. KaaSキャパシティ管理のモダン化
    27
    キャパプラ工数大
    残量算出困難

    枯渇予見困難

    キャパプラマスタ行方不明 

    課題

    View Slide

  28. ©2022 Yahoo Japan Corporation All rights reserved.
    •キャパシティ課題解決に向けて解決策の方針を考える
    KaaSキャパシティ管理改善
    4. KaaSキャパシティ管理のモダン化
    28
    キャパプラ工数大
    残量算出困難

    枯渇予見困難

    キャパプラマスタ行方不明 

    課題 解決策

    需給データ統合
    需給リアルタイム更新
    唯一のダッシュボードに可視化 


    View Slide

  29. ©2022 Yahoo Japan Corporation All rights reserved.
    •4つのリソース需給データをRDB(リレーショナルデータベース)に統合
    解決方針1. 需給データの統合
    4. KaaSキャパシティ管理のモダン化
    29

    View Slide

  30. ©2022 Yahoo Japan Corporation All rights reserved.
    •需給ギャップ算出に必要なデータ群それぞれにテーブルを定義する
    解決方針1. 需給データの統合
    4. KaaSキャパシティ管理のモダン化
    30
    供給データ 需要データ
    投入済み

    CPU, Memory量

    投入予定

    CPU, Memory量

    利用済み

    CPU, Memory量

    利用予定

    CPU, Memory量


    View Slide

  31. ©2022 Yahoo Japan Corporation All rights reserved.
    •需給ギャップ算出に必要なデータ群それぞれにテーブル定義
    解決方針1. 需給データの統合
    4. KaaSキャパシティ管理のモダン化
    31
    供給データ 需要データ
    投入済み

    CPU, Memory量

    投入予定

    CPU, Memory量

    利用済み

    CPU, Memory量

    利用予定

    CPU, Memory量

    <>
    m_current_supply
    <>
    m_current_demand
    <>
    m_reserved_demand

    <>
    m_reserved_supply

    View Slide

  32. ©2022 Yahoo Japan Corporation All rights reserved.
    解決方針1. 需給データの統合
    4. KaaSキャパシティ管理のモダン化
    32
    m_current_supply
    m_current_demand
    m_reserved_supply
    m_reserved_demand
    KaaSエンジニア
    •データがRDBに完結するので自由に需給ギャップ集計できる
    •正規化済みのためデータ整形の必要もない
    mysql> select ....

    View Slide

  33. ©2022 Yahoo Japan Corporation All rights reserved.
    •4つのリソース需給データが全てRDBに揃っていれば、いつでも集計ができる
    → キャパシティプランニング時に、アドホックな表計算ファイルを作る必要がない
    解決方針1. 需給データの統合
    4. KaaSキャパシティ管理のモダン化
    33

    View Slide

  34. ©2022 Yahoo Japan Corporation All rights reserved.
    •4種のデータのうち、現在供給量および、現在需要量についてはそれぞれシステムより取得できる値
    → 定期バッチでリアルタイムにRDBに投入

    解決方針2. 需給データのリアルタイム更新
    4. KaaSキャパシティ管理のモダン化
    34
    m_current_supply
    m_current_demand
    m_reserved_supply
    m_reserved_demand
    KaaS

    View Slide

  35. ©2022 Yahoo Japan Corporation All rights reserved.
    •表計算ソフトのファイルがコピーされマスタファイルがどれか分からなくなる
    → DBに移行したため、これをマスタDBとして活用
    → Grafanaでマスタボードとして可視化
    解決方針3. 唯一のダッシュボードに可視化
    4. KaaSキャパシティ管理のモダン化
    35

    View Slide

  36. ©2022 Yahoo Japan Corporation All rights reserved.
    • GrafanaダッシュボードはCICDでデプロイされる
    • KaaSチームとしてPR/コードレビューなどを通して保守される
    → ダッシュボードが他のメンバーの知らないうちコピーされることはない
    → キャパシティ管理マスターの所在が明らかになる
    解決方針3. 唯一のダッシュボードに可視化
    4. KaaSキャパシティ管理のモダン化
    36

    View Slide

  37. ©2022 Yahoo Japan Corporation All rights reserved.
    KaaSキャパシティ管理改善おさらい
    4. KaaSキャパシティ管理のモダン化
    37
    キャパプラ工数大
    残量算出困難

    枯渇予見困難

    キャパプラマスタ行方不明 

    課題 解決策

    需給データ統合
    需給リアルタイム更新
    唯一のダッシュボードに可視化 


    View Slide

  38. ©2022 Yahoo Japan Corporation All rights reserved.
    完成したダッシュボード
    4. KaaSキャパシティ管理のモダン化
    38

    View Slide

  39. ©2022 Yahoo Japan Corporation All rights reserved.
    • 折線グラフ → 供給予測
    • 積み上げグラフ → 需要予測
    • 需要については内訳も可視化
    • 需要内訳
    • 高優先度リソース需要
    • ヒアリング対象外リソース
    • etc...
    完成したダッシュボード
    4. KaaSキャパシティ管理のモダン化
    39

    View Slide

  40. ©2022 Yahoo Japan Corporation All rights reserved.
    • 需給ギャップ可視化
    • 最も厳しくなる時期と値
    • 「真の空きリソース」
    完成したダッシュボード
    4. KaaSキャパシティ管理のモダン化
    40

    View Slide

  41. ©2022 Yahoo Japan Corporation All rights reserved.
    • KaaS環境別可視化
    • KaaSはデータセンタや
    用途毎に分離した環境がある
    • 環境毎にキャパシティ推移を
    可視化
    完成したダッシュボード
    4. KaaSキャパシティ管理のモダン化
    41

    View Slide

  42. ©2022 Yahoo Japan Corporation All rights reserved.
    • 更新系はGoプログラムに集約
    • CronJobでの自動系の他、人が入力するデータ(
    e.g. 需要ヒアリングシート)もGoで実装
    • Goを通すことでデータ登録時の要件を満たすデータのみを投入できる
    • RDBの制約機能でカバーしきれない、破損データ混入をバリデーションできる
    実装のポイント – 更新系
    4. KaaSキャパシティ管理のモダン化
    42

    View Slide

  43. ©2022 Yahoo Japan Corporation All rights reserved.
    • システムより取得できないデータもプログラムを
    通してDB連携
    実装のポイント – 更新系
    4. KaaSキャパシティ管理のモダン化
    43
    $ import_reserved_demand_data
    --reserved-event 2022h1-inteview
    2022h1-interview.xlsx
    m_current_supply
    m_current_demand
    m_reserved_supply
    m_reserved_demand
    ヒアリングシート.xlsx

    Validation


    View Slide

  44. ©2022 Yahoo Japan Corporation All rights reserved.
    • 参照系はRDBのViewを活用
    • キャパシティ集計に関する各要件を
    Viewして実装
    例1. 25%の運用バッファを持つ
    → Viewにバッファ計算を組み込む
    例2. 過去の利用実績を線形補完し線形需要とする
    → Viewにて過去利用実績の平均値を次の期間にも計上
    例3. 環境Aと環境Bは区別なくリソースをやりとりできる
    → Viewにて両環境数値を合計
    実装のポイント – 参照系
    4. KaaSキャパシティ管理のモダン化
    44

    View Slide

  45. ©2022 Yahoo Japan Corporation All rights reserved.
    実装のポイント – 参照系
    4. KaaSキャパシティ管理のモダン化
    45

    View Slide

  46. ©2022 Yahoo Japan Corporation All rights reserved.
    5. SRE実現ツールとしてのRDB
    46

    View Slide

  47. ©2022 Yahoo Japan Corporation All rights reserved.
    • 一般にSREチームはPrometheusなどをはじめとしたTSDB(時系列データベース)を保有していると
    思います
    • しかし、システム運用を目的として、
    RDBを導入することは多くないのではないでしょうか
    • KaaSキャパシティ管理改善を通して学んだ、
    RDBの特性やSREにとってのRDBの位置付けを振り返
    ります
    RDB
    5. SRE実現ツールとしてのRDB
    47

    View Slide

  48. ©2022 Yahoo Japan Corporation All rights reserved.
    • 異常データの混入を防止しやすい
    • スキーマおよび制約機能が強力
    • SQLにより後から柔軟なデータ取得・加工ができる
    → 柔軟に可視化できる
    • テーブル定義やビュー定義をSQLとして管理できる
    → CICDと組み合わせて定義が勝手に崩れることを防止 (表計算ソフトと比較して)
    • 自動化システムに組み込みやすい(表計算ソフトと比較して)
    • 様々な可視化・BIツールと連携できる
    • 汎用的にデータを保持・演算できる(
    TSDBと比較して)
    RDBの特性
    5. SRE実現ツールとしてのRDB
    48

    View Slide

  49. ©2022 Yahoo Japan Corporation All rights reserved.
    • TSDBが得意とするメトリクス系以外で、
    SREとして管理し続けたいデータに
    対して便利
    • 典型的には本事例のように、定期的なデータ集計業務の自動化手段に
    • 定期的なデータ集計業務=Toil
    • RDBの前段にAPIサーバーを開発するなどしてMicroServiceとすることも考えられるが、工数がかか

    • SRE業務にRDBを用いる場合であれば、直接可視化系に接続などシンプルな構成で十分なこと
    が多いのでは
    • 費用対効果の追求
    SRE実現ツールとしてのRDB
    5. SRE実現ツールとしてのRDB
    49

    View Slide

  50. ©2022 Yahoo Japan Corporation All rights reserved.
    6. SREって面白い
    50

    View Slide

  51. ©2022 Yahoo Japan Corporation All rights reserved.
    • 元々、KaaSにおけるキャパシティ管理業務はあまり面白い仕事ではなかった
    • 面白いというより「つらい」
    • しかし、キャパシティ管理の可視化や自動化に取り組む仕事はクリエイティブで面白い
    キャパシティ管理モダン化から感じたSREの面白さ
    6. SREって面白い
    51

    View Slide

  52. ©2022 Yahoo Japan Corporation All rights reserved.
    • システムの運用課題をソフトウェアのアイデアと実装で解決
    → システム運用が面白くなる
    → システム運用の向上はシステム利用者の利益に
    SREの醍醐味
    6. SREって面白い
    52
    おもしろきこともなき世をおもしろく
    高杉晋作

    引用: https://ja.wikipedia.org/wiki/高杉晋作#/media/ファイル:Shinsaku_Takasugi.jpg

    View Slide

  53. ©2022 Yahoo Japan Corporation All rights reserved.
    7. まとめ

    53

    View Slide

  54. ©2022 Yahoo Japan Corporation All rights reserved.
    •ヤフーKubernetes as a Serviceにおけるキャパシティ管理事例の紹介
    •キャパシティ管理の表計算管理を RDB+Grafana管理に移行
    •4つのKaaSキャパシティ管理課題を解決
    •GoアプリケーションやSQL Viewにキャパシティ管理要件を実装
    •トイル削減の他、確実性の高い運用が可能
    •RDBは、SREが管理すべきデータ保管先として便利
    •SQL Viewなどを駆使して低コストで実用的なシステムを作れる
    •SREって面白い
    •システムの運用課題をソフトウェアのアイデアと実装で解決
    まとめ
    まとめ
    54

    View Slide

  55. ©2022 Yahoo Japan Corporation All rights reserved.

    View Slide