我目前正在与另一位开发人员在集中式开发服务器上进行Web开发。过去这一切都行得通,因为我们有两个独立的项目,我们正在努力并且很少发生冲突。但是,现在我们正在添加第三个(可能的)开发人员。这显然会影响其他开发人员对我的工作产生影响的问题,反之亦然。为了解决这个问题,我认为最好的解决方案是创建一个虚拟机在开发者之间分发以供本地使用。我遇到的问题是涉及到数据库。如何创建安全的本地开发环境?
鉴于我们都在笔记本电脑上开发,只需保留实时数据的本地副本就显得很愚蠢。
我已经考虑清理数据,但我无法真正弄清楚如何替换真实的数据,用数据代表人们实际输入的内容,而不是一遍又一遍地重复相同的信息。每个人的地址变成123测试巷,测试镇,西澳大利亚州,99999什么的。这真的值得关注吗?有没有工具可以帮助解决这类问题?我正在使用MySQL。理想情况下,如果我清理数据库,它应该从我可以定期运行的脚本完成。如果我这样做,我还需要一种方法来减小数据库本身的大小。 (我想我可以选择所有在x后创建的记录,并将它们和相应的表中的所有记录删除,这样并不是什么大问题。)
我想过的第二种解决方案是加密vm的硬盘驱动器,但我不确定这在速度方面是多么的实用,以及在丢失/被盗的笔记本电脑的情况下。如果我这样做,虚拟硬盘驱动器文件本身应该加密还是应该在虚拟机中加密? (我假设后者是可移植的,并且不需要开发者在他们选择的操作系统上具有任何类型的加密能力。)
第三个是为每个开发人员创建数据库的副本在我们的开发服务器上,他们随后负责通过迁移脚本或您有什么方式使架构与规范数据库保持同步。这个解决方案似乎是最简单的,但并不是随着更多开发人员的增加而扩展。
你如何处理这个问题?
我不是特别熟悉的工具,但+1“请不要在开发环境中使用真实的数据”!您可能无法预见这有多重要,但*投入时间寻找生成假数据的方法! – 2010-06-07 18:47:12
过去我经常听到这种说法,也许我只是笨手笨脚,但我没有看到使用真实数据的问题。仅仅是因为它被盗的可能性?如果你曾经为一家软件公司工作,我可以看到使用真实数据是一个问题。您不想从您的某个客户导入数据库。如果您想让开发人员与实时服务器分离,出于某种原因,我也会遇到问题。还有别的事吗?我在这里错过了什么? – baudtack 2010-06-07 20:26:09
@docgnome - 贵公司是否有隐私政策?如果是这样,那么对于客户数据的使用和保护方式有何评论?如果数据是公司内部的,那么您的人力资源政策对这些数据有何看法?如果您使用的是实际数据,则至少必须具有与生产实例中的数据相同的保护级别。坦率地说,我发现这对开发箱来说太具侵入性了。丢失数据的风险(如果数据非常敏感,可能是您的工作 - 是的,电话号码很敏感)不值得为开发生成假数据。 – tvanfosson 2010-06-07 21:01:32