首页 文章

Java / JVM Web应用程序的持续部署

提问于
浏览
4

我的团队和我想为我们的网站实施 "Continuous Deployment" . 持续部署基本上意味着非常频繁地部署到 生产环境 (一天多次) . 据说Etsy一直这样做 .

我们的环境是Tomcat Nginx . 我们已经使用Hudson和热部署的Hudson Cargo插件对我们的快照服务器(即传统的持续集成)进行任何代码更改的持续部署 .

令人惊讶的是,它运行良好(虽然随着时间的推移,我们有时需要重启tomcat) .

对于 生产环境 而言,这是行不通的,因为我们无法关闭网站 . 我有一些想法,比如有两个网络应用程序和重定向,而一个是关闭 .

在真实的 生产环境 环境中,有人有任何想法或已经做过这个吗?

3 回答

  • 0

    来自http://radar.oreilly.com/2009/03/continuous-deployment-5-eas.html

    实时警报 . 无论您的部署过程有多好,错误仍然可以通过 . 最烦人的变种是在部署导致它们的代码之后几小时或几天才会出现的错误 . 为了捕获那些令人讨厌的错误,你需要一个监控平台,它可以让你知道什么时候出错了,让一个人参与调试它们 .

    要有效地实现对 生产环境 的持续部署,您需要良好的监控,否则您将无法理解您的应用程序发生了什么 .

  • 2

    我不知道为什么你认为这是一个好主意,但这取决于你 .

    我将使用具有两个热系统的 balancer 器应用程序,可以在tomcat本身中找到,然后在部署,部署和重新启动服务器之前停止服务器 . 为每个热服务器留一个两分钟的窗口,你应该很好 .

    编辑:我不会部署EVERYTIME . 我们也是一家拥有大量QA(tm)的小公司,但在构建系统中仍然只需点击一下即可上线 .

  • 0

    为此,我们使用apache httpd 2.2和mod_proxy

    然后我们运行了2个tomcats,一个在端口8080上,另一个在端口88上 . 防火墙阻止外部访问这些端口,因此只有端口80打开

    Apache HTTPd配置为侦听端口80

    配置也很简单 . 这是一个开箱即用的基本配置(httpd.conf):

    LoadModule proxy_module modules/mod_proxy.so
     LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
     LoadModule proxy_http_module modules/mod_proxy_http.so
     <Proxy balancer://mycluster>
        BalancerMember http://localhost:8080
        BalancerMember http://localhost:88 status=+H
     </Proxy>
     ProxyPass / balancer://mycluster/
     ProxyPassReverse / balancer://mycluster/
    

    “H”表示它仅用作备份服务器,因此当8080无法访问时,它将在88上运行,直到8080重新联机

相关问题