Spotifyが開発した開発者向けドキュメンテーションプラットフォームBackstageを紹介
記事の内容
Spotifyが開発した開発者向けドキュメンテーションポータルBackstageを使い始めたので、Backstageの概要と初期installの方法を紹介します。
Website
記事を読むと得られるもの
- Backstageの概要を知れる
- BackstageのInstall方法を知れる
対象読者
- 社内の開発生産性を上げたいエンジニア・PdM
- Backstageを利用してみたい人
- Platformエンジニア
記事の長さ
3分で読めます
Backstageとは
この動画がBackstageを説明した簡易的な紹介動画です。
とてもわかりやすいので、ご参照ください。
Backstageが生まれた背景
Backstageは、音楽ストリーミングサービスのSpotifyの社内で生まれました。
当時のSpotifyでは、ものすごい勢いでサービスの規模やエンジニア組織が拡大する際に、開発者が必要とする情報が断片化し、エンジニアの開発生産性を著しく下げていました。
- 複数のマイクロサービス間で、どのようなFrameworkが使われていて、それらのVersionがいくつなのか?
- 特定のサービスにおいて、誰がオーナーシップを持っているのか?
- 自分たちが使いたいAPIに関する情報が見つけられない
そういった課題が浮き彫りになっていたのです。(これらの課題は、Spotifyのようなグローバル企業だけではなく、ある程度の規模のエンジニア組織なら起きうる課題です)
この課題を解決するために作られたサービスがBackstageです。
※現在はOSS化し、誰でも使えるようになっています。
参照
Backstageの機能を紹介
Backstageにはたくさんの機能があるのですが、いくつか代表的なものを紹介します。
Softwareカタログ
Softwareカタログは、会社が管理するサービス・Webサイト・ワークフロー・ライブラリなどのソフトウェア資産を一元管理することができる機能です。
各サービスにオーナーシップを持っているチーム(メンバー)を紐づけることができるため、問い合わせ先が明確になり、全てのサービスに対して責任を持つチーム(メンバー)を割り当てることができます。
Software Template
Software Templateは、ソフトウェアの雛形を管理できる機能です。
マイクロサービスを運用している会社で、基本的なセットアップは同じサービスを大量に運用しているならば、SoftwareTemplateの機能を使って、サービスの初期構築を簡単に行うことができます。
例えば、Railsの特定のバージョンと特定のGemと基本設定が完了したTemplateをBackstageに登録しておけば、Backstage上でそのTemplateから複製したGithubRepoを新規作成できます。
Tech Docs
TechDocs機能は、様々な場所にあるMarkdownファイルをBackstage上で管理できる機能です。
例えば、BFF用のgithub repo, Frontend用のgithub repo, infra用のgithub repo, 様々なマイクロサービスのrepoなど、会社で管理する複数のリポジトリに分散しているMarkdownファイルをBackstage上で一元管理できる機能です。
この機能のおかげでソースとドキュメントファイルを同じ場所に置きつつ、会社全体のドキュメンテーションを一つの場所で管理できるようになります。
Plugins
上記で紹介した機能以外にも、Backstageはたくさんの機能をPluginという形で提供しています。
複数のプロジェクトのコストを横断的に確認できる機能や、社内で使っているワークフローを一元管理できる機能など、さまざまなPluginが公開されています。
BackstageのInstall
Backstageを実際に使うための方法を紹介します。
Local環境構築
ローカルでBackstageを動作させるのは非常に簡単です。公式サイトのGetting Startedの手順通りに、以下を実行すると、localhost:3000にてBackstageを起動できます。
$ npx @backstage/create-app@latest
$ cd my-backstage-app(ディレクトリ名は変更できます)
$ yarn dev
デプロイする
開発者向けポータルサイトなので、ローカルで動作するだけでは意味がありません。
社内のエンジニアが実際に利用できるように、インターネットアクセスを可能にしましょう。
こちらの記事にて、CloudRunとCloudSQL環境に対するデプロイ方法をまとめてあります。(WIP: 作成中なので、完了したらリンクを繋ぎます)
note
勉強法やキャリア構築法など、エンジニアに役立つ記事をnoteで配信しています。
Discussion