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

Kubernetesで実現できるPlatform Engineering の現在地

nwiizo
March 25, 2025

Kubernetesで実現できるPlatform Engineering の現在地

本日、「Kubernetesで実践する Platform Engineering - FL#88」というイベントで「Kubernetesで実現できるPlatform Engineering の現在地」🎵🧭 というタイトルで登壇しました!

🔍 イベント詳細:
- イベント名: Kubernetesで実践する Platform Engineering - FL#88
- 公式URL: https://forkwell.connpass.com/event/348104/

🗣️ 関連スライド
- インフラをつくるとはどういうことなのか、 あるいはPlatform Engineeringについて
- https://speakerdeck.com/nwiizo/inhurawotukurutohadouiukotonanoka-aruihaplatform-engineeringnituite
- Platform Engineeringは自由のめまい
- https://speakerdeck.com/nwiizo/platform-engineeringhazi-you-nomemai

nwiizo

March 25, 2025
Tweet

More Decks by nwiizo

Other Decks in Programming

Transcript

  1. Platform Engineering on Kubernetes (Book) Platform Engineering on Kubernetes 2023年

    https://www.oreilly.co.jp/books/9784873119648/ 原書名:Platform Engineering on Kubernetes 執筆開始:2020年2月 出版:2023年10月 原著者:Mauricio Salatino(@Salaboy) 実践的なアプローチ プラットフォームのバックエンド、メカニズム、API に焦点を当てる 4
  2. Kubernetesで実践する Platform Engineering Kubernetesで実践する Platform Engineering https://www.shoeisha.co.jp/book/detail/9784798188379 翻訳開始:2024年7月 出版:2025年2月 翻訳者チーム:株式会社スリーシェイクの4名

    (@nwiizo,@tozastation,@Hiroki__IT,@Kazumatcha) 特徴: 用語解説Tipsの追加 専門用語の丁寧な解説 補章の収録 日本のコンテキストに合わせた説明 8
  3. 『Platform Engineering on Kubernetes』 の構成 Kubernetesで実践する Platform Engineering https://www.shoeisha.co.jp/book/detail/97847981 88379

    目次 第1章 Kubernetes上のプラットフォーム(の台頭) 第2章 クラウドネイティブアプリケーションの課題 第3章 サービスパイプライン:クラウドネイティブアプリケーションの構築 第4章 実行環境パイプライン:クラウドネイティブアプリケーションのデプロイ 第5章 マルチクラウド(アプリケーション)インフラストラクチャー 第6章 Kubernetes上にプラットフォームを構築しよう 第7章 プラットフォーム機能 I:共有アプリケーションの懸念事項 第8章 プラットフォーム機能 II:チームによる実験を可能にする 第9章 プラットフォームの測定 補章 クラウドネイティブ技術とマイクロサービスアーキテクチャーのつながり 9
  4. 『Platform Engineering on Kubernetes』 の構成 Kubernetesで実践する Platform Engineering https://www.shoeisha.co.jp/book/detail/9784798188379 第1章では、プラットフォームとは何か、なぜそれ

    が必要なのか、そしてクラウドプロバイダーが提 供するものとどう違うのかを紹介する。 第2章では、Kubernetes 上で動作するクラウドネ イティブで分散されたアプリケーションを構築す る際の課題を評価する。 第3章では、異なるクラウドプロバイダー上でアプ リケーションを実行するためのリソースの構築、 パッケージ化、デリバリーに必要な追加手順に焦 点を当てる。 10
  5. 『Platform Engineering on Kubernetes』 の構成 Kubernetesで実践する Platform Engineering https://www.shoeisha.co.jp/book/detail/9784798188379 第4章では、パイプラインの概念を中心に、

    GitOps アプローチを用いて複数の環境の構成を宣 言的なアプローチで管理する方法を説明する。 第5章では、Crossplaneを使用してクラウドプロ バイダー間でアプリケーションのインフラストラ クチャコンポーネントをプロビジョニングする Kubernetesネイティブなアプローチについて説明 する。 第6章では、開発環境の作成に特化した、 Kubernetes 上にプラットフォームを構築すること を提案する。 11
  6. 『Platform Engineering on Kubernetes』 の構成 Kubernetesで実践する Platform Engineering https://www.shoeisha.co.jp/book/detail/9784798188379 第7章では、プラットフォームチームが利用可能な

    リソースにどのように接続するかを決定できるア プリケーションレベルの API で開発チームを支援 することに焦点を当てる。 第8章では、新しいリリースを本格的にコミット する前に実験するために使用できるリリース戦略 を示す。 第9章では、プラットフォームのデータを取り込 み、プラットフォームの取り組みを評価するため の重要な指標を計算する2つのアプローチを評価 する。 12
  7. 現代の課題 - 複雑なソフトウェア環境の課題 Taming Your Dragon https://learning.oreilly.com/library/view/taming -your-dragon/9798868802645/ 1. 技術的負債の管理と計画的返済

    継続的拡張とメンテナンスの過程で、システム内に蓄積された技術的負債 がプロジェクトの進行速度と品質に影響を及ぼしています。長期的なシス テム健全性の確保とイノベーション推進のための余力創出が喫緊の課題と なっています。計画的な負債返済戦略と優先順位付けの仕組みが必要で す。 2. 組織全体での技術的負債への理解促進 技術的負債管理は技術チームだけの問題ではなく、組織全体の戦略的課題 として認識されるべきものです。経営層とのコミュニケーション強化とト レードオフ判断の透明化により、短期的な成果と長期的な持続可能性のバ ランスを取る文化の醸成が重要です。 13
  8. 現代の課題 - 複雑性に立ち向かう方法は? Architecture Modernization https://learning.oreilly.com/library/view/architecture- modernization/9781633438156/ 1. アーキテクチャ現代化の必然性 技術負債の蓄積により、システムの拡張性と保守性が著しく低下して

    おり、新機能開発の遅延とサービス品質の低下を招いています。モノ リシックな構造から脱却し、疎結合アーキテクチャへの移行が競争力 維持のために不可欠となっています。 2. 組織横断的な変革アプローチ 独立した価値ストリームの実現には、技術面だけでなくチーム編成と ドメイン境界の再定義が必要です。EventStormingやTeam Topologies を活用した協働的手法により、ビジネス・開発・運用の一貫性を確保 することが変革成功の鍵となります。 14
  9. 1. サービスパイプライン (第3章) コンテナ化とCI/CD Tekton / Dagger / GitHub Actions

    ローカル開発体験の向上 2. 環境パイプライン (第4章) Argo CDによるGitOps Helmによる環境構成管理 宣言的なインフラストラクチャ 3. マルチクラウドインフラ (第5章) Crossplaneによるクラウドリソース管理 XRD/Compositionによる抽象化 ベンダーロックイン回避 4. プラットフォーム機能 (第7-8章) Daprによる共通機能の提供 Knative/Argo Rolloutsによるリリース戦略 セルフサービスとオブザーバビリティ "開発者が本来の価値創造に集中できる環境を Platform Engineeringが実現する" 23
  10. Crossplaneによるクラウドリソース管理 (5/5) Figure 5.10 Lifecycle of managed resources with Crossplane

    書籍の実装例 「プラットフォームチームはXRDを設計し、アプリケーショ ンチームは簡素化されたAPIを利用します。これにより、ク ラウドプロバイダー間の移行が容易になり、ベンダーロック インを回避できます。 」 「第5章では、Crossplaneを活用してクラウドプロ バイダーを抽象化し、 アプリケーションチームに一貫したインフラAPIを 提供する方法が詳しく解説されています」 29
  11. vclusterによるマルチテナンシー (4/4) Figure 6.14 vcluster provides isolation at the Kubernetes

    (K8s) API server 管理者権限の委譲 vclusterでは、各チームに管理者権限を安全に委譲できるた め、チームの自律性が高まります。これにより、プラットフ ォームチームの負担も軽減されます。 「第6章では、vclusterを使用して開発者に柔軟かつ隔離され た環境を提供しながら、 基盤となるインフラを効率的に管理する方法が詳細に解説さ れています」 33
  12. Argo Rolloutsによる高度なデプロイ戦略 (2/4) Site Reliability Engineering on Kubernetes https://speakerdeck.com/nwiizo/site-reliability-engineering-on-kubernetes 書籍でのブルー/グリーン実装

    apiVersion: argoproj.io/v1alpha1 kind: Rollout metadata: name: frontend spec: strategy: blueGreen: activeService: frontend-active previewService: frontend-preview autoPromotionEnabled: false 35
  13. Argo Rolloutsによる高度なデプロイ戦略 (3/4) Site Reliability Engineering on Kubernetes https://speakerdeck.com/nwiizo/site-reliability-engineering-on-kubernetes Analysis

    Runs メトリクスベースの分析を自動化し、新バージョンのパ フォーマンスや安定性を評価して、自動的に昇格または ロールバックを判断します。 「第8章では、Argo Rolloutsを使用した高度なデプロイ パターンを通じて、 新機能のリスクを最小化しながら安全に本番環境に導入 する方法が示されています」 36
  14. Argo Rolloutsによる高度なデプロイ戦略 (4/4) カナリアリリース トラフィックの一部(例:5%)を新バー ジョンに転送 段階的にトラフィック比率を増加 問題が検出された場合は元のバージョンに 戻す リアルユーザーでの検証に最適

    Knative ServingやArgo Rolloutsで実現可能 ブルー/グリーンデプロイメント 新旧2つの環境を並行して維持 新環境(グリーン)でテストを実施 問題がなければトラフィックを一度に切り 替え 即時ロールバックが可能 Argo Rolloutsで実装可能 37
  15. A/Bテスト ユーザー属性に基づくトラフィック振り分 け 異なるバージョン間のパフォーマンス比較 データ駆動の意思決定 UXやビジネス指標の最適化 Istioとの組み合わせで実現可能 フィーチャーフラグ コード内の機能を動的に有効/無効化 開発とリリースの分離

    特定のユーザーグループへの機能提供 段階的なロールアウト OpenFeatureで標準化可能 「第8章では、これらのリリース戦略をKubernetes上で実装する方法が詳細に解説されています」 38
  16. DORAメトリクスによるプラットフォーム評価 (2/3) デプロイ頻度 組織が本番環境に変更をデプロイする頻度。高頻 度のデプロイは、小さな変更を迅速に提供する能 力を示します。 リードタイム コミットから本番デプロイまでの時間。短いリー ドタイムは、効率的なパイプラインと自動化の証 拠です。

    変更失敗率 本番環境へのデプロイが失敗または問題を引き起 こす割合。低い失敗率は、品質保証プロセスの有 効性を示します。 サービス復旧時間 障害発生から復旧までの平均時間。短い復旧時間 は、効果的なモニタリングと緊急対応プロセスを 反映しています。 40
  17. Platform Engineering実践のための要諦 戦略の要諦 https://bookplus.nikkei.com/atcl/catalog/2 3/10/13/01057/ 1. 開発者の痛点に正面から向き合う - 理想論ではなく実際の課題を特定 2.

    既存のツールと知見を最大限活用する - ゼロから構築せず統合と抽象化に注力 3. スコープクリープを避け核心部分に集中 - 「素晴らしい機能」の誘惑に負けない 4. 現場と密に連携し実践的なフィードバックを得る - 理論よりも実際の使用体験を重視 42
  18. 参考資料 DORA Metrics Tekton Knative Platform Engineering Meetup Salaboy's Blog

    - Platform Engineering in Tokyo Dapr OpenFeature 一日で学ぶクラウドネイティブ技術実践ハンズオン 46