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 应用的服务账号 | ||
| 创建服务账号 | 平台工程师 |
在管理项目中创建服务账号 ( 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 资源进行统一监控、费用观测和问题排查。