Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

持続可能なプラットフォーム運用: エコシステム導入の判断基準と運用戦略

Avatar for yu-tani yu-tani
September 18, 2025

持続可能なプラットフォーム運用: エコシステム導入の判断基準と運用戦略

2025/09/18日にPlatform Engineering Kaigi 2025 | PEK2025で発表した資料

Avatar for yu-tani

yu-tani

September 18, 2025
Tweet

Other Decks in Technology

Transcript

  1. 谷成 雄 •2014年新卒入社 •現在: Service Reliability Group (SRG) → Ameba

    Platform → WinTicket •直近業務で触れていたエコシステムたち Istio KEDA ArgoWorkflow OpenCost SRG技術記事
  2. 開発を加速させるために 📅 Month 1: 「依存関係のある Jobを実行したい!」 󰞵 開発者: Argo Workflow導入お願いします

    ✅ 導入 → 😊「思い通りに Jobが実行できる」 📅 Month 3: 「GitOpsもやりたい!」 󰞵 開発者: ArgoCD導入お願いします ✅ 導入 → 😊「自動デプロイ最高!」 📅 Month 6: 「モニタリングを充実させたい!」 󰞵 開発者: Prometheus + Grafana導入お願いします ✅ 導入 → 😊「可視化バッチリ!」
  3. 運用者の負荷が大きくなる 📅 アップグレード予定 : 1週間 📅 実際にかかった期間 : 2ヶ月 結果:

    🔥🔥🔥 2ヶ月かかったり 🔥🔥🔥 Week 1 │ Kubernetes 1.28 → 1.29 開始 │ ↓ Week 2 │ 💥 ArgoCD動かない │ ↓ Week 3 │ 💥 Prometheus互換性問題 │ ↓ Week 5 │ 💥 External Secrets APIエラー │ ↓ Week ? │ 💥 その他のエコシステム │ ↓ Week 8 │ 😭 全エコシステム調査・修正完了
  4. その他にも問題が ❖ エコシステム自体への理解が必要 ➢ 実際には自分が導入してないエコシステムだが、エラーになるとPlatform運用者が呼び出され対 応する ❖ エコシステムの設定不備 ➢ 設定不備によりノードの不調などによりサービス影響発生

    ❖ 脆弱性対応が必要 ➢ エコシステムが増えるごとに対応の量も増えてしまう ❖ コストの増加 ➢ エコシステムを動かすにもリソースが必要になるので、手当り次第いれるとがコスト増加
  5. エコシステムのメリット・デメリット メリット • 機能を実現するための豊富な選択肢 → 大抵のニーズに対応可能 • OSSなので自由度・拡張性が高い • コミュニティによる急速な進化

    デメリット • 選択肢が多すぎて選定が難しい • ツールが増えるほど学習・運用コスト増大 • ライフサイクルが短いエコシステムも存在している
  6. エコシステム導入の判断基準 まず最初に導入しないで解決できる道を探る ➔ 工夫することにより要件を満たすことができないか考える アプリの要望 実現できるエコシステム Job を細かく制御したい Argo Workflows,

    Tekton CI/CD経由でデプロイしたい ArgoCD, Flux リソース利用を可視化したい Prometheus, Grafana 簡単な Canary リリースしたい Argo Rollouts, Istio/Linkerd Secret を安全に管理したい Vault, External Secrets Operator
  7. エコシステム導入の判断基準 要件を突き詰めていくと意外と基本機能で事足りることがあったりする アプリの要望 標準機能での工夫例 Job を細かく制御したい backoffLimit / startingDeadlineSeconds CI/CD経由でデプロイしたい

    kubectl / helm を既存CI/CDに組み込み リソース利用を可視化したい kubectl top, HPA 基本メトリクス 簡単な Canary リリースしたい Service weight / Replica 数で調整 Secret を安全に管理したい at-rest encryption
  8. エコシステム導入の判断基準 やりたいことが エコシステムを利用しないと実現できない場合 に導入に踏み切る アプリの要望 エコシステム導入が必要となるケース Jobを細かく制御したい 複数ステップの依存関係がある複雑なワーク フロー等 CI/CD経由でデプロイしたい

    GitOpsによる宣言的管理や複数環境への自 動デプロイ等 リソース利用を可視化したい アラート設定とエスカレーションや長期間のメト リクス保存等 Canaryリリースしたい 自動メトリクス分析による判定や自動ロール バック機能等 Secretを安全に管理したい 外部Key Management Service連携等
  9. エコシステム選定の例 【必須条件】 🔴 すべて満たす必要あり ✓ 成熟度: CNCF Incubating以上 OR 同等

    ✓ 活動性: 過去1年以内のFeatureリリース ✓ 実績: 日本国内での導入事例 1件以上 【評価項目】 🟡 ポイント制で判定 ⭐ コミュニティ : GitHub Stars 5K以上 (2pt) ⭐ 開発活動: 月間Contributors 10名以上 (2pt) ⭐ エコシステム : 商用サポート利用可能 (1pt) ⭐ 日本語対応: ドキュメント・コミュニティ (1pt) 📊 判定基準: 必須4項目 + 評価4pt以上で採用
  10. • 競輪などの公営競技のオンライン投票サービス • 可用性・スケーラビリティへの取り組み多数 活動組織について(WINTICKET) • 「GKE」 を用いた東京 /大阪のマルチリージョン・マルチ クラスタ構成

    • 「Istio」を活用したカナリアリリース • 「KEDA」によるプロダクト特性に応じた柔軟な スケーリング戦略 https://developers.cyberagent.co.jp/blog/archives/54138/ https://developers.cyberagent.co.jp/blog/archives/58729/ ブログも公開中
  11. KubeVela KubeVelaの機能 • OAMモデルを使用して開発者のデプロイを簡素 化し、拡張性を実現するツール 導入経緯 • アプリケーション開発者の Kubernetesに対する認 知負荷を減らす

    • Clusterを管理する上で必要な設定を管理者側で 強制する 導入が必要な理由 • 管理者が必要な設定を自身ですぐに反映できる ようにする必要があった
  12. KubeVela 導入当時を思い出して • 5年程前に導入 • 導入当時に CNCFのSandbox Projectになって勢いがあるように感じた(その後 Incubating に昇格)

    不安点 • メンテ体制が大きく変わって従来開発主力の Alibaba Cloudが撤退 ◦ 開発状況が怪しい感じになってきている • 定義自体は CUE Langで書くので、管理者側の学習コストが高い
  13. External Secrets Operator External Secrets Operatorの機能 • AWS Secrets ManagerやHashiCorp

    Vaultなどの外部シークレット管理システムからシーク レットを自動取得し、 KubernetesのSecretリソースとして同期・管理するオペレーター 導入当時 • Kubernetes External Secretsを利用していたが、 EOLとなる 導入経緯 • Kubernetes External Secretsのマイグレーション先として導入 • EKSを使用しているので、 SecretsをAWS Secrets Managerで管理したい
  14. External Secrets Operator 不安点 • 今年8月頃にメンテナンス停止の噂が流れてきた ◦ 暫定メンテナーを確保できたのでメンテナンスが継続されそう なぜAWS Secrets

    Manager CSI Driverを利用してないの? ➔ Platform構築当時はまだ AWS Secrets Manager CSI Driverの機能は存在してなかった
  15. KEDA KEDAの機能 • イベント駆動型のオートスケーリングを Kubernetes上で実現するエコシステム • 外部システムやイベントソースを利用して Podをゼロから動的にスケールできる 実現したかったこと •

    投票集計処理などで HPAのCPUスケールでは間に合わないような処理に対して、別の指標を利用し て事前にスケールをさせたい • スケールの指標に関してはアプリケーションに手をいれることなく、元からあるメトリクスなどを利用 できると良い
  16. KEDA ❖ CNCFの成熟度 ➢ Graduated ❖ Stars ➢ 9k ❖

    Contributer ➢ 406 ❖ GitHubのリリース頻度 ➢ 均すと月に一度くらいにリリース ❖ 周りの声 ➢ 他の部署や他の会社の人にヒヤリング 2025年4月時点
  17. 選定してもバージョンアップは大変 • ユーザがGithub Actionsを実行する • アップデートエンジンを呼び出す • マニフェストを更新し Pull Requestを作成する

    • 変更を見て優先順位が高いものは、高優先度の PRを作成する • 破壊的変更を検出する • ローカルKubernetesで問題ないかを Dry-Runを実施する