用于移动应用程序开发的云数据库中的生产/开发/测试数据的单独模式

时间:2018-04-04 00:33:34

标签: android ios amazon-web-services aws-lambda amazon-rds-aurora

我们有Android和iOS应用程序将数据发送到云端数据库(AWS)。应用程序功能齐全,但我们的客户并不喜欢我们将客户数据和测试时生成的数据(QA,Dev,Staging)存储到云中的相同表格中。

我们的应用程序将数据发送到REST端点(即AWS中的API网关),该端点将此数据传递给Java代码,此Java代码将数据写入云中的数据库。

我们希望将最终用户,开发人员,测试人员,alpha用户生成的数据存储到云中的单独表/架构中,以便相应地隔离数据(例如:开发人员可以每周清理所有表,而QA可能会每次发布后清理所有表格;生产数据每月存档等。)

在传统的桌面应用程序中,我们可以为dev,qa,prod环境创建相同表的不同模式,应用程序将根据某些本地配置参数写入适当的模式。

如何在任何Android和iOS应用程序中实现相同的效果,我将dev,qa和prod数据存储到不同的架构中(QA我的意思是当iOS应用程序处于testflight或Android应用程序处于alpha / beta频道时; dev我的意思是当开发人员进行开发测试时; prod我的意思是当最终用户从app store或Play商店下载应用程序时)

我回顾了CI讨论 Ideal dev/test/QA environment for development,但我的问题不是关于发展环境;它是关于数据隔离的。

任何讨论或意见都表示赞赏。

1 个答案:

答案 0 :(得分:2)

在我工作的地方运行类似的东西,在我看来,最好的方法是完成数据的隔离。如果您开始通过数据库标记或角色或其他任何方式将数据混合在一起,那么您将很难搞乱生产数据。

为了克服这个问题,我强烈推荐完全独立的环境。我们为每个环境(开发,登台和生产)提供完全独立的AWS账户。

对于我们的移动应用,我们会针对我们正在测试的每个环境进行构建。因此,对于开发,我们将有一个开发配置文件,其中包含所有API URL,帐号等,以控制请求和数据的发送位置。

根据您使用TestFlight和Google Play Beta / Alpha的方式,您可以执行相同的操作。只需为每个环境做一个新的构建。您将遇到的问题是,您的工作流程是将这些构建升级到生产。它们需要用生产配置来构建。