開始使用 App Design Center (ADC) 和 Firebase

Firebase 與 Google Cloud 的 Application Design Center (ADC) 整合,可讓企業客戶滿足標準化和管理需求,同時讓應用程式開發人員快速推出產品。使用 ADC,可透過預先定義的範本,確保基礎架構符合組織標準和最佳做法,這些範本定義了佈建資源、授予 IAM 權限等作業的防護措施。

本頁面將說明以下內容:

ADC 和 Firebase 總覽

建議您參閱 Google Cloud 說明文件,概略瞭解 ADC。Google Cloud 說明文件也提供多份 ADC 的深入指南,包括重要概念和初始設定指南。

使用 ADC 時,「應用程式」是指資源和服務的邏輯群組,共同提供業務功能。Firebase 開發人員可以將ADC「應用程式」視為 Firebase 專案,其中註冊的 iOS、Android 和網頁應用程式都會共用並存取專案的所有資源和服務。

建議您先使用 Google Cloud 控制台中的 ADC,透過名為設計畫布的 GUI 體驗開始操作。您可以在設計畫布上,以視覺化方式建立應用程式所需的基礎架構圖。

請注意,ADC 是由 Terraform 支援,因此您隨時可以存取使用 ADC 定義的基礎架構程式碼定義。

系統支援的 Firebase 產品

以下是可與 ADC 搭配使用的首批 Firebase 產品:

ADC 的主要使用者

瞭解及使用 ADC 的常見方法,是根據兩種角色細分 ADC 相關工作:

  • 平台工程師:這個角色會設計、驗證及發布可重複使用、強制執行政策的 ADC 範本,並將範本發布至 ADC 目錄。

  • 應用程式開發人員:這個角色會使用已發布的 ADC 範本 (例如團隊的 ADC 目錄),設定及部署基礎架構。他們也會開發應用程式的實際程式碼集和功能。

控管存取權所需的 IAM 角色

指派 IAM 角色後,您就能控管哪些專案成員 (或主體) 可以執行特定工作。

舉例來說,您可以將 Application Design Center 管理員角色 (roles/designcenter.admin) 指派給需要建立及指派空間、管理目錄和設計範本的平台工程師。不過,您可能只會將「應用程式編輯者」角色 (roles/designcenter.applicationEditor) 指派給應用程式開發人員,讓他們可以「使用」範本,但無法「建立」範本。

下表說明ADC相關工作、預期角色和必要角色:

工作 角色 IAM 角色 1
建立及管理範本
管理完整的 ADC 生命週期
(包括管理空間、目錄、範本、設定及部署應用程式)
平台工程師 管理專案的 Application Design Center 管理員
(roles/designcenter.admin)
建立及管理範本,以及設定和部署應用程式 平台工程師 管理專案的 Application Design Center 使用者
(roles/designcenter.user)
建立服務帳戶,用於部署 ADC 應用程式
建立服務帳戶 平台工程師 管理專案的建立服務帳戶
(roles/iam.serviceAccountCreator)
將用於 ADC 部署作業的專案存取權授予服務帳戶 平台工程師 部署專案的專案 IAM 管理員
(roles/resourcemanager.projectIamAdmin)
設定及部署 ADC 應用程式
控管完整的應用程式生命週期
(包括與原始碼和 CI/CD 系統整合)
應用程式開發人員 管理專案的應用程式管理員
(roles/designcenter.applicationAdmin)
根據管理員設定的現有範本和連線,設定及部署應用程式 應用程式開發人員 管理專案 的應用程式編輯者
(roles/designcenter.applicationEditor)

1 其中有幾個角色必須在管理專案中設定,這是 Google Cloud 階層中的頂層資源。

一般工作流程

本節說明建立及使用 ADC 範本的一般工作流程。步驟會標記通常會執行該步驟的角色。

  1. 步驟 1:設定 ADC (平台工程師)
  2. 步驟 2:建立範本 (平台工程師)
  3. 步驟 3:使用範本 (應用程式開發人員)
  4. 步驟 4:開發實際應用程式 (應用程式開發人員)

步驟 1:設定 ADC (平台工程師)

