我正在研究一个运行在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