我想知道社区对于我在为我们的团队设置沙盒环境时遇到的问题最有什么建议。
目前,我们分别为我们的测试和部署环境使用两个独立的 MongoDB 实例,都是 3 个成员副本集。内部几乎可以理解,测试环境中的所有数据在很大程度上都是一次性的,并且只是由开发人员在对应用程序进行单元测试的过程中创建的。
我想为开发团队提供使用真实实时数据进行测试的新选项,但要在单独的安全沙箱实例中进行。起初,我最初认为我可以使用该copyDatabase
命令每晚将数据复制到一个新数据库中,并将各个开发人员应用程序服务器连接到该数据库。问题是系统中有大量的 GridFS 数据,像这样复制会浪费大量的磁盘 i/o,而且我们在较小的云实例中运行。
我对走这条路持谨慎态度,特别是如果有更合适的选择。
例如,是否有可能设置部署副本集的第四个成员,该成员仅作为从属节点运行,将所有查询设置为slaveOkay = True
并针对该单个节点运行测试?这会传播回其他成员吗?如何处理插入?
我的建议可能是不切实际的,特别是如果传输必须跨越网络,这也会浪费网络传输。有没有人必须解决类似的问题?谢谢!