我正在研究一個運行在LAMP棧(Linux Apache Mysql PHP)上的Web應用程序,並希望改進我的工作流程。我該如何改進我的開發和部署策略?
我有3個環境:
- 我的本地機器AKA我發展環境
- 一個分期帳戶我的專用服務器上,這樣我就可以測試Web應用程序
- 一個生產我的專用服務器上的帳戶
我在本地計算機上進行所有開發,並使用位於專用服務器上的Subversion服務器。我設置了一個鉤子腳本,以便每當我提交時,我的「登臺」帳戶就會使用新代碼進行更新。
偶爾我會確保暫存帳戶中的一切正常,並通過小腳本將更改推送到我的生產帳戶。
此作品不夠好,在大多數情況下,但有幾個刺激的:
我的域名是硬編碼在幾個地方,使其費時環境之間進行切換。我可以手動修改我的主機文件,但它不是很快,它不適用於同一臺服務器上的2個帳戶(prod/staging)。
我沒有辦法在所有三種環境中保持數據庫的最新狀態。我可以在所有環境中使用相同的數據庫,但我必須冒險破壞生產環境。
所以,我的問題是:我能做些什麼來緩解這些問題?
更新:硬編碼的域問題是由第三方軟件引入的,因此,「不硬編碼」目前不是一種選擇。
Olivier:我編輯了你的問題,試圖使它更具體。 SO不是一個論壇,對於「對此有何評論」往往效果不佳?問題;我認爲你做識別您的最後一個段落的具體問題的一個好工作,所以試圖強調那些(也改變標題的注意力從對軼事招攬) – Shog9 2010-01-02 19:49:09
誰能PLZ告訴我什麼是一般的慣例和意義與dev,stg和prod相關聯。似乎我對他們的意思感到困惑(或者我似乎一直在使用與其他人不同步的慣例/語義)。由於 – 2010-01-02 20:05:56
我相信這是通常的慣例: 開發:開發商 分段環境:公共環境的建議Darell – 2010-01-02 22:47:45