对于生产应用程序,您需要建立一个清晰的开发工作流程,特别是如果您有多个人在开发您的应用程序。开发工作流程通常涉及设置和管理多个环境。
Firebase 对开发人员工作流程和组成环境提供不同级别的支持。熟悉此页面上的开发人员工作流程条款和假设后,请查看我们关于设置 Firebase 项目和您的应用的一般最佳做法和一般安全指南。
关于环境
在软件开发中,环境是运行应用程序实例或应用程序系统所需的所有硬件和软件。
一系列环境为开发和测试软件提供了隔离,而不会影响用户。如下图所示,高级环境被认为是pre-production或production ,您可以根据需要拥有尽可能多的预生产环境。该图还描述了与每种环境类型相关的常见做法和功能。
通过这些环境将功能或发布推进到生产的过程称为部署管道。
环境类型
环境由运行和支持应用程序所需的底层基础设施、其代码和数据组成。展开以下每个术语以查看一些常见环境的描述,包括有关每种环境类型中使用的数据类型的提示。
每个开发人员都需要一个开发环境——一个安全、隔离的地方来测试正在构建的更改。理想情况下,您团队中的每个开发人员都可以访问自己的开发环境。此外,如果开发环境是本地实例,开发人员可以更快地迭代。
开发环境中的数据以通常类似于生产数据的数据为种子,但绝不应包含任何真实用户的数据。它还可能包含过去导致错误的数据,例如非常长的字符串。
如果您有自动化测试,则需要一个运行这些测试的环境,并且每次启动测试环境时都需要重置数据。
如果您有 QA 工程师,他们可能需要一个他们都使用的环境,或者他们可能需要单独的环境来测试新的候选版本。
测试和 QA 环境中的数据包含通常代表生产数据的质量数据,以及代表极端情况的数据和过去导致错误的数据示例。
对于发布在生产中如何工作的实际测试,您需要一个尽可能模仿生产基础设施的暂存环境。如果您需要单独测试特定的集成,通常会有多个暂存实例。
以下是 staging 和 prod 之间的常见区别:
暂存可能缺少一些可能导致副作用的功能或集成。例如,暂存可能设置为不发送电子邮件。
分期可能有匿名数据;数据可以是假的,但应该是真实的。因为登台是一个安全地调试问题的地方,所以您可以让团队更广泛地访问登台数据而不是生产数据。因此,为了保护用户隐私,您不应在 staging 中使用实际的用户数据。
对于您维护的每个应用程序,您都需要一个生产环境。这是您的用户与之交互的实例。
与您可以更改、删除和/或重新创建数据的其他环境不同,生产环境中的数据非常重要;丢失或更改您的产品数据将直接影响您的用户。
在 Firebase 控制台中,我们建议将与您的生产环境关联的 Firebase 项目标记为“生产”环境类型。此标签可以帮助提醒您和您的队友任何更改都可能影响您关联的生产应用程序及其数据。
下一步
查看我们设置 Firebase 项目的一般最佳做法。本指南回答有关 Firebase 项目层次结构、如何注册您的应用变体和多租户的问题。
查看不同环境的一般安全准则。您要确保每个环境及其数据都是安全的。