用于移动应用程序开发的云数据库中 Production/Dev/Test 数据的单独架构
Separate schema for Production/Dev/Test data in cloud database for mobile app development
我们有 Android 和 iOS 应用程序将数据发送到云中的数据库 (AWS)。应用程序功能齐全,但我们的客户不喜欢我们将客户数据和测试(QA、Dev、Staging)时生成的数据存储到云中的相同表中。
我们的应用程序将数据发送到 REST 端点(即 AWS 中的 API 网关),后者将此数据传递给 Java 代码,然后此 java 代码将数据写入云中的数据库。
我们希望将最终用户、开发人员、测试人员、alpha 用户生成的数据存储到单独的 tables/schema 云中,以便相应地隔离数据(例如:开发人员可能每周清理所有表,而 QA 可能会在每次发布后清理所有表;而生产数据会每月存档等)。
在传统的桌面应用程序中,我们可以为 dev、qa、prod 环境使用相同表的不同模式,应用程序将根据一些本地配置参数写入适当的模式。
我如何才能为任何 Android 和 iOS 应用程序实现相同的效果,我将在其中将开发、质量检查和产品数据存储到不同的架构中(QA 我的意思是当 iOS 应用程序在 testflight 中或 android 应用程序在 alpha/beta 频道中;dev 我是指开发人员进行开发测试时;prod 我是指最终用户从应用商店或 play 商店下载应用程序的时间)
我查看了 CI 讨论
Ideal dev/test/QA environment for development,但我的问题不是关于开发环境;这是关于数据隔离的。
欢迎任何讨论或意见。
我们 运行 与我工作的地方类似,我认为最好的方法是完全隔离数据。如果您开始通过数据库标志或角色或其他任何方式将数据混合在一起,那么您将很难处理生产数据。
为了克服这个问题,我强烈建议使用完全独立的环境。我们为每个环境(开发、暂存和生产)提供了完全独立的 AWS 账户。
对于我们的移动应用程序,我们会为我们正在测试的每个环境构建一个版本。因此,对于开发,我们将有一个开发配置文件,其中包含所有 API URL、帐号等,以控制请求和数据发送到的位置。
根据您使用 TestFlight 和 Google Play Beta/Alpha 的方式,您可以做同样的事情。只需为每个环境做一个新的构建。您将 运行 遇到的问题是您的工作流程是否要将这些构建推广到生产环境。它们需要使用生产配置构建。
我们有 Android 和 iOS 应用程序将数据发送到云中的数据库 (AWS)。应用程序功能齐全,但我们的客户不喜欢我们将客户数据和测试(QA、Dev、Staging)时生成的数据存储到云中的相同表中。
我们的应用程序将数据发送到 REST 端点(即 AWS 中的 API 网关),后者将此数据传递给 Java 代码,然后此 java 代码将数据写入云中的数据库。
我们希望将最终用户、开发人员、测试人员、alpha 用户生成的数据存储到单独的 tables/schema 云中,以便相应地隔离数据(例如:开发人员可能每周清理所有表,而 QA 可能会在每次发布后清理所有表;而生产数据会每月存档等)。
在传统的桌面应用程序中,我们可以为 dev、qa、prod 环境使用相同表的不同模式,应用程序将根据一些本地配置参数写入适当的模式。
我如何才能为任何 Android 和 iOS 应用程序实现相同的效果,我将在其中将开发、质量检查和产品数据存储到不同的架构中(QA 我的意思是当 iOS 应用程序在 testflight 中或 android 应用程序在 alpha/beta 频道中;dev 我是指开发人员进行开发测试时;prod 我是指最终用户从应用商店或 play 商店下载应用程序的时间)
我查看了 CI 讨论 Ideal dev/test/QA environment for development,但我的问题不是关于开发环境;这是关于数据隔离的。
欢迎任何讨论或意见。
我们 运行 与我工作的地方类似,我认为最好的方法是完全隔离数据。如果您开始通过数据库标志或角色或其他任何方式将数据混合在一起,那么您将很难处理生产数据。
为了克服这个问题,我强烈建议使用完全独立的环境。我们为每个环境(开发、暂存和生产)提供了完全独立的 AWS 账户。
对于我们的移动应用程序,我们会为我们正在测试的每个环境构建一个版本。因此,对于开发,我们将有一个开发配置文件,其中包含所有 API URL、帐号等,以控制请求和数据发送到的位置。
根据您使用 TestFlight 和 Google Play Beta/Alpha 的方式,您可以做同样的事情。只需为每个环境做一个新的构建。您将 运行 遇到的问题是您的工作流程是否要将这些构建推广到生产环境。它们需要使用生产配置构建。