【发布时间】:2010-09-12 15:06:34
【问题描述】:
我们有一个运行在多台计算机上的 Java 服务器应用程序,所有计算机都连接到 Internet,其中一些位于防火墙后面。我们需要从一个中心站点远程更新 JAR 文件和启动脚本,而不会对应用程序本身造成明显的中断。
该过程必须是无人值守且万无一失的(即,我们无法承受由于过早的互联网中断而破坏应用程序的代价)。
过去,我们使用各种外部脚本和实用程序来处理类似的任务,但由于它们有自己的依赖关系,因此结果更难维护且可移植性较差。在制作新东西之前,我想从社区获得一些意见。
有没有人已经找到了一个好的解决方案?有什么想法或建议吗?
只是澄清一下:这个应用程序是一个服务器,但不适用于 Web 应用程序(这里没有 webapp 容器或 WAR 文件)。它只是一个自主的 Java 程序。
【问题讨论】:
-
@Nzall 对于在这个问题上提出的更新赏金,使用自定义 JRE 不会在一定程度上解决它吗?和this Q&A 可能相关
-
@Naman 我不确定这将如何工作。我们希望将它从我们的服务器机器远程安装到客户端机器(带有库和自定义代码的 Karaf 核心),并且我们希望推送它,而无需人们手动复制安装程序并运行安装脚本。我们有一些客户需要更新 3 打代理,因此我们希望使升级更加顺畅。
-
2020 年分布式部署管理和执行滚动发布是 Kubernetes 和其他容器编排器解决的两个大问题。可能太重了,无法将您的服务器改装为仅用于一个应用程序的 k8s 集群。您不能使用从 CI 服务器作业运行的 ssh 脚本完成自动重新部署吗?