设置内容以使MySite.com
生产且test.MySite.com
是否正在测试是不是很糟糕?两个都跑掉了同一台机器。该网站没有获得大量流量。
更新
我说的是在Windows服务器上运行的ASP.NET Web应用程序。
答案 0 :(得分:12)
是的,这是一个坏主意。
假设您的测试代码有一个消耗所有内存/ CPU /磁盘空间的错误?然后你的生产网站就会崩溃。
使用单独的计算机进行生产和测试,并使用DNS将URL指向每个计算机。
编辑(更多要点):
如果网站共享一台计算机,它们共享一个IP地址,那么当使用IP地址访问网站时,您将不知道您是在进行生产还是测试。
共享同一台计算机时,部署可能会非常棘手,您必须格外小心,不要将未经测试的代码部署到生产环境中(更容易实现,因为两者都位于同一台计算机上)。
生产和测试的安全考虑应该是分开的 - 这种设置使其更加困难。
答案 1 :(得分:5)
在同一台机器上测试和生产是否真的很难测试环境更新(新版本的php / perl / python / apache / kernel /等)。
答案 2 :(得分:1)
这是一个坏主意。当您有一个新的未经测试的功能时,它可能会杀死生产站点。
答案 3 :(得分:1)
是否符合任何标准的问题?通常,您希望开发人员拥有对测试环境的大量访问权限,以便他们可以解决问题。但是,开发人员对生产系统具有相同级别的访问权限并不总是一个好主意(甚至是允许的)。
答案 4 :(得分:1)
理论上,是的。在开发时,有很多东西可能会出错,就像@Oded提到的那样。通过使用专用的Web服务器运行您的主站点,您可以避免复制数据库,虚拟主机等的复杂性。但您当然可以公开test.mysite.com
。
作为客户,我经常做的第一件事就是访问公司的网站。如果该网站无法访问,即使是短暂的,它看起来不专业,我很快就会失去兴趣。你不想失去生意因为你太便宜而无法购买一台额外的电脑!
编辑:我从上面的评论中看到,这确实是一个商业服务器。答案已更新。
答案 5 :(得分:0)
由于您的问题不是特定于平台的,我会尝试以一般形式回答。我只会提到你问题的“同一台机器”部分,因为“域名”应该很容易改变......如果采取了所有常见的预防措施。
您真正需要的是隔离环境。根据所使用的技术,这可能意味着“单独的机器”。
例如,世界上很多中小型银行在一台大型机上运行其关键系统。这些野兽中的一个花费(外围设备和所有)六个数字并不罕见。他们中的一些人选择使用单独的小型机器进行开发和测试,而其他人则在同一台机器上运行数百个环境(有时作为VM)。棘手的细节是大型机硬件和操作系统确实在这些环境之间提供真实和一致的隔离,根据严格的策略分配磁盘,CPU,通信通道,凭证,库,操作系统模块,数据库等等如你所愿。
许多其他平台的问题在于找到隔离环境的方法取决于您,而在恐龙平台中则由HAL的优雅提供。
HTH!
答案 6 :(得分:0)
“好,不好,我是带枪的人。” - Ash
糟糕的确是一个范围。它可以是在插入电源和湿手的主板之间的任何地方,使用过短的变量名称。你真正想知道的是什么是权衡。您显然知道一些好处,或者您不会考虑使用生产服务器进行测试。
最大的问题是测试代码是在带有生产的共享环境中运行的。如果没有沙箱(进程限制,内存限制,磁盘限制,chroot文件系统等),那么您在测试中会遇到影响生产服务器的风险。您可能会通过消耗所有特定资源而意外地自我管理。您可能会意外删除生产站点。有人可能认为进行负载测试是可以的。如果你没有承担这些风险,那么你可以继续在生产服务器上运行你的测试应用程序。
顺便说一句:这很糟糕。