🎸 [Backstage入門] Spotifyが作った最高の開発者ポータル、Backstage完全ガイド

こんにちは!クラウドセキュリティおよびプラットフォームエンジニアリングの専門家、チェ・イルソンです。🚀

前回の投稿で開発者ポータルの必要性について議論しましたが、今日はその実体とも言えるBackstageを徹底的に掘り下げてみようと思います。単なる「インストールして使うツール」ではなく、なぜ「フレームワーク」と呼ばれるのか、その哲学から構造まで一緒に見ていきましょう!


📌 章の概要と学習目標 🎯

Backstageは、Spotifyが急速な成長過程で経験したマイクロサービス管理の限界を克服するために誕生しました。その後、CNCFに寄贈され、現在は強力なコミュニティを持つオープンソースプロジェクトとなっています。

この章を通じて、私たちは以下を学びます:

  • Backstageが誕生した決定的な理由 💡
  • Backstageの核となる価値と、あなたの組織をマッチングする方法 🤝
  • Backstageを「製品」ではなく「フレームワーク」として理解する 🏗️
  • Backstageインスタンスがどのような要素で構成されているかを把握する 🧩

1. Backstageの誕生:Spotifyの悩み 🇸🇪

Backstageの誕生背景は、今日の多くの成熟したIT組織が直面する問題と非常によく似ています。

📈 急成長の副作用

Spotifyは毎週新しいエンジニアを採用し、マイクロサービスの数は指数関数的に増加しました。プラットフォームチームはすぐに限界に直面しました。「一体どのサービスが稼働していて、担当者は誰なのか?」というごく基本的な質問にさえ答えるのが難しくなったからです。

🏗️ System-Zからオープンソースへ

当初、彼らはSystem-Zという社内マイクロサービスカタログを作成しました。

  1. 初期:リポジトリリンク、担当チーム、PM名程度のメタデータのみを管理していました。
  2. 進化:サービス間の依存関係、APIドキュメント、ソフトウェアテンプレート(Scaffolding)機能を統合しました。
  3. 結果:ドキュメントがコードと共に管理されることで最新性が維持され、エンジニアがリソースを直接作成できるセルフサービスの場となりました。

Spotifyはこの革新的なツールを独占せず、CNCFに寄贈しました。現在、フォーチュン500企業を含む数百の組織がBackstageを通じて開発者体験を革新しています。🌍


2. Backstageの哲学:自律性と所有権 ⚖️

Backstageは単にツールを集めたページではありません。その中には明確なDX(Developer Experience)の哲学が溶け込んでいます。

🔄 情報の集約者 (Aggregator)

Backstageは既存のCI/CDツールやLDAPディレクトリを置き換えようとはしません。代わりに、あちこちに散らばった情報を一箇所に集め、開発者が迷わないように助ける「情報のハブ」としての役割を果たします。

🛡️ 自律性と所有権 (Autonomy & Ownership)

  • 自律性:中央チームがすべてのプラグインを作成することはできません。分析チームは分析プラグインを、セキュリティチームはセキュリティプラグインを自ら管理することを推奨します。
  • 所有権:すべてのソフトウェアコンポーネントは、たった一つのチームが所有すべきです。そうすることで、情報が最新に保たれ、責任の所在が明確になります。

3. Backstageは「フレームワーク」です 🏗️

この部分が最も重要です。Backstageは、インストールファイル(.exeや.dmg)一つで完結する「完成品」ではありません。

Backstageは、React(フロントエンド)とNode.js(バックエンド)ベースのライブラリ集合体です。つまり、あなたの組織に合わせて自ら「開発」し「組み立て」ていくプラットフォームなのです。約25のコアパッケージと150を超えるオープンソースプラグインが提供されているため、必要なものだけを選んで組み込むことができます。


4. Backstageインスタンスの3層モデル 🧩

あなたが構築するBackstageは、大きく三つの層に分かれます。

  1. コア (Core):Backstageメインチームが管理するオープンソースベースのコードです。システムの骨格となる役割を果たします。
  2. アプリ (App):あなたが実際にデプロイし、開発者がアクセスすることになるインスタンスです。CLIを通じて生成し、あなたの好みに合わせてカスタマイズする領域です。
  3. プラグイン (Plugins):機能を拡張する単位です。ソフトウェアカタログ自体もプラグインの形で存在し、コミュニティが提供する様々なプラグインをインストールしたり、自分で作成することもできます。


Backstageは、クラウドネイティブ時代において開発者の認知負荷を軽減する最高の解決策です。もしあなたの組織の複雑性を減らしたいなら、今すぐBackstageに注目してみてください!🚀


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です