Scala 部署自动化
我有一个Lift应用程序,它打包为WAR归档文件,必须部署在Jetty下。但是,我希望能够自动执行一些任务:Scala 部署自动化,scala,deployment,jetty,lift,puppet,Scala,Deployment,Jetty,Lift,Puppet,我有一个Lift应用程序,它打包为WAR归档文件,必须部署在Jetty下。但是,我希望能够自动执行一些任务: 指定目标服务器(或服务器集合)。我有多台服务器,从开发服务器到测试服务器和生产服务器,我希望能够非常轻松地控制部署的目标 出于负载平衡的目的,目的地(例如开发)可能意味着服务器的集合 测试阶段。基本上,在每次部署中,我都希望运行整个测试集,并在应用程序未编译或一个或多个测试失败时阻止部署 WAR档案必须部署在Jetty下,同样部署在一台或多台运行Linux的AmazonEC2机器上
- 指定目标服务器(或服务器集合)。我有多台服务器,从开发服务器到测试服务器和生产服务器,我希望能够非常轻松地控制部署的目标
- 出于负载平衡的目的,目的地(例如开发)可能意味着服务器的集合
- 测试阶段。基本上,在每次部署中,我都希望运行整个测试集,并在应用程序未编译或一个或多个测试失败时阻止部署
- WAR档案必须部署在Jetty下,同样部署在一台或多台运行Linux的AmazonEC2机器上
我正在使用SBT,我不知道这对木偶或类似的东西有多好。你会怎么做?我一直在看这个问题,希望有人能想出一个聪明的答案。既然他们没有,我想我会在这件事上表达我自己的感受 据我所知,目前还没有任何工具可以自动化这些类型的部署,我认为这是因为有太多不同的场景需要处理。至少,您有:
至于Puppet,有一点需要注意,我从未使用过它,它似乎可以成为这类过程的有用工具。您需要某种类型的中央协调器来处理集群,我相信Puppet可以提供帮助。也看到了这个问题
和实际上相同的感觉:你不能考虑所有可能的环境,框架只允许你选择你想要的。因此,请使用任何令人愉快的部署工具,并使用它
(当然,SBT允许您测试、防止打包,并且有很多部署工具都了解WAR-s和Jettyies。)您可以使用我们的产品完成所有这些工作。我注意到您提到了Puppet,需要注意的是,这个工具是为基础设施自动化而设计的,而不是为软件部署和交付而设计的 在DevOps领域工作时,我们发现通过团队协作保持软件和基础架构部署的正交性和同步性非常重要(开发人员不是ops人员,反之亦然) 要解决您的要点: 部署到多个服务器 创建自动部署计划时,可以指定服务器组,并根据需要从组中添加/删除服务器 测试阶段 您可以在生产之前使用任意数量的测试环境设置工作流,并且这些工作流可以包括在允许将生成升级到下一个环境之前通过测试的自动检查(即升级要求)。内置测试用于确保通过单元测试,但您可以为任何命令行工具输出指定它们,甚至可以编写自定义扩展 码头部署复制WAR文件就像使用SSH代理将工件部署到服务器上一样简单。这是典型的DevOps场景。我认为Jenkins将通过添加两个开源插件来帮助解决前两个需求,以获得对作业的更多控制,如“CloudBees构建流”和“节点和标签参数” Puppet或Chef肯定会帮助您配置一系列软件配置就绪的系统。它们几乎是等价物,但Chef支持的操作系统平台较少 我建议您参考OpenStack的持续集成,尤其是在项目选通和基础设施自动化方面: 对于部署,有urbancode uDeploy,它允许您在友好的GUI上设计自动部署过程,但目前它是商业化的(由IBM收购)。实际上,詹金斯也可以这样做,但需要更多的编码和脚本