Slide 1

Slide 1 text

© LY Corporation 大規模PaaSにおける 監視基盤の構築と 効率化の道のり LINEヤフー株式会社 SIグループ クラウド統括本部 片岡拓海

Slide 2

Slide 2 text

© LY Corporation 片岡拓海 / Takumi Kataoka • 所属 • LINEヤフー株式会社 • 2023年新卒入社 • 業務内容 • 社内向けPaaSの新機能開発・運用保守 • 趣味 • 愛犬レオくんと散歩 • F1観戦 2 自己紹介

Slide 3

Slide 3 text

© LY Corporation • LINEヤフーでは社内向けのPaaS(※)を運用しています • 今回のセッションでは、PaaSを安定稼働させるための取り組みを紹介します • 現在の監視基盤の構成に至るまでの変遷や課題、解決方法について説明します ※本資料では「LY PaaS」と記載 3 このセッションについて

Slide 4

Slide 4 text

© LY Corporation LY PaaSの紹介 現在の監視基盤構築までの道のり 知見 今後の展望 01 03 02 04 4 アジェンダ

Slide 5

Slide 5 text

© LY Corporation LY PaaSの紹介 現在の監視基盤構築までの道のり 知見 今後の展望 01 03 02 04 5 アジェンダ

Slide 6

Slide 6 text

© LY Corporation • KubernetesベースのWebアプリケーション実行基盤 • 簡単なコマンドで実行、またはマニフェストを適用するだけでアプリケーショ ンが起動し、自動的にエンドポイントが公開される 6 LY PaaSの概要 ※一部実際のものとは異なる箇所があります $ paasctl create app hello-world --image=example-registry/sample/helloworld-go:latest --port=8080 $ paasctl get app hello-world NAME ENDPOINT READY REASON AGE hello-world https://hello-world.sandbox.app.dev.yahoo.co.jp True 6m4s $ curl https://hello-world.sandbox.app.dev.yahoo.co.jp Hello World!

Slide 7

Slide 7 text

© LY Corporation 7 LY PaaSが提供する機能

Slide 8

Slide 8 text

© LY Corporation • メンバー数:20名程度 • 開発手法:アジャイル開発、スクラム • 幅広い業務に従事 • 新規の機能開発 • 安定稼働 • 問い合わせ対応を含む利用者対応 8 LY PaaSの開発・運用チーム

Slide 9

Slide 9 text

© LY Corporation リソースの 抽象化 マルチクラスタ構成 社内PFとの 高い親和性 9 LY PaaSの特徴

Slide 10

Slide 10 text

© LY Corporation • 複数のKubernetesで一つのクラスタを構成するマルチクラスタ構成 • コントロールプレーンとデータプレーンで分離 • データプレーンを水平スケール→ 利用者増に伴うスケーラビリティの確保 10 特徴1. マルチクラスタ構成

Slide 11

Slide 11 text

© LY Corporation • Kubernetesのさまざまなリソースを抽象化し、学習コスト・運用コストを削減 • 利用者のアプリケーション • データプレーンで利用するKubernetes 11 特徴2. リソースの抽象化

Slide 12

Slide 12 text

© LY Corporation • 社内のPlatformと容易に連携可能 • アプリケーションのlabelやannotationに記述するのみで利用可能 12 特徴3. 他PFとの親和性 機能 設定 カスタムメトリクス label設定でメトリクスエージェントの収集対象となる ログ label 設定でロギングエージェントの収集対象となる トレーシング label, annotation設定でトレーシングのためのエージェントが インストール 認証・認可のクライアント label, annotation設定で専用のSidecarが自動で挿入 認証・認可のサーバ label, annotation設定で専用のSidecarが自動で挿入

Slide 13

Slide 13 text

© LY Corporation Node 10,000 Pod 90,000 Project 600 13 LY PaaSの規模

Slide 14

Slide 14 text

© LY Corporation LY PaaSの紹介 現在の監視基盤構築までの道のり 知見 今後の展望 01 03 02 04 14 アジェンダ

Slide 15

Slide 15 text

© LY Corporation 15 変遷と課題 v1 監視基盤の構築 v2 スケーラブルな設計 メトリクス永続化 v3 SLO中心の監視 長期のメトリクス永続化 Kubernetes単位のスケールに追従 スケーラブルな設計に伴う 運用コスト増加

Slide 16

Slide 16 text

© LY Corporation 16 変遷 v1 監視基盤の構築 v2 スケーラブルな設計 データの永続化 v3 SLO中心の監視

Slide 17

Slide 17 text

