プラットフォームエンジニアリング

開発者の生産性を向上させる内部プラットフォームを構築・運用する実践

DevOps組織

プラットフォームエンジニアリングとは

プラットフォームエンジニアリングは、開発者の生産性を向上させる内部開発者プラットフォーム (IDP) を構築・運用する実践である。Gartner が 2023 年のトップトレンドに選出。チームトポロジーの Platform チームが担当する。

なぜ必要か

DevOps の普及により各チームがインフラを自前で管理するようになったが、チームごとに CI/CD やインフラ構成がバラバラになり、認知負荷が増大した。プラットフォームエンジニアリングは、共通基盤を専門チームが構築・提供することで、開発者がビジネスロジックに集中できる環境を実現する。

問題 プラットフォームで解決
各チームが CI/CD を個別に構築 共通の CI/CD テンプレート
インフラの知識が必要 セルフサービスでデプロイ
設定ミスによる障害 ガードレール付きのテンプレート
オンボーディングが遅い 標準化された開発環境

プラットフォームの構成要素

プラットフォームの構成要素を以下にまとめる。

要素 説明 AWS での実装
CI/CD 共通のパイプライン GitHub Actions テンプレート
IaC テンプレート 標準化されたインフラ SAM テンプレート
監視基盤 ダッシュボード、アラート CloudWatch
セキュリティ ポリシー、スキャン IAM, WAF
ドキュメント 使い方ガイド 内部 Wiki

プラットフォーム vs DevOps

プラットフォームと DevOps の違いを以下にまとめる。

観点 DevOps プラットフォームエンジニアリング
対象 各チームが自分で運用 専門チームがプラットフォームを提供
スケール チームごとに異なる 組織全体で標準化
認知負荷 高い (全員がインフラを理解) 低い (プラットフォームが抽象化)

ゴールデンパス

ゴールデンパスを図で示す。

プラットフォームが提供する「推奨される道」:
  1. リポジトリテンプレートを使って新規プロジェクト作成
  2. SAM テンプレートでインフラを定義
  3. GitHub Actions で自動デプロイ
  4. CloudWatch ダッシュボードが自動生成
→ 開発者はビジネスロジックに集中

プラットフォームの原則

プラットフォームは内部顧客 (開発者) のニーズに応えるプロダクトとして扱う。開発者が自分でデプロイできるセルフサービスを提供し、制約を設けつつ自由度を確保するガードレールを設計する。使い方を明確に文書化し、利用の障壁を下げる。

体系的に学ぶなら関連書籍を参照してほしい。

この記事は役に立ちましたか?

関連用語

関連する記事