在上一篇文章中,我們已經成功創建了一個 Backstage 應用。接下來,我們將探討如何將專案引入 Backstage,這是整個平台的核心功能之一。掌握這部分內容,能在後續開發插件及應用時更加得心應手。畢竟,Backstage 的主要特點正是整合來自各處的服務資訊,而專案引入的基本設定是整個流程中的關鍵步驟。
在開始開發之前,必須提到 Backstage 的核心之一——軟體目錄 (Catalog)。它能支援連結各種型態的軟體或平台,無論是主機、網站,還是資料庫,而其中最關鍵的功能就是將我們的專案與平台連結。這一切都是透過元數據檔案 (metadata YAML files) 來定義和管理的。你可以將這些檔案與 Backstage 專案一同部署,或者放置於網路位置 (如 GitHub) 上。Backstage 會讀取這些檔案,將內容存入資料庫,並由前端自動呈現其相關資訊。
Catalog 概念圖 / 圖片來源- https://backstage.io
由於這塊的名詞會比較多且意義相近,我們先簡單整理一下
軟體目錄 (Software Catalog): 軟體目錄是 Backstage 中的一個核心功能之一,提供了一個統一的界面,來瀏覽、搜尋和管理組織內不同的軟體和服務。
元件 (component) :
軟體目錄中的基本單位,通常代表一個可獨立部署或管理的軟體。可以是應用程式、API、資料庫、主機或其他等等。元件通常包含詳細的狀態資訊。
實體 (Entity):
在 Backstage 中任何單位或是對象,都是以實體的概念呈現,元件會有一個實體、使用者會有一個實體、團隊也有一個實體…其基底都是以元數據檔案所構成。
元數據檔案 (Metadata Files):
包含有關 Backstage 中實體的詳細信息的文件,檔案通常以 YAML 格式存在,描述了實體的屬性、關聯、配置等資訊。作為 Backstage 中最底層的概念存在,其格式的正確與否可說是牽一髮動全身。
孤立數據 (Orphaned Data):
當元數據檔案被移動、重命名、刪除,不再被任何單位引用或關聯,從而導致實體變成孤立數據,這些資料對 Backstage 沒有用處,需要定期清理以保持目錄的整潔。
當我們首次啟動 Backstage 時,會看到範例元件 example-website
,這個實體在這裡被定義為一個網站類型。另外畫面上所顯示的資訊,都是可以透過元數據進行設定的。我們也可以點擊右上方的「更多選項」圖標,選擇 Inspect entity
來查看 YAML 設定檔的樣子,其中部分設定是由 Backstage 自動產生並加入的,我們不需要手動填寫所有內容。
在 app-config.yaml
設定檔中,catalog 的設定幫助 Backstage 準確地找到並導入實體數據,並顯示經允許的相關分類資訊,簡單講解一下這部分的設定。
import 部分
entityFilename
用於設定從外部系統(如 GitHub、GitLab 等)導入實體數據時所使用的文件名稱。
pullRequestBranchName
當你從外部系統導入新的實體數據時,Backstage 會自動在名為 backstage-integration 的分支上創建或更新一個 PR。