加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 部署自动化

发布时间:2020-12-16 18:55:26 所属栏目:安全 来源:网络整理
导读:我有一个Lift应用程序打包为WAR存档,必须在Jetty下部署.但是,我希望能够自动执行一些任务: 指定目标服务器(或服务器集合).我有多个服务器,从开发到测试和生产服务器,我希望能够轻松地控制部署的目的地. 目的地(例如,开发)可以表示服务器的集合,用于负载平衡
我有一个Lift应用程序打包为WAR存档,必须在Jetty下部署.但是,我希望能够自动执行一些任务:

>指定目标服务器(或服务器集合).我有多个服务器,从开发到测试和生产服务器,我希望能够轻松地控制部署的目的地.
>目的地(例如,开发)可以表示服务器的集合,用于负载平衡目的.
>测试阶段.基本上,在每个部署中,如果应用程序无法编译或者一个或多个测试失败,我希望运行整个测试集并阻止部署.
> WAR存档必须在Jetty上部署,再次在一台或多台运行Linux的Amazon EC2机器上部署.(Ubuntu 12.10)

我正在使用SBT,我不知道这将与Puppet或类似的东西有多好.你会怎么做?

解决方法

我一直在看这个问题,希望有人会想出一个聪明的答案.既然他们没有,我想我会在这个问题上表达自己的感受.

据我所知,没有现有工具来自动化这些类型的部署,我认为这是因为有很多不同的场景需要处理.至少,你有:

>单个开发服务器,只需将WAR复制到适当位置然后重新启动应用服务器即可.
>单个生产服务器,其过程类似,但您不希望该过程破坏您的用户.此处的注意事项包括在重新启动期间保留会话数据以及在低使用率的情况下计划重新启动.
>一个小型集群,您可以在许多节点上拥有负载均衡器.现在事情变得复杂了.您可以使用各种不同的LB工具(HA Proxy,NGINX,Amazon的Elastic LB),如果您关心用户体验,则需要协调应用服务器的滚动重启.在节点之间迁移任何会话数据也是一个问题.
>您有一个由不同地理区域中的较小群集组成的大型群集.在这里,您正在处理#3,无论在区域之间进行协调还需要进行哪些配置.

我想1& 2是最容易找到通用工具的,如果这是我需要处理的唯一情况,我可能只是将Jenkins与应用程序一起部署.它可以非常容易地配置,以便在发生更改时从git分支中提取,构建代码并重新启动Jetty.等到3&但是,我认为所涉及的不同工具的数量以及协调它们的需要已经排除了任何类型的标准解决方案.我不认为这只是Java / Scala世界中的一个问题,因为我已经看到了Github人员在他们为管理deployments of their Rails app而构建的自定义工具上的文章.

至于Puppet,我从未使用它的警告,似乎它可能是这种类型的过程的有用工具.你需要某种类型的中央协调器来处理集群,我相信Puppet可以帮助解决这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读