Deployment Web应用程序:从开发到生产
以下是我公司将更改从开发服务器移动到生产服务器的当前流程:Deployment Web应用程序:从开发到生产,deployment,build,Deployment,Build,以下是我公司将更改从开发服务器移动到生产服务器的当前流程: 需要更新的文件将从生产中删除,以确保仅在生产中未进行任何更改(不,不应该发生;但确实发生了)。旧的开发文件被赋予~前缀作为一种“备份” 开发人员进行必要的更改 开发中的更新文件将从该服务器复制并粘贴到生产服务器上的相应位置。旧的生产文件被赋予~前缀作为一种“备份” 我知道这是一种可怕的做事方式,但最好的方式是什么?我最初的想法是将我们所有的代码都转移到subversion中。然后,当某些内容需要更新时,在开发中进行更改,提交到存储库,然
编辑:为了开发我们的Java EE应用程序,每个开发人员的机器上都运行Glassfish v2。对于PHP/ASP,我们有一个中央开发服务器。对于生产,我们有一个用于PHP/ASP(IIS)的服务器,另一个用于Java(Glassfish v2)。您说得对,使用源代码管理(subversion、git、mercurial等)将使您的生活更加轻松 以下是更改生产环境时需要采取的基本步骤:
是的……确实需要某种源代码控制。就我个人而言,我喜欢SVN,觉得它很容易安装
在深入研究之前,我会仔细考虑一下您的部署策略应该如何工作。您希望如何处理并行开发?您是否想要/需要部署到的QA或用户测试环境?与小组其他成员一起坐下来,列出用例列表等,以确保您在同一页上,您的策略合适,并且您都支持解决方案。我认为您的思路是正确的。获得源代码控制、subversion或其他功能至关重要。然后使用诸如CruiseControl之类的某种持续集成来管理直接部署或部署包的创建。并且尽你所能确保在生产过程中不发生任何变化,这真的会影响整个过程。正如你所说,subversion可能会有所帮助,在你的情况下:使用一些版本控制系统是非常好的,subversion工作得很好,而且你可能不需要任何去中心化的系统(如git/mercurial/…) 其主要优点是:
- 更容易分享团队中每个开发人员所做的修改
- 一个中心位置,“是源文件的官方版本”
- 可能更容易部署
尽管如此,我不会在我的生产服务器上使用svn签出:好的,在某些情况下它可以很好地工作,但是,特别是如果您有时直接在生产服务器上修改文件(这是您绝对不应该做的!),总有一天您会在生产服务器上遇到问题(比如冲突) 是的,您可以在干运行中使用svn merge,但这并不总是足够的……而且svn更新也没有干运行——PHP文件中的冲突通常意味着解析错误;当它发生在生产服务器上时,这是不好的^^ 相反,我会:
- 正常工作,可以时向SVN提交
- 偶尔(例如,部署到生产环境的前一天),执行svn导出并将提取的应用程序部署到临时服务器
- 这意味着您可以在比开发平台更接近生产环境的环境中进行测试
- 而且还意味着,没有在登台环境上进行测试,任何东西都不应该直接投入生产
- 如果暂存服务器上的一切正常,则将相同的包部署到生产服务器
哦,顺便说一句,关于部署过程,您可能会对我不久前给出的关于这个问题的答案感兴趣:
作为旁注:开始使用这种过程并不总是容易的,因此:
- 在开始之前,尽可能多地思考;发布SO是一个良好的开端,但不要忘记与您的同事讨论,他们将使用该系统
- 慢慢来:可能不急,几天的思考总是有用的;-)
- i、 e.考虑您可能遇到的情况和您的用例,以确保您将要实施的流程对您有效