Backstageの特徴
Backstageはプラグインベースのアーキテクチャを採用しており、ユーザーのニーズに合わせて機能をカスタマイズできます。コミュニティや企業によって開発・公開されたプラグインを利用することで、多様なツールを統合することが可能です。もちろん、ユーザー自身で独自のプラグインを開発することもできます。
Backstageでは以下の3つのタスクにフォーカスし、開発者を支援します。
- Create
- Manage
- Explore
それぞれのタスクに対するBackstageの支援機能について解説します。
Create
アプリ開発者の主な業務はアプリケーションの開発です。
前述のとおり、現代のアプリケーション開発においては多様なツールを使うことが一般的となっています。それらの多様なツールを使うことによって、開発プロジェクトを立ち上げ、動作するアプリをリリースするまでのプロセスは複雑化し、長い時間を要するようになっています。
Backstageはアプリケーションの開発を支援するために、ソフトウェアテンプレート機能を備えています。あらかじめ社内でよく利用されるプログラム言語やフレームワークをテンプレートとして用意しておくことで、アプリ開発者は簡単にプロジェクトを立ち上げることができます。テンプレート内にインフラストラクチャを構成するためのコードやCI/CDパイプラインの設定なども含めることで、他のチームへの依頼が必要ないセルフサービス型の開発環境を実現できます。
Manage
作成したアプリケーション資産を管理することもアプリ開発者の重要な業務です。特にマイクロサービスアーキテクチャを採用しているケースでは、多くのサービスが存在し、それらのサービス間の依存関係を把握することが困難です。
Backstageはアプリケーション資産の管理を支援するために、サービスカタログ機能を備えています。サービスカタログによって組織内のサービスを一元管理し、それらのサービス間の依存関係を可視化することができます。
また、BackstageはCI/CDの実行履歴やKubernetes上のアプリケーションの状態を表示する機能も備えています。これらの機能により、複数のツールを行き来することなく、Backstage単体でサービスの状態を把握することができます。
Explore
アプリ開発者は他のチームが開発したサービスやライブラリを利用することもあります。社内で開発されたサービスやライブラリを探すにあたって、誰が開発したのか、どのような機能を提供しているのかといった情報が整理されていないと、ソフトウェア資産を有効に活用することができません。
Backstageのサービスカタログ機能を活用することで、社内で開発されたサービスやライブラリを一元管理できます。サービスカタログには所有者の情報を設定できるため、利用にあたっての問い合わせ先を明確にできます。
また、Backstageにはリポジトリ内のMarkdownファイルを読み込んで表示するTechDocsという機能も備えています。Markdownにサービスやライブラリの利用法や設計思想などを記述しておくことで、他の開発者が利用する際の参考となり、開発チーム同士の不要なコミュニケーションを減らすことができます。
サービスカタログやドキュメントを横断的に検索する機能も備えているため、登録された情報が膨大になっても必要な情報を見つけることができます。検索機能もプラグインとして提供されており、検索エンジンを変更することや、外部サイトの検索結果をBackstage上に表示させるようなカスタマイズもできます。