© LY Corporation • 複数のKubernetesにアプリケーションが稼働 →マルチクラスタを横断監視 • ビジネスインパクトが大きいアプリケーションが稼働 →迅速な動員・アラーティング • 複数環境の一貫性 • コンテキストの追跡 →コード管理 17 監視基盤構築時の要件

Slide 18

Slide 18 text

© LY Corporation • Prometheusを中心とした技術スタックを採用 • Prometheus • メトリクスを収集・保存 • Grafana • ダッシュボードで可視化 • Alertmanager • アラーティング 18 利用技術

Slide 19

Slide 19 text

© LY Corporation 19 v1アーキテクチャ

Slide 20

Slide 20 text

© LY Corporation 20 マルチクラスタを横断してメトリクスを確認 • 各KubernetesにPrometheusを構築 • Kubernetes内のメトリクス収集 • 各Kubernetesからメトリクスを 集約するPrometheusを構築 • Federate機能を利用 →マルチクラスタ横断で確認可能

Slide 21

Slide 21 text

© LY Corporation • Alertmanagerを利用 • Pagerduty, Slack を連携 • アラートの種類 • Critical • 即時対応 • Warning • 営業時間内対応 21 アラーティング

Slide 22

Slide 22 text

© LY Corporation • 複数環境の一貫性を確保 • CI/CDを利用して差分確認やデプロイを自動化 • 手動オペレーションを排除 • 変更履歴を追跡可能 • コンテキストを容易に確認可能 22 コード管理と自動化

Slide 23

Slide 23 text

© LY Corporation • LY PaaSの要件にあった初期段階での監視基盤の構築 • PaaSクラスタ全体の横断監視の実現 • アラーティングによって迅速な動員 • コード管理と自動化による運用効率の向上 23 v1アーキテクチャの成果

Slide 24

Slide 24 text

© LY Corporation 24 変遷 v1 監視基盤の構築 v2 スケーラブルな設計 データの永続化 v3 SLO中心の監視

Slide 25

Slide 25 text

© LY Corporation • 集約を行なっているPrometheusの メモリ利用量が肥大化、OOMが発生 • Prometheusを専用のノードに稼働させたり 垂直スケールを行い応急処置 • 一時的には凌げるが、再度構成を考える必要 25 監視基盤のアーキテクチャ再検討のきっかけ①

Slide 26

Slide 26 text

© LY Corporation • 利用者体験を反映したメトリクスの導入 • SLI/SLOと位置づけて運用する取り組みを実施 • Prometheusの稼働するノードの再起動などで 不定期でメトリクスが揮発してしまう 26 監視基盤のアーキテクチャ再検討のきっかけ②

Slide 27

Slide 27 text

© LY Corporation • Kubernetes単位のメトリクス増加に追従 →監視基盤のスケーラビリティが必要 • メトリクスの揮発 • Prometheusでは永続化は想定されていない →短期間での永続化の実現が必要 27 監視基盤のアーキテクチャ再検討の課題

Slide 28

Slide 28 text

© LY Corporation • ストレージのスケールアウト可能 (Cluster Version) • メトリクスの圧縮効率が高い • シンプルな構成 • ストレージのスケールアウト可能 オブジェクトストレージのシステム依存 • 既存のPrometheusと容易に統合可能 Victoria Metrics Thanos 28 メトリクス永続化手法の検討

Slide 29

Slide 29 text

© LY Corporation • ストレージのスケールアウト可能 (Cluster Version) • メトリクスの圧縮効率が高い • シンプルな構成 • ストレージのスケールアウト可能 オブジェクトストレージのシステム依存 • 既存のPrometheusと容易に統合可能 Victoria Metrics Thanos 29 メトリクス永続化手法の検討 Victoria Metricsを採用

Slide 30

Slide 30 text

© LY Corporation 30 v2アーキテクチャ

Slide 31

Slide 31 text

© LY Corporation • Victoria Metrics Single-node Versionを導入 • Kubernetesと1対1で管理 → Kubernetesのスケールに追従 31 スケール可能なアーキテクチャ

Slide 32

Slide 32 text

© LY Corporation • スケール毎の手動での作業はコスト →自動化を行い、運用コスト削減 • CDツールを利用した手続き的な手法を採用 • スケール頻度 • クラスタの増加のみが想定 32 払い出し自動化

Slide 33

Slide 33 text

© LY Corporation • Prometheus • Remote Writeを利用してメトリクス送信 • Victoria Metrics Single-node • statefulで稼働 • Persistent Volumeをアタッチ • Quobyteをストレージとして利用 →永続化を実現 33 メトリクス永続化

Slide 34

Slide 34 text

