Amazon-Beanstalk
我的沙盒伺服器是否/應該與我的生產伺服器完全一樣?
我對雲託管有點陌生。對於我迄今為止所做的小型項目,我習慣於擁有一台沙盒/測試伺服器和一台生產伺服器,僅此而已。現在我正在開發一些可能會承受更大壓力的東西,我想試試亞馬遜的 Elastic Beanstalk。
到目前為止,我一直在 Ubuntu 機器上開發 PHP 應用程序。然而,Amazon 的 Elastic Beanstalk 的 AMI 都是“Amazon Linux”。我可以繼續在我的 Ubuntu 機器上開發,還是應該切換到 Amazon Linux 作為我的測試環境?
你問的是兩個不同的問題。
我的開發伺服器是否需要與我的生產伺服器完全一樣?
不
,您可以根據需要進行任何開發,然後將該程式碼部署到您想要的任何生產環境中。
我的開發伺服器應該和我的生產伺服器完全一樣嗎?
是的。- 它讓生活更輕鬆。
如果您的開發和生產環境不同,您最終將擁有“它可以在我的機器上執行”的開發者時刻,其中一些開發者(甚至可能是您)在開發機器上編寫(並希望廣泛測試)一些程式碼,然後將其部署到生產中並且它嚴重損壞(缺少/不匹配的庫版本、不同的解釋器、兩個系統之間的包差異、二進製文件不在應用程序期望的位置等)。
這意味著您將花費數小時(可能是數天)重寫部分程式碼,以處理生產與您開發的機器不同的事實。然後有一天,您將處於發布緊縮狀態,並且黑客開始滑入–
if (is_production) { A } else { B }
稍後有人會看到並認為這是可以接受的。您的程式碼很快就會變成無法維護的混亂,而您唯一的選擇是Seppuku。
底線?
讓自己免於痛苦、痛苦和開膛破肚的儀式,並嘗試在您最終將部署到的同一平台上進行開發和測試。