对于生产应用,您需要设置明确的开发工作流,尤其是有多个人员在开发您的应用时。开发工作流通常涉及设置和管理多个环境。
Firebase 对开发者工作流和组成环境提供不同级别的支持。熟悉本页中的开发者工作流术语和假设后,请查看我们有关设置 Firebase 项目和您的应用的常规最佳做法和常规安全指南。
关于环境
在软件开发中,环境是指运行应用实例或应用系统所需的所有硬件和软件。
为了开发和测试软件而不影响用户,可以使用一系列环境,以与生产环境数据和资源隔离开。如下图所示,较高级别的环境要么被视为“预生产”环境,要么被视为“生产环境”,您可以根据需要使用多个预生产环境。该图还介绍了与每种环境类型关联的常见做法和功能。
将功能或版本从这些环境逐步推送到生产环境的过程称为部署流水线。
环境类型
环境由您运行应用并为其代码和数据提供支持所需的底层基础架构组成。展开以下每个术语即可查看一些常见环境的说明,包括每种环境类型中使用的数据类型提示。
开发 (dev) 环境
每个开发者都需要一个开发环境(一个安全、隔离的地方),以便在构建过程中测试更改。理想情况下,您团队中的每个开发者都可以访问自己的开发环境。此外,如果开发环境是本地实例,那么开发者可以更快地进行迭代。
开发环境中的数据以通常类似于生产环境数据的数据为种子,但不得包含任何真实用户的数据。它还可能包含过去曾引发 Bug 的数据,例如非常长的字符串。
测试和质量检查环境
如果您要进行自动化测试,则需要用来运行这些测试的环境,并且需要在每次启动测试环境时重置数据。
如果您有质量检查工程师,这些工程师可能需要一个他们全都能使用的环境,或者需要单独的环境来测试新的候选版本。
测试环境和质量检查环境中的数据种子为通常代表生产环境数据的质量数据、代表极端情况的数据,以及过去导致 Bug 的数据示例。
预演环境
如需对版本在生产环境中的运行情况进行实际测试,您需要一个尽可能模拟生产基础架构的预演环境。如果您需要单独测试特定的集成,则通常有多个预演实例。
以下是预演环境与生产环境之间的常见区别:
生产环境 (prod) 环境
对于维护的每个应用,您都需要一个生产环境。这是与您的用户交互的实例。
与您可以更改、删除和/或重新创建数据的其他环境不同,生产环境中的数据非常重要;丢失或更改生产环境数据会直接影响您的用户。
在 Firebase 控制台中,我们建议将与生产环境关联的 Firebase 项目标记为“生产”环境类型。此标记可帮助提醒您和团队成员,任何更改都可能会影响关联的生产环境应用及其数据。
后续步骤