LESSON 30分

ストーリー

田中VPoE
Step 2でセルフサービスプラットフォームの裏側を設計した。ここからは開発者が実際に触る「表側」だ。Internal Developer Portal(IDP)を構築する
あなた
IDPは開発者向けのWebポータルですか?
田中VPoE
単なるWebポータルではない。IDPはプラットフォームのすべてを統合する「開発者のためのワンストップショップ」だ。サービスカタログ、ドキュメント、API仕様、テンプレート、環境情報、メトリクス。開発者が必要とするすべてを一箇所に集約する
あなた
今は情報が散在していて、Confluenceにドキュメントがあったり、Datadogにメトリクスがあったり、Jiraにチケットがあったりして、情報を探すのに時間がかかります
田中VPoE
その「情報の分散」が認知負荷の大きな原因だ。IDPは分散したツールを統合するのではなく、それぞれのツールへの「入り口」を一元化する。Googleで何でも検索できるように、IDPから何でもアクセスできる状態を目指す

IDPとは何か

IDPの構成要素

コンポーネント役割
サービスカタログ組織のすべてのサービスとその情報を一覧管理オーナー、API仕様、依存関係、SLO
ソフトウェアテンプレート新規サービスをワンクリックで作成テンプレート選択→パラメータ入力→自動生成
テックドキュメントドキュメントの一元的なアクセスポイントTechDocs(docs-as-code)
セルフサービスカタログインフラリソースのセルフサービス作成DB作成、環境構築
検索横断的な情報検索サービス名、API、ドキュメント

IDPの価値

IDPが解決する課題:

Before(IDP導入前):
  「payment-serviceのAPIオーナーは誰?」
    → Confluenceを検索 → 見つからない → Slackで聞く → 30分
  「新しいサービスを作りたい」
    → 過去のリポジトリをコピー → CI/CD設定 → インフラチケット → 3日
  「staging環境のpostgresの接続情報は?」
    → VaultのUI → パスがわからない → 先輩に聞く → 20分

After(IDP導入後):
  「payment-serviceのAPIオーナーは誰?」
    → IDPでサービス名を検索 → 即座に表示 → 10秒
  「新しいサービスを作りたい」
    → IDPでテンプレート選択 → パラメータ入力 → 全自動 → 10分
  「staging環境のpostgresの接続情報は?」
    → IDPのサービス詳細ページ → Resources タブ → 即座に表示 → 10秒

IDPの市場動向

主要なIDPソリューション

ソリューションタイプ特徴コスト
BackstageOSSCNCF、Spotifyが開発、プラグインエコシステム無料(運用コスト)
PortSaaSノーコードでカスタマイズ、迅速な導入有料
CortexSaaSサービス品質スコアカード、成熟度追跡有料
OpsLevelSaaSサービスオーナーシップ、成熟度チェック有料
HumanitecPaaSスコアベースのプラットフォーム抽象化有料
自社構築カスタム完全なカスタマイズ、組織固有の要件対応高(開発コスト)

選定基準

基準重みBackstageSaaS型IDP自社構築
カスタマイズ性高(プラグイン)最高
初期導入コスト低(OSS)中(ライセンス)
運用コスト中(自前運用)低(SaaS)
エコシステム大(700+プラグイン)限定的なし
導入速度中(1-3ヶ月)高(数週間)低(6ヶ月以上)
コミュニティ大(CNCF)なしなし

「CloudOps社の規模(60名、25サービス)であれば、Backstageが最もバランスが良い。SaaSはコストが高すぎ、自社構築は開発コストが高すぎる」 — 田中VPoE


IDPのアーキテクチャ

全体構成

IDP アーキテクチャ:

┌─────────────────────────────────┐
│         Developer Portal         │
│  (Backstage フロントエンド)       │
│  ┌─────┬──────┬──────┬────────┐ │
│  │カタ │テン  │ドキュ│サービス│ │
│  │ログ │プレート│メント│カタログ│ │
│  └──┬──┴──┬───┴──┬───┴───┬────┘ │
└─────┼─────┼──────┼───────┼──────┘
      │     │      │       │
┌─────▼─────▼──────▼───────▼──────┐
│         Backstage Backend        │
│  ┌─────────────────────────────┐ │
│  │      Plugin System          │ │
│  │  ┌────┬────┬────┬────┬───┐  │ │
│  │  │K8s │Git │CI/ │Data│Vault│ │
│  │  │    │Hub │CD  │dog │   │  │ │
│  │  └──┬─┴──┬─┴──┬─┴──┬─┴─┬─┘  │ │
│  └─────┼────┼────┼────┼───┼────┘ │
└────────┼────┼────┼────┼───┼──────┘
         │    │    │    │   │
    ┌────▼┐┌──▼─┐┌─▼──┐┌▼──┐┌▼───┐
    │EKS  ││Git ││GH  ││DD ││Vault│
    │     ││Hub ││Act.││   ││    │
    └─────┘└────┘└────┘└───┘└────┘

データフロー

データソース更新頻度
サービス情報catalog-info.yaml(各リポジトリ)Gitプッシュ時
API仕様OpenAPI spec(各リポジトリ)Gitプッシュ時
デプロイ状況Argo CD / GitHub Actionsリアルタイム
メトリクスDatadogリアルタイム
ドキュメントdocs/(各リポジトリ)Gitプッシュ時
コストAWS Cost Explorer日次
シークレットVaultリアルタイム

IDP導入のロードマップ

段階的導入計画

フェーズ期間機能目標
Phase 11-2ヶ月サービスカタログ + 検索全サービスの可視化
Phase 23-4ヶ月ソフトウェアテンプレート + TechDocs新規サービス作成の自動化
Phase 35-6ヶ月セルフサービスカタログ + メトリクス統合セルフサービス率80%

まとめ

ポイント内容
IDP開発者に必要なすべての情報とツールへのワンストップアクセスを提供
5つのコンポーネントサービスカタログ、テンプレート、ドキュメント、セルフサービス、検索
ツール選定Backstage(OSS)、Port/Cortex(SaaS)、自社構築を比較検討
段階的導入サービスカタログ → テンプレート → セルフサービスの順に導入

チェックリスト

  • IDPの5つのコンポーネントを説明できる
  • 主要なIDPソリューションを比較できる
  • IDPのアーキテクチャを理解した
  • 段階的導入計画を策定できる

次のステップへ

次は「Backstageの導入」を学びます。CNCFのIDPフレームワークであるBackstageの具体的な導入方法を身につけましょう。


推定読了時間: 30分