我的团队和我想为我们的网站实施 "Continuous Deployment" . 持续部署基本上意味着非常频繁地部署到 生产环境 (一天多次) . 据说Etsy一直这样做 .
我们的环境是Tomcat Nginx . 我们已经使用Hudson和热部署的Hudson Cargo插件对我们的快照服务器(即传统的持续集成)进行任何代码更改的持续部署 .
令人惊讶的是,它运行良好(虽然随着时间的推移,我们有时需要重启tomcat) .
对于 生产环境 而言,这是行不通的,因为我们无法关闭网站 . 我有一些想法,比如有两个网络应用程序和重定向,而一个是关闭 .
在真实的 生产环境 环境中,有人有任何想法或已经做过这个吗?
3 回答
来自http://radar.oreilly.com/2009/03/continuous-deployment-5-eas.html:
要有效地实现对 生产环境 的持续部署,您需要良好的监控,否则您将无法理解您的应用程序发生了什么 .
我不知道为什么你认为这是一个好主意,但这取决于你 .
我将使用具有两个热系统的 balancer 器应用程序,可以在tomcat本身中找到,然后在部署,部署和重新启动服务器之前停止服务器 . 为每个热服务器留一个两分钟的窗口,你应该很好 .
编辑:我不会部署EVERYTIME . 我们也是一家拥有大量QA(tm)的小公司,但在构建系统中仍然只需点击一下即可上线 .
为此,我们使用apache httpd 2.2和mod_proxy
然后我们运行了2个tomcats,一个在端口8080上,另一个在端口88上 . 防火墙阻止外部访问这些端口,因此只有端口80打开
Apache HTTPd配置为侦听端口80
配置也很简单 . 这是一个开箱即用的基本配置(httpd.conf):
“H”表示它仅用作备份服务器,因此当8080无法访问时,它将在88上运行,直到8080重新联机