我的沙箱服务器是否需要与我的生产服务器完全相同?

我是一个新的云主机。 对于我迄今所做的小型项目,我习惯于拥有一台沙箱/testing服务器和一台生产服务器,就是这样。 现在我正在开发一些可能会受到更多压力的东西,我想试试Amazon的Elastic Beanstalk。

我到目前为止一直在Ubuntu机器上开发PHP应用程序。 然而,亚马逊的Elastic Beanstalk的AMI都是“亚马逊Linux”。 我可以继续在我的Ubuntu机器上进行开发,还是应该在我的testing环境中切换到Amazon Linux?

你问了两个不同的问题。

我的开发人员服务器是否需要完全像我的生产服务器?

没有。
您可以根据自己的需求进行开发,然后将该代码部署到您想要的任何生产环境中。


我的开发服务器应该完全像我的生产服务器?

是。 – 它使生活更加容易

如果你的开发和生产环境不同,你最终会得到“它在我的机器上运行 ”的开发者时刻,一些开发者(甚至是你)在开发机器上写了一些代码(希望广泛地testing),然后将其部署到生产环境中(可能会丢失/不匹配的库版本,不同的解释器,两个系统之间的软件包差异,不在应用程序预期的二进制文件等等)。

这意味着您将花费几个小时(也许是几天)重新编写代码的一部分来处理生产不像您开发的机器的事实。 然后有一天,你将会处于一个释放紧缩状态,并且if (is_production) { A } else { B }开始滑入,稍后有人会看到并认为这是可以接受的。

你的代码很快就会变成一个难以维系的混乱,你唯一的select就是Seppuku 。


底线?

把自己的痛苦,痛苦和仪式解放出来,并尝试在最终要部署到的平台上开发和testing。