Skip to content

antony@notes:~/ops-automation$ cat "Backstage-OverView.md"

Backstage OverView

2023-09-23· ops-automation ·Backstage

Backstage OverView

Preface

本篇文章會主要會分做 3 個部分介紹

  1. 甚麼是 Backstage

可以透過點擊展開以下目錄,選擇想看的內容,跳轉至特定章節

:::warning

:::spoiler 目錄

[TOC]

:::

Backstage Instance

Backstage 實例是使用 Backstage 核心庫建立的 Node/React 應用程序,您可以在其上安裝社群和私人插件。

Backstage 使用三層模型來解釋如何使用其框架建立開發人員入口網站 :

  • Core 這是 Backstage 團隊維護和以開源方式發布的內容。除非您想為該專案做出貢獻,否則您可能不需要從一開始就了解這部分。
  • App 該應用程式是您提供給開發人員的 Developer Portal ( 開發人員入口網站 )。 在採用 Backstage 的過程中,您將與此部分進行最多的互動。
  • Plugins 您可以安裝 Plugins 來擴展您的實例功能。即使是基本的功能也被抽象為 Plugins ,包括 Catalog。因此,您將始終使用少量的 Plugins 。有幾十個社群 Plugins 可用來整合流行的服務。您也可以自己創建 Plugins 。

backstage core functionalities

Backstage offers five core functionalities:

  1. a software catalog
  2. software templates
  3. a documentation generator
  4. a Kubernetes cluster visualizer
  5. cross-ecosystem search capabilities.

Introducing the Software Catalog

Catalog 的目的是將企業中的所有應用系統,包括網站、API、程式庫和資源,映射到一個集中式目錄。這種集中化旨在幫助團隊管理技術並實現可發現性。Catalog 能持續追蹤每個 Application 的 metadata ( 元數據 )、所有權和依賴關係,從而生成一個軟體圖,其中包含孤立的 entities。

Catalog 非常靈活,可以容納各種 Application,在 Backstage 中稱為 entities。 由於網站與資料處理管道截然不同,因此 entities 可以按 Kind 種類區分。此外,即使在 entities 的種類中,也可以定義 Kind

Catalog 由儲存在 YAML 檔案中的 metadata 提供支持,YAML 檔案描述了每個檔案中單一 entitiy 的種類、類型、名稱、所有者和更多細節。 這些檔案通常儲存在各自的程式碼庫中,因此會經常更新。 有些 entities 類型可能有權威來源,但程式庫中沒有體現,例如,Okta 規定的使用者和團隊。

追蹤所有權和依賴關係是 Catalog 最重要的用例之一。 這些也在描述軟體元件的 YAML 檔案中聲明。 只有一個團隊可以成為元件的擁有者,這個團隊也必須作為一個 entities 在 Catalog 中註冊。 至於依賴關係,Backstage 可以讓你定義元件如何依賴另一個 entities ,以及元件暴露了哪些內容,以便其他人可以使用它。

根據這些 metadata 繪製的軟體圖可以發現一些問題,例如孤兒 entities ,這意味著它們沒有父 entities 。 此外,由於 Catalog 中存儲了有關所有軟體資產的大量信息,因此您還可以從中了解成熟度準備情況或安全警告等信息。

Introducing the Software Template

Backstage 中的 Software Template 軟體範本是一種工具,可幫助您在 Backstage 中建立元件。預設情況下,它可以加載程式碼的骨架,將範本包含在某些變數中,然後將範本發佈到 GitHub 或 GitLab 等位置。

Software Template 在 YAML 檔案中定義,該檔案指定要執行的參數和步驟。Backstage 將根據在 Software Template 中指定的參數,在 Scaffolder 中生成 UI。對於步驟,您可以使用內建動作來執行常見的取用操作,但您也可以定義自己的動作。

範本存儲在 Catalog 中的 template 種類下。此外,由 Scaffolder 初始化的所有元件都會自動添加到 Catalog 中。因此,Scaffolder 和 Catalog 之間有一個良性循環,可以促進可發現性和標準化。