我们有专门的DEV、TEST、STAGE和PRODUCTION服务器。
我们还有一台专用的构建机器,运行Cruise Control。
Cruise Control 配置了连续集成构建,代码检入后会运行。它也配置了独立的开发、QA、Stage和Production任务。
要部署到开发环境,必须首先从 SVN 检索代码并进行构建,然后将“Precompiled Web”文件夹复制到开发网站,并将 web 服务项目复制到开发应用程序服务器。此外,Cruise Control 还配置了在构建开始前为源代码打“标签”,这样我们就可以在以后重新生成构建,或者从标签分支进行热修复。
要部署到QA环境,需要从开发机器复制文件到 QA 机器。
同样,要部署到 Stage 环境,需要从 QA 机器复制文件到 Stage 机器。
最后,要部署到生产环境,则需要再次从 Stage 机器复制文件到 Production 机器。
为了配置每个环境,我们有一个定制工具,它是每个环境 Cruise Control 任务的一部分,用于修改连接字符串,“debug=true|false”,“customErrors=Off|RemoteOnly”和其他特定于环境的设置。
因此,每个环境都可以通过 Cruise Control 仪表板上的按钮轻松部署。
其中一条限制是,我们当前在 Cruise Control 配置文件中配置了生产数据库密码,将其移动到其他地方会更好!
最后,请注意,即使我们的生产机器在专用托管设施中,但这些服务器仍可从我们的 Cruise Control 机器访问,因此非常容易进行生产部署。唯一需要手动执行的步骤是加密 web.config 文件并删除 Cruise Control 放置的“AppOffline.html”文件。
如果这有帮助或您有任何问题,请告诉我。
谢谢!