【发布时间】:2008-11-07 17:15:23
【问题描述】:
假设:实时/生产网络应用程序抑制向最终用户显示错误。
假设您的技术支持团队希望通过应用程序的开发端查看实时数据(也许您希望查看发生了什么错误,或者希望查看何时使用最终用户的数据)。
现在我们有一个数据库同时为 dev 和 live box 提供服务(不是我的想法 - 我知道这很糟糕)。
想法?
编辑:实施您的建议的最佳/方便的工具?
【问题讨论】:
标签: database production
假设:实时/生产网络应用程序抑制向最终用户显示错误。
假设您的技术支持团队希望通过应用程序的开发端查看实时数据(也许您希望查看发生了什么错误,或者希望查看何时使用最终用户的数据)。
现在我们有一个数据库同时为 dev 和 live box 提供服务(不是我的想法 - 我知道这很糟糕)。
想法?
编辑:实施您的建议的最佳/方便的工具?
【问题讨论】:
标签: database production
我们将数据复制回另一个数据库。是的,有延迟,但它使人们无法接触生产服务器。这也使我们能够“隐藏”技术支持(以及其他相关人员)不应该看到的信息。
【讨论】:
除了向下复制数据外,在生产中,我们还会查看谁登录了应用程序,如果是公司成员,则将他们发送到真正的错误页面,而不是快乐的小猫在玩毛线球道歉。
【讨论】:
定期(每天一次,两次)从实时备份和恢复到开发。它不需要是实时的(因为无论如何您都可能从开发端输入数据,这可能会导致问题)。
如果您有 PCI 或 HIPAA 数据,请确保不要将其放入您的开发环境中——这可能会违反法律。
【讨论】:
我一般喜欢使用 3 层系统进行 Web 开发:
发展
测试
直播
大多数时候测试是实时系统的精确副本,除了打开错误,当一个新版本即将上线时,它会被替换为新版本 BEFORE live is,以检测升级问题。
开发与实时完全分开,允许对数据库等内容进行重大更改,或对生产环境进行更改。
【讨论】:
我首先会通过电子邮件将错误发送给某人,其中包含用户如何到达那里的详细信息,或者至少记录下来,这样您就可以在执行类似操作时查看错误日志,看看您是否在日志中收到相同的消息。
是的,在开发服务器/站点上复制数据库可能是您唯一的选择。您不希望开发团队对实时数据进行任何更改,而且您可能还会有一些更改在某些时候不适用于生产数据库。
我不建议每晚进行一次复制,因为开发人员可能正在使用一些新功能,他们在其中添加了数据,然后当晚将其删除。每次发布主要版本时,我通常都会将生产数据库复制到 dev。这也让我可以使用大量实时数据进行速度测试。在某些系统上,我还将每个人的密码更改为默认密码,以便我可以以任何用户身份轻松登录。
【讨论】:
如果您的配置允许:
一个。添加日志功能(如果还没有的话)将感兴趣的消息写入日志文件。
b.运行unix命令
tail -f 这会将不断增长的日志文件流式传输到您的控制台。 http://www.monkey.org/cgi-bin/man2html?tail 如果你有 Windows,你可以试试这个:
【讨论】: