Firebase 与 Google Cloud 的 Application Design Center (ADC) 集成,让企业客户能够满足标准化和治理需求,同时让其应用开发者能够快速交付。使用 ADC 可确保基础架构遵循组织标准和最佳实践,方法是通过预定义的模板来定义预配资源、授予 IAM 权限等方面的护栏。
在本页中,您将了解以下内容:
ADC 和 Firebase 概览
我们建议您查看 Google Cloud 文档,了解 ADC 概览。Google Cloud 文档还提供了多个有关 ADC 的深入指南,包括关键概念和初始设置指南。
使用 ADC 时,“应用”被定义为共同提供业务功能的资源和服务的逻辑分组。对于 Firebase 开发者,您可以将 ADC“应用”视为等同于 Firebase 项目,其中您注册的 iOS、Android 和 Web 应用都可共享并访问该项目的所有相同资源和服务。
首先,我们建议您使用 ADC,通过其名为设计画布的 GUI 体验(可在 Google Cloud 控制台中使用)来完成。借助设计画布,您可以直观呈现和创建要提供给应用的基础架构的架构图。
请注意,ADC 由 Terraform 提供支持,因此您始终可以访问使用 ADC 定义的基础设施的代码定义。
受支持的 Firebase 产品
以下是可与 ADC 搭配使用的受支持 Firebase 产品的初始集合:
- Firebase AI Logic
- Firebase Authentication
- Firebase App Check
- Cloud Firestore
- Firebase Security Rules
ADC 的主要用户角色
理解和使用 ADC 的一种常见方法是根据两个角色来细分与 ADC 相关的任务:
平台工程师:此角色负责设计、验证可重复使用且强制执行政策的 ADC 模板,并将其发布到 ADC 目录。
应用开发者:此角色使用已发布的 ADC 模板(例如来自团队的 ADC 目录)来配置和部署基础设施。他们还负责开发应用的实际代码库和功能。
控制访问权限所需的 IAM 角色
通过分配 IAM 角色,您可以控制哪些项目成员(或主账号)可以执行特定任务。
例如,您可以将 Application Design Center Admin 角色 (roles/designcenter.admin) 分配给需要创建和分配空间、管理目录和设计模板的平台工程师。不过,您可能只会向应用开发者分配应用编辑者角色 (roles/designcenter.applicationEditor),以便他们可以使用模板,但不能创建模板。
下表介绍了与 ADC 相关的任务、其目标角色以及所需的角色:
| 任务 | 角色 | IAM 角色 1 |
|---|---|---|
| 创建和管理模板 | ||
|
管理整个 ADC 生命周期 (包括管理空间、目录、模板,以及配置和部署应用) |
平台工程师 |
管理项目的 Application Design Center Admin ( roles/designcenter.admin |
| 创建和管理模板,以及配置和部署应用 | 平台工程师 |
管理项目的 Application Design Center User ( roles/designcenter.user |
| 创建用于部署 ADC 应用的服务账号 | ||
| 创建服务账号 | 平台工程师 |
管理项目的 Create Service Accounts ( roles/iam.serviceAccountCreator |
| 向服务账号授予对用于 ADC 部署的项目的访问权限 | 平台工程师 |
部署项目的 Project IAM Admin ( roles/resourcemanager.projectIamAdmin |
| 配置和部署 ADC 应用 | ||
|
控制整个应用生命周期 (包括与源代码和 CI/CD 系统集成) |
应用开发者 |
管理项目的 Application Admin ( roles/designcenter.applicationAdmin |
| 根据管理员设置的现有模板和连接配置和部署应用 | 应用开发者 |
管理项目的 Application Editor ( roles/designcenter.applicationEditor |
1 其中一些角色需要在管理项目(Google Cloud 层次结构中的顶级资源)上设置。
常规工作流程
本部分介绍了创建和使用 ADC 模板的一般工作流。这些步骤会标记通常执行该步骤的角色。
第 1 步:设置 ADC(平台工程师)
平台工程师角色(或更高级别)完成这些任务以设置 ADC。这些任务通常只需完成一次,即可设置好使用 ADC 所需的一切。
初始 ADC 设置。
按照 Google Cloud 文档中 ADC 的初始设置指南中的步骤和指南进行操作。请注意,本指南假定您将设置文件夹级边界。
完成此设置后,您应该会有一个空间,这是供团队协作、创建模板和部署应用的专用区域。请确保此空间(以及文件夹和目录)已与您要协作的所有人共享 ADC。
为聊天室设置访问权限和用户。
按照 Google Cloud 文档中 管理 的空间用户 ADC中的步骤操作。 请参阅本页面前面关于控制访问权限所需的 IAM 角色的指南。
预配项目。
在该文件夹中创建一个或多个新的 Google Cloud 项目。请务必将 Cloud Billing 账号与这些项目相关联。应用开发者在部署模板中定义的基础架构时,将使用这些项目。
配置部署服务账号。
ADC 使用范围严格的服务账号管理资源的自动预配。这可以防止应用开发者使用自己的账号部署基础设施。
在您测试所创建模板的部署时,ADC 可以代表您自动创建范围严格的服务账号。您还可以选择自带服务账号,该账号具有您认为适合应用开发者的权限。
第 2 步:创建模板(平台工程师)
平台工程师角色使用设计画布甚至 Gemini Cloud Assist 创建新的 ADC 模板。
定义资源。
使用设计画布,将组件拖放到画布上,并在它们之间创建连接。通过这些组件,您可以定义希望应用开发者使用哪些 Firebase(和 Google Cloud)服务。
例如,模板可以定义如下资源:
- 应用开发者可以开发使用这些资源的 iOS、Android 和 Web 应用。
- 应用开发者可以在其应用中使用 Firebase AI Logic、Firebase Authentication、Cloud Firestore 和 Firebase Security Rules(请参阅适用于 ADC 的所有受支持 Firebase 产品的列表)。
- Firebase Security Rules 最初默认设置为拒绝所有访问请求。然后,当应用开发者将此模板用于自己的部署时,他们将能够更改这些 Security Rules,以符合其所需的访问权限模型。
定义政策。
如果您想定义政策(例如已部署的基础设施的 IAM 角色或资源的允许区域),则需要在这些政策的相应界面中进行设置。ADC 目前不支持在模板级定义政策。
您可以根据希望项目成员执行的操作,为他们分配特定的 Firebase IAM 角色。例如,如果他们只需要在 Firebase 控制台中查看资源,则为他们分配 Firebase Viewer 角色 (
roles/firebase.viewer)。您可以在文件夹或组织级层为资源设置区域限制。
将模板添加到目录。
测试模板后,将其添加到团队的 ADC 目录中。此目录必须与适当的人员(尤其是应用开发者)共享,以便他们可以使用模板(请参阅上文中的第 1 步:设置 ADC)。
第 3 步:使用模板(应用开发者)
应用开发者角色选择预定义模板,针对其特定应用场景进行配置,然后部署基础设施。
选择模板并进行配置。
从 ADC 目录中选择一个模板,然后对其进行配置以创建应用草稿。可用的配置(例如资源的可能区域)仅限于平台工程师在创建模板时设置的配置。
部署基础架构。
创建应用草稿后,将 ADC 应用部署到为基础架构部署创建的预配项目中(请参阅上文的第 1 步:设置 ADC)
您可以访问 Firebase 控制台,查看为项目预配的资源和已启用的服务。
第 4 步:开发实际应用(应用开发者)
ADC 有助于设置 Firebase 和 Google Cloud 基础架构(例如预配资源和启用 API)。但是,它不会为使用这些资源和 API 的实际应用编写代码。
以下是应用开发者角色需要执行的一些重要操作:
将应用的代码库连接到 Firebase。
获取 Firebase 配置,然后将其添加到每个应用的代码库中。
例如,如果模板允许 Android 应用,则您必须将
google-services.json文件添加到 Android 项目中的相应目录。确保代码和资源保持一致。
(如果使用 Cloud Firestore)请务必更新并发布 Firebase Security Rules,使其与应用的 Cloud Firestore 数据模型保持一致。
你还可以做些什么?
- 监控已部署的 ADC“应用”,这些应用会自动在 App Hub 中注册。这样,您就可以在更广泛的 Google Cloud 部署环境中对 Firebase 资源进行统一监控、费用观察和问题排查。