平台工程師角色 (或更高權限) 會完成這些工作,設定ADC。這些工作通常只需完成一次,即可完成所有設定,開始使用 ADC。

  1. 初始 ADC 設定。

    請按照 Google Cloud 說明文件中 ADC 的初始設定指南中的步驟和指引操作。請注意,本指南假設您會設定資料夾層級邊界。

    完成這項設定後,您應該會看到工作區,這是團隊協作、建立範本和部署應用程式的專屬區域。請務必與所有要合作的對象共用這個工作區 (以及資料夾和目錄) ADC。

  2. 設定聊天室的存取權和使用者。

    請按照 Google Cloud 說明文件中管理聊天室使用者的步驟,為 ADC 進行設定。請參閱本頁前述「控管存取權所需的 IAM 角色」一節。

  3. 預先佈建專案。

    在資料夾中建立一或多個新的 Google Cloud 專案。請務必將 Cloud Billing 帳戶連結至這些專案。應用程式開發人員部署範本中定義的基礎架構時,會使用這些專案。

  4. 設定部署作業服務帳戶。

    ADC 會使用範圍嚴格限制的服務帳戶,管理資源的自動佈建作業。這可防止應用程式開發人員使用自己的帳戶部署基礎架構。

    測試建立的範本部署作業時,ADC可以自動代您建立範圍嚴格的服務帳戶。您也可以自行提供服務帳戶,並授予您認為適合應用程式開發人員的權限。

步驟 2:建立範本 (平台工程師)

平台工程師角色會使用設計畫布,甚至 Gemini Cloud Assist 建立新的 ADC 範本。

  1. 定義資源。

    使用設計畫布,將元件拖曳到畫布上,並在元件之間建立連結。您可以使用這些元件,定義要讓應用程式開發人員使用哪些 Firebase (和 Google Cloud) 服務。

    舉例來說,範本可以定義如下資源:

    • 應用程式開發人員可以開發 iOS、Android 和網頁應用程式,這些應用程式都會使用這些資源。
    • 應用程式開發人員可以在應用程式中使用 Firebase AI Logic、Firebase Authentication、Cloud Firestore 和 Firebase Security Rules (請參閱ADC 支援的所有 Firebase 產品清單)。
    • Firebase Security Rules 預設會拒絕所有存取要求。接著,當應用程式開發人員使用這個範本進行自己的部署作業時,他們可以變更這些 Security Rules,以符合所需的存取模型。
  2. 定義政策。

    如要定義政策,例如已部署基礎架構的 IAM 角色,或資源允許的區域,則必須在這些政策的個別介面中設定。ADC 目前不支援在範本層級定義政策。

    您可以根據專案成員的工作內容,指派特定的 Firebase IAM 角色。舉例來說,如果他們只需要在 Firebase 控制台中查看資源,請指派 Firebase 檢視者角色 (roles/firebase.viewer)。

    您可以在資料夾或組織層級,設定資源的區域限制。

  3. 將範本新增至目錄。

    測試範本後,請將範本新增至團隊的 ADC 目錄。這個目錄必須與適當的人員共用,尤其是應用程式開發人員,這樣他們才能使用範本 (請參閱上方的「步驟 1:設定 ADC」)。

步驟 3:使用範本 (應用程式開發人員)

應用程式開發人員角色會選取預先定義的範本,並根據特定用途進行設定,然後部署基礎架構。

  1. 選取並設定範本。

    從 ADC 目錄中選取範本,並設定範本以建立應用程式草稿。可用的設定 (例如資源的可能區域) 僅限於平台工程師建立範本時設定的選項。

  2. 部署基礎架構。

    建立應用程式草稿後,請將 ADC 應用程式部署至為基礎架構部署作業建立的預先佈建專案 (請參閱上方的「步驟 1:設定 ADC」)。

    您可以前往 Firebase 控制台,查看專案已佈建的資源和已啟用服務。

步驟 4:開發實際應用程式 (應用程式開發人員)

ADC 可協助設定 Firebase 和Google Cloud基礎架構 (例如佈建資源和啟用 API)。不過,它不會為使用這些資源和 API 的實際應用程式編寫程式碼。

以下是應用程式開發人員需要執行的重要事項:

  1. 將應用程式的程式碼集連結至 Firebase。

    取得 Firebase 設定,並新增至各應用程式的程式碼集。

    舉例來說,如果範本允許 Android 應用程式,則必須將 google-services.json 檔案新增至 Android 專案中的適當目錄。

  2. 確保程式碼和資源一致。

    (如果使用 Cloud Firestore) 請務必更新並發布 Firebase Security Rules,以配合應用程式的 Cloud Firestore 資料模型。

你還能做什麼?

  • 監控已部署的 ADC「應用程式」,這些應用程式會自動在 App Hub 註冊。這樣一來,您就能在更廣泛的 Google Cloud 部署環境中,集中監控、觀察成本,以及排解 Firebase 資源問題。