© LY Corporation • スケーラブルな構成の実現 • Kubernetes単位のメトリクス増加に追従可能 • コンポーネントの払い出し自動化によって省コスト • 全てのKubernetesで最大1週間のメトリクス永続化を実現 • SLI/SLOの運用開始 • 障害発生時の事後調査が可能 34 v2アーキテクチャの成果

Slide 35

Slide 35 text

© LY Corporation 35 変遷 v1 監視基盤の構築 v2 スケーラブルな設計 データの永続化 v3 SLO中心の監視

Slide 36

Slide 36 text

© LY Corporation • SLI/SLOの本格運用を行なっていく • 短期のウィンドウサイズだと正確な評価できない →ウィンドウサイズを長くするため、長期でのメトリクス永続化 36 さらなる安定稼働に向けての課題

Slide 37

Slide 37 text

© LY Corporation • 長期のメトリクス永続化で利用 Single-nodeと比較し、以下が実現可能 • HA構成 • ストレージのスケールアウト可能 37 Victoria Metrics Cluster Version の導入 引用元:https://docs.victoriametrics.com/victoriametrics/cluster-victoriametrics/

Slide 38

Slide 38 text

© LY Corporation 38 v3アーキテクチャ

Slide 39

Slide 39 text

© LY Corporation • Victoria Metrics Cluster Versionで実現 →ウィンドウサイズの長期化 • システムデータを集約保存 • HTTP Requests • DNS Query →長期の傾向分析が可能 39 長期のメトリクスを保存

Slide 40

Slide 40 text

© LY Corporation • バーンレートアラート発火 • 運用者に架電 • Slackに通知 40 アラーティング TODO: Slack の画像を貼る

Slide 41

Slide 41 text

© LY Corporation • 影響範囲の確認 • SLI計測 • エラーバジェット 41 ダッシュボードの確認

Slide 42

Slide 42 text

© LY Corporation • アラート発火時 • Victoria Metrics Single-nodeで 根本原因を調査 • ログなども含めて調査 • ポストモーテム • 永続化されたメトリクスを確認し、 根本原因の事後調査 42 詳細調査

Slide 43

Slide 43 text

© LY Corporation • SLI/SLO中心の監視 • ウィンドウサイズを長くして本格運用を実現 • ユーザー影響があるか容易に判断可能 • 効率的かつ安定的なメトリクス保持 • Prometheusに対して3倍のメトリクス圧縮効率 • 現在、6ヶ月以上永続化 43 v3アーキテクチャの成果

Slide 44

Slide 44 text

© LY Corporation LY PaaSの紹介 現在の監視基盤構築までの道のり 知見 今後の展望 01 03 02 04 44 アジェンダ

Slide 45

Slide 45 text

© LY Corporation 45 変遷と課題 v1 監視基盤の構築 v2 スケーラブルな設計 メトリクス永続化 v3 SLO中心の監視 長期のメトリクス永続化 Kubernetes単位のスケールに追従 スケーラブルな設計に伴う 運用コスト増加

Slide 46

Slide 46 text

© LY Corporation • 集約した部分がスケールアウトできず再検討を行う必要ができてしまった • Cloud Nativeなシステムでは常にスケールアウトを行えるよう設計・実装する 重要性 46 常にスケールアウト可能に

Slide 47

Slide 47 text

© LY Corporation • 大規模なPaaSを監視する上で、監視基盤も徐々に複雑化 • 監視基盤として安定的な稼働が求められる • コード管理で小さく少しづつ機能を追加・改善 • 変更のコンテキストを確認可能 • 適切な方法で積極的な自動化で省コストでの運用に近づける 47 コード管理と積極的な自動化

Slide 48

Slide 48 text

© LY Corporation • 長期のメトリクスの永続化がSLI/SLO運用の阻害要因 • 永続化するだけではなく、どう活用するか • SLIを活用し、問題切り分けが容易に • 定量的な指標を持ち、それを利用して意思決定を行える 48 長期データを活用した利用者目線の監視

Slide 49

Slide 49 text

© LY Corporation LY PaaSの紹介 現在の監視基盤構築までの道のり 知見 今後の展望 01 03 02 04 49 アジェンダ

Slide 50

Slide 50 text

© LY Corporation • SLI/SLOの改善・拡充 • 定期的に見直し • さらなる拡充 • AI x SRE事例創出 • 監視基盤で永続化したデータを利活用 • AIを活用した運用自動化・トイル削減 50 今後の展望

Slide 51

Slide 51 text

© LY Corporation • Prometheus/Victoria Metricsを中心とした スケーラブルな監視基盤の構築を実現 • コード管理と積極的な自動化によって 監視基盤も省コストな運用を実現 • 長期のメトリクス永続化で利用者目線の監視の実現 51 まとめ

Slide 52

Slide 52 text

© LY Corporation