我对云托管还不太熟悉。对于我迄今为止完成的小型项目,我习惯于使用一台沙盒/测试服务器和一台生产服务器,仅此而已。现在我正在开发一些可能会承受更大压力的东西,我想尝试一下亚马逊的 Elastic Beanstalk。
到目前为止,我一直在 Ubuntu 机器上开发 PHP 应用程序。但是,Amazon 的 Elastic Beanstalk 的 AMI 都是“Amazon Linux”。我可以继续在 Ubuntu 机器上进行开发吗?还是我也应该将我的测试环境切换到 Amazon Linux?
答案1
你问的是两个不同的问题。
我的开发服务器需要与生产服务器完全一样吗?
不。
您可以根据自己的需要进行开发,然后将代码部署到您想要的任何生产环境中。
应该我的开发服务器与我的生产服务器完全一样吗?
是的。- 它使生活变得更加轻松。
如果你的开发和生产环境不同,你最终会得到“它适用于我的机器“开发人员时刻,一些开发人员(甚至可能是你)在开发机器上编写(并希望进行广泛的测试)一些代码,然后将其部署到生产中并且它出现严重故障(缺少/不匹配的库版本、不同的解释器、两个系统之间的软件包差异、二进制文件不在应用程序期望的位置等)。
这意味着您将花费数小时(甚至数天)重新编写部分代码,以应对生产环境与您开发机器不同的情况。然后有一天,您将面临发布危机,黑客开始悄悄溜进来 -if (is_production) { A } else { B }
而后来有人会看到这一点并认为这是可以接受的。
你的代码很快就会陷入难以维护的混乱,你唯一的选择就是切腹。
底线?
避免痛苦、折磨和仪式性的开膛破肚,尝试在最终要部署到的同一平台上进行开发和测试。