👏

Spotifyが開発した開発者向けドキュメンテーションプラットフォームBackstageを紹介

2023/10/21に公開

記事の内容

Spotifyが開発した開発者向けドキュメンテーションポータルBackstageを使い始めたので、Backstageの概要と初期installの方法を紹介します。

Website

https://backstage.io/

記事を読むと得られるもの

  • Backstageの概要を知れる
  • BackstageのInstall方法を知れる

対象読者

  • 社内の開発生産性を上げたいエンジニア・PdM
  • Backstageを利用してみたい人
  • Platformエンジニア

記事の長さ

3分で読めます

Backstageとは

https://www.youtube.com/watch?v=85TQEpNCaU0

この動画がBackstageを説明した簡易的な紹介動画です。
とてもわかりやすいので、ご参照ください。

Backstageが生まれた背景

Backstageは、音楽ストリーミングサービスのSpotifyの社内で生まれました。
当時のSpotifyでは、ものすごい勢いでサービスの規模やエンジニア組織が拡大する際に、開発者が必要とする情報が断片化し、エンジニアの開発生産性を著しく下げていました。

  • 複数のマイクロサービス間で、どのようなFrameworkが使われていて、それらのVersionがいくつなのか?
  • 特定のサービスにおいて、誰がオーナーシップを持っているのか?
  • 自分たちが使いたいAPIに関する情報が見つけられない

そういった課題が浮き彫りになっていたのです。(これらの課題は、Spotifyのようなグローバル企業だけではなく、ある程度の規模のエンジニア組織なら起きうる課題です)

この課題を解決するために作られたサービスがBackstageです。
※現在はOSS化し、誰でも使えるようになっています。

参照
https://backstage.io/docs/overview/background/

Backstageの機能を紹介

Backstageにはたくさんの機能があるのですが、いくつか代表的なものを紹介します。

Softwareカタログ

https://backstage.io/docs/features/software-catalog/

Softwareカタログは、会社が管理するサービス・Webサイト・ワークフロー・ライブラリなどのソフトウェア資産を一元管理することができる機能です。
各サービスにオーナーシップを持っているチーム(メンバー)を紐づけることができるため、問い合わせ先が明確になり、全てのサービスに対して責任を持つチーム(メンバー)を割り当てることができます。

Software Template

https://backstage.io/docs/features/software-templates/

Software Templateは、ソフトウェアの雛形を管理できる機能です。

マイクロサービスを運用している会社で、基本的なセットアップは同じサービスを大量に運用しているならば、SoftwareTemplateの機能を使って、サービスの初期構築を簡単に行うことができます。

例えば、Railsの特定のバージョンと特定のGemと基本設定が完了したTemplateをBackstageに登録しておけば、Backstage上でそのTemplateから複製したGithubRepoを新規作成できます。

Tech Docs

https://backstage.io/docs/features/techdocs/

TechDocs機能は、様々な場所にあるMarkdownファイルをBackstage上で管理できる機能です。
例えば、BFF用のgithub repo, Frontend用のgithub repo, infra用のgithub repo, 様々なマイクロサービスのrepoなど、会社で管理する複数のリポジトリに分散しているMarkdownファイルをBackstage上で一元管理できる機能です。
この機能のおかげでソースとドキュメントファイルを同じ場所に置きつつ、会社全体のドキュメンテーションを一つの場所で管理できるようになります。

Plugins

https://backstage.io/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

Backstage

デプロイする

開発者向けポータルサイトなので、ローカルで動作するだけでは意味がありません。
社内のエンジニアが実際に利用できるように、インターネットアクセスを可能にしましょう。

こちらの記事にて、CloudRunとCloudSQL環境に対するデプロイ方法をまとめてあります。(WIP: 作成中なので、完了したらリンクを繋ぎます)

note

勉強法やキャリア構築法など、エンジニアに役立つ記事をnoteで配信しています。

https://note.com/ring_belle/membership

Discussion