Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/npm/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 将测试和生产环境放在同一台机器上是否不好?_Language Agnostic_Development Environment - Fatal编程技术网

Language agnostic 将测试和生产环境放在同一台机器上是否不好?

Language agnostic 将测试和生产环境放在同一台机器上是否不好?,language-agnostic,development-environment,Language Agnostic,Development Environment,把东西设置成MySite.com是生产,而test.MySite.com是测试,这样会不好吗?两个都在同一台机器上运行。该网站的流量不大 更新 我说的是在Windows服务器上运行的ASP.NET web应用程序。是的,这是个坏主意 假设您的测试代码有一个bug,它会消耗所有内存/cpu/磁盘空间?然后,您的生产站点将关闭 有单独的机器进行生产和测试,并使用DNS将URL指向每个机器 编辑(更多点): 如果站点共享一台机器,那么它们共享一个IP地址,因此当使用IP地址访问站点时,您将不知道您是

把东西设置成
MySite.com
是生产,而
test.MySite.com
是测试,这样会不好吗?两个都在同一台机器上运行。该网站的流量不大

更新

我说的是在Windows服务器上运行的ASP.NET web应用程序。

是的,这是个坏主意

假设您的测试代码有一个bug,它会消耗所有内存/cpu/磁盘空间?然后,您的生产站点将关闭

有单独的机器进行生产和测试,并使用DNS将URL指向每个机器


编辑(更多点):

如果站点共享一台机器,那么它们共享一个IP地址,因此当使用IP地址访问站点时,您将不知道您是在生产还是在测试中

共享同一台机器时,部署可能会很棘手,您必须格外小心,不要将未经测试的代码部署到生产环境中(因为两者都位于同一台机器上,所以更容易实现)


生产和测试的安全注意事项应该是分开的-这种设置使其更加困难。

这是一个坏主意。当您有一个未经测试的新功能时,它可能会杀死生产站点。

是否符合任何类型的标准是一个问题?通常,您希望开发人员能够大量访问测试环境,以便他们能够解决问题。然而,对于开发人员来说,拥有相同级别的生产系统访问权并不总是一个好主意(甚至是不允许的)。

在同一台机器上测试和生产环境是否会更新(新版本的php/perl/python/apache/内核/任何东西)。

理论上,是的。在开发时,有很多事情可能会出错,比如@Oded提到的。通过让一个专用的Web服务器运行您的主站点,您可以避免重复数据库、虚拟主机等的复杂性。不过,您当然可以使
test.mysite.com
公开

作为一名客户,我经常做的第一件事就是访问一家公司的网站。如果网站无法访问,即使是短暂的访问,它看起来也不专业,我很快就会失去兴趣。你不想因为太便宜而失去生意,因为你买不到一台额外的电脑


编辑:我从您上面的评论中看到,这确实是一台业务服务器。回答已更新。

由于您的问题不是特定于平台的,我将尝试以一般形式回答。我只会提到你问题中的“同一台机器”部分,因为“域名”应该很容易更改。。。如果已采取所有常见预防措施

您真正需要的是隔离环境。根据所使用的技术,这可能意味着“单独的机器”或不是

例如,世界上许多中小型银行在一台主机上运行其关键系统。这些野兽中的一个花费(外围设备和所有设备)六位数并不罕见。其中一些选择使用单独的、较小的机器进行开发和测试,而另一些选择在同一台机器上运行数百个环境(有时作为VM)。棘手的细节是,大型机硬件和操作系统确实在这些环境之间提供了真正和一致的隔离,根据严格的策略分配磁盘、CPU、通信通道、凭据、库、操作系统模块、数据库等,这些策略可以是您想要的粒度

许多其他平台的问题在于,找到隔离环境的方法取决于您,而在恐龙平台中,则是由HAL提供的

“好的,坏的,我是拿枪的人。”-阿什

坏的真的是一个范围。它可以在插入电源更换主板和湿手之间的任何地方,也可以在使用过短的变量名之间。你真正想知道的是什么是权衡。您显然知道其中的一些好处,否则就不会考虑使用生产服务器进行测试

最大的缺点是测试代码与生产环境一起在共享的环境中运行。如果没有沙箱(进程限制、内存限制、磁盘限制、chroot文件系统等),那么您可能会影响生产服务器,因为测试中出现了一些错误。你可能会不经意地消耗掉所有的特定资源。您可能会意外删除生产站点。有人可能认为做负载测试是可以的。如果您愿意承担这些风险,那么您可以继续在生产服务器上运行测试应用程序


顺便说一句:这很糟糕。

好的观点。还有吗?我正试图为我的老板准备一份潜在陷阱的清单。目前不是,但我正试图改变这一点。现在这是一个免费的。Dev box直接用于生产。我们需要遵守什么样的标准?@Abe Miessler:不同行业有各种鲜为人知的标准,还有一些大标准。例如,如果您曾经获取信用卡信息,那么PCI合规性就变得非常重要对于一家处于这种情况的公司,我的朋友Max曾经说过,“问题不在于他们没有测试系统——他们没有的是一个生产系统!”+1我要偷这句话。