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

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

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 ダッシュボードが自動生成
→ 開発者はビジネスロジックに集中

プラットフォームの原則

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

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

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

関連用語

関連する記事