
はじめに
こんにちは。ACS事業部 亀崎です。 私たちは オープンソースのInternal Developer Portal であるBackstageをマネージド・サービスとして提供しています。

2024年から次第に Internal Developer PortalおよびBackstage が注目されてきていると感じているのですが、まだまだどういったものなのかをご存知ない方もいらっしゃるかと思います。
そこで、これから数回にわけてその基本機能についてご紹介していきたいと思います。今回はその第1回目、テーマはSoftware Catalogです。
Software Catalog
Software Catalog概要
PlaTT/Backstageの基本的なコンセプトは、組織内において開発されているソフトウェアコンポーネント情報(および実行リソース情報)の共有です。それぞれのチームが開発・利用するコンポーネントの情報をできる限り公開することで、チームのサイロ化・や重複開発を抑止しつつ必要な情報をチーム内およびチーム間で共有するものです。 そうした情報を登録・管理する機能がSoftware Catalogです。PlaTT/Backstageの中心、主要な要素ということになります。
Software Catalogは主に以下の用途で利用します。
- 組織に存在するソフトウェアコンポーネントの一覧の管理
- それぞれのソフトウェアコンポーネントが利用してるリソースの登録と一覧化
- ソフトウェアコンポーネントやリソースの依存関係の把握
- ソフトウェアコンポーネント/リソースのオーナーシップの明確化
- ソフトウェアコンポーネントの開発状況、実行ステータスの可視化
Dependency
まず依存関係の把握についてみていきましょう。
Team AAA、BBBの2つのチームがあり、それぞれソフトウェアコンポーネント(アプリケーション)を開発しています。それぞれのコンポーネントはリソースXX、YY、ZZを利用しています。また、コンポーネントAやCはコンポーネントBを利用しています。イメージにすると以下のような状態です。 コンポーネントBを変更する場合、影響範囲はどこかを特定するならば、この図からコンポーネントAとCであることはすぐにわかります。また、どこのチームが開発しているかもわかります。小規模であれば、このような図を都度作成・更新することで、依存関係を管理し可視化することはできます。しかし、チームやコンポーネントが増加した場合はどうでしょうか。こうした図を作成し維持していくことは難しくなります。

このような依存関係やオーナーシップを動的に生成し、確認できるようにすることがSoftware Catalogが提供する機能の1つです。下図のピンクの部分が例であげたコンポーネントBに該当します。その周囲の青い要素が、依存関係にあるコンポーネントやリソース、オーナーを表紙しています。コンポーネントのオーナーや依存しているリソースを登録することで、こうした関係性を自動的に維持し可視化することができます。

オーナーやコンポーネント情報の詳細も表示できます。 コンポーネント表示では、連携しているGitHubリポジトリのIssueやGitHub Actionsの実行状況一覧、リリース情報の一覧などを見ることができます。詳細を確認するのはチームメンバーが多いかもしれません。しかし、リリース情報やIssueなどはそのコンポーネントを利用する他のコンポーネント開発者にも有用な情報となります。

実際の指定例
では、Software Catalogはどういった情報をしていするのでしょうか。PlaTT/Backstageではこうした情報をyaml形式で指定します。

デモサイト
実際に動作するデモが Backstage 開発プロジェクトで公開されていますので、そちらもご覧いただくとイメージもより掴みやすいと思います。
https://demo.backstage.io/catalog
まとめ
これまで、このブログでも何度も取り上げているBackstageは他にも様々な機能があり、そうした機能を組み合わせて利用いただくことで、組織内のソフトウェアをより効率的に共有することができます。ぜひご利用いただければと思います。
弊社ではPlatform Engineering、Backstageに関するご支援をさせていただいております。ご興味のある方ぜひご連絡ください。