こんにちは!ACSD松崎です。
本日は弊部署で精力的に取組中のInternal Developer Portal(IDP)なPortal、Backstageに入門してみましたので、そちらの内容を記事にまとめたいと思います。
はじめに宣伝
本記事を読んでいただく方の中には、Backstageに興味があり少しだけ動かしてみたい/触ってみたいという方も多いかと思います。そのような方には、弊社の以下のプロダクトがお勧めですのでよろしければ合わせてご確認ください。
※本記事の以降では、Spotifyの公式ページに準拠の方法を解説します。
QuickStartにおけるBackstageの起動手順の概要
BackstageのBuild & 起動方法については、公式ドキュメントにまとめられています。
上記のドキュメントの内容ですが、手順としては以下のように非常にシンプルですので躓く方は少ないと思います。
# Build - 以下を実行すると、プロンプトで入力の名前のサブディレクトリが生成され、配下にBackstageの起動に必要なファイル一式が格納される npx @backstage/create-app@latest # Run cd [生成されたサブディレクトリ名] yarn dev
どちらかというと、上記のコマンドを実行するための環境(Prerequsites)を整える工程が大変に思いましたので、本項でもそちらを中心にメモを残しておきたいと思います。
Buildに際し必要となるCLIコマンド
必要となるCLIコマンドの一覧
公式ドキュメントを見ますと、BackstageのBuildに際して必要なツールは以下となっています。*1 このうち、Node.jsとyarnにつきましては、少し注意が必要に思いましたので以下にまとめます。
curl
またはwget
- Node.js
- yarn
- docker
- git
Node.js導入時の注意点
BackstageのBuildに際しては、Node.jsの実行ランタイムが必要になります。
この際のNode.jsのバージョンですが、公式ドキュメントには 「Active LTS Releaseを使ってね」と書かれているので、20.X LTSを入れたくなりますが、Backstageに強い同僚に相談した所、「 20.x系はまだリリースされたばかりで不具合を踏む可能性があるので、18.Xの方がお勧めかも 」とのことでした。*2このあたりの事情は、時間の経過に伴い今後どんどん変わっていくので、その時々の状況で上手くランタイムのバージョン管理をする必要がありそうです。
また、Node.jsのインストール方法ですが、公式ドキュメントではnvmの利用が推奨されています。nvmは複数のverの異なるNode.jsランタイムを併存させたり、優先して実行するverを切り替えるためのCLIツールです。公式リポジトリは以下にあるので詳細を知りたい方は参照ください。
nvmのインストール方法についても、↑のReadme.mdに書かれていまして、Ubuntu22 * WSL2環境の場合、以下で導入することができました。
# nvmのinstall curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvmを入れた後、以下のような感じでNode.js ver18を入れました。
$ nvm install 18 $ nvm use 18 $ node --version v18.19.0
yarnの導入時の注意点
BackstageのBuildに際しては、Node.js(npm/npx) と合わせてyarnが必要になります。
2024年1月現在、yarnには1.x / 3.xの2種が存在し、1.x系はYarn Classicとも呼称されます。そして公式のBackstageのbuildに手順では、Buildに使われるパッケージである @backstage/create-app
がデフォルトではYarn Classic(1.x系)を使っている関係で、Yarn Classic(1.x系)を使うよう指示されています。*3Yarn classicの導入方法ですが、筆者が検証の際は以下のような流れで実施できました。 yarn set version classic
にて、3.x -> 1.x(Classic)への切替ができるようです。
$ npm install -g yarn added 1 package in 4s npm notice npm notice New minor version of npm available! 10.2.3 -> 10.3.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.3.0 npm notice Run npm install -g npm@10.3.0 to update! npm notice $ yarn --version 3.2.3 $ yarn set version classic ➤ YN0000: Retrieving https://nightly.yarnpkg.com/latest.js ➤ YN0000: Saving the new release in .yarn/releases/yarn-1.22.19.cjs ➤ YN0000: Done in 3s 658ms $ yarn --version 1.22.19
終わりに
いかがでしたでしょうか?Platform Engineeringが盛り上がりつつある今のタイミングで、IDPであるBackstageに触っておくとあとで幸せになれるかもしれません。ご興味を持っていただけたらぜひお試しください!
*1:公式ドキュメントにはこちらのツール以外にも色々と細かい条件が記載されていますので、できればそちらを合わせて確認することをお勧めします
*2:公式のDockerイメージをビルドする手順でも、2024年1月現在、DockerfileにてNode.js 18.x系のベースイメージが使われています。
*3:代わりにYarn 3を使う手順も提供されていますので、ご興味のある方はそちらを参照ください。