适用于多个 Java Web 应用的自动化部署解决方案什么是胶水?

我正在寻找解决方案,最好是开源的,可以管理多个相互依赖的java Web应用程序的部署。

该解决方案需要能够创建和存储包含多个发布项的发布规范 - 每个应用程序的特定版本和相关的其他工件(数据库配置,apache配置等)。

然后需要解析规范,然后需要在目标环境中部署/执行每个项目。目标环境是基于 Linux 的。Web应用程序是在j2ee标准应用程序服务器上运行的普通战争。

有很多问题要问?

目前我认为所有位都已到位 - 二进制工件与maven发布插件一起发布,因此可以从我们的maven存储库进行部署,数据库使用dbdeploy进行版本控制,apache配置svn中进行版本控制。但是,我不知道有任何工具可以将所有这些步骤放在多个应用程序上。

我目前的首选方法是使用hudson的参数化构建形式来创建规范。然后进行第二个参数化构建,以选择预先创建的规范并在所选环境中部署/执行它。

然而,这似乎是大量的工作,而不是最佳的自定义解决方案。

有人知道任何预先构建的更好的想法吗?或者关于如何解决这个问题的建议 - 也许工作流引擎会比hudson更好?也许是一个自定义的Web应用程序?

笔记:

目标环境是预先构建的,所有要求都已到位 - 例如.java和应用程序服务器安装,数据库运行等。这与其说是环境配置问题,不如说是部署问题。

自动化单个应用程序的部署是许多解决方案的问题,例如货物,蚂蚁部署脚本等。但是,我需要一些可以包装多个部署的东西。例如,在多个应用程序的特定版本及其要求上启动货物。


答案 1

听起来你需要一个厨师来烹饪你的配置:)


答案 2

glu 似乎是自动化部署的一个非常好的选择。来自其网站的描述:

什么是胶水?

glu 是一个免费/开源的部署和监控自动化平台。

胶水能解决什么问题?

胶水正在解决以下问题:

  • 将应用程序部署(和监视)到任意大型节点集:
    • 有效
    • 最少/没有人为交互
    • 安全
    • 以可重复的方式
  • 确保长期一致性(防止漂移)
  • 在出现问题时快速检测和排除故障

它是如何工作的?

glu采用一种非常声明性的方法,在这种方法中,您可以描述/建模您想要的内容,然后glu可以:

  • 计算用于部署/升级应用程序的操作集
  • 确保它随着时间的推移保持一致
  • 检测并在出现不匹配时提醒您

它由Yan Pujante维护,起源于LinkedIn内部使用它。


推荐