【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

使用 LiveRebel 2.0 更新运行在产品环境中的 Web 应用

  • 2012-06-19
  • 本文字数:1312 字

    阅读完需:约 4 分钟

将运行在产品环境中的应用更新到新版本并非易事。更新应该将对已连接用户的影响降到最低,同时如果更新不成功,那么应该可以轻松地回退到之前的版本。运行在多个服务器(比如说集群)上的应用使得更新过程变得更加复杂。通常来说,该特性是由应用服务器厂商以一种私有解决方案的形式提供的。在 Apache Tomcat 的最新版中,甚至连它都为这种零时间的停机更新提供了最低的支持。

ZeroTurnaround 提供了 LiveRebel 2.0 ,这是其针对 Java EE 应用在线更新解决方案的下一主版本。虽然 JRebel 用于项目的开发阶段,但 LiveRebel 的目标则是产品部署。LiveRebel 的一个主要特性是它可用于多个应用服务器。这是通过一个特殊的 Java agent (类似于 JRebel 的方式)实现的。目前支持如下环境:

  • Tomcat 5、6、7
  • Jetty 5、6、7、8
  • JBoss 4、5、6
  • Oracle Weblogic 9、10
  • Oracle application server 9、10
  • GlassFish open source 3.x
  • WebShere 6、7
  • 独立的 Java 应用

一个或多个服务器上分别安装了各自的 agent 后,管理员就可以统一查看所有受管理的服务器,并且可以即时更新运行着的应用。有几种更新策略,如hotpaching(类似于JRebel)或轮询的服务器重启等。LiveRebel 能够确保所有更新都是事务性的(要么全部成功、要么全部失败)并且所有更新都是可逆的。

要想使用LiveRebel,Java 应用还需要一个特殊的 liverebel.xml文件,这是一个内容无法再精简的文件,它持有打包应用的版本号。如果应用是通过 Maven 构建的,那么就能很轻松地在构建阶段集成其生成的内容

InfoQ 有幸采访到了 ZeroTurnaround 的市场经理 Oliver White 以进一步了解 LiveRebel:

InfoQ:可否将相同的应用部署到不同的服务器上(比如说一个是 GlassFish,另一个是 Tomcat),然后让 LiveRebel 对其进行更新?抑或所有服务器都要是一样的?

不必,服务器不需要是一样的。

InfoQ:LiveRebel 2.0 还为“独立”更新提供了一个选项。这到底是如何做到的呢?这是针对那些没有运行在应用服务器上的应用的么?那么 agent 安装到哪里呢?

没错,这是针对那些通过常规的“main”方法运行的应用的。agent 依旧安装到了 JVM 上,安装过程与使用应用服务器的情形是类似的(你需要通过 LiveRebel 包装器来运行应用)。然而,该模式有一些严重的限制(由于 LiveRebel 并不知晓处理 HTTP 的 socket,因此它无法代理 HTTP 请求),这意味着在更新过程中是没有轮询重启和 socket 暂停的。在该模式下,唯一有用的更新方式就是 Hotpatching 了。

InfoQ:LiveRebel 是否依赖于 JRebel?这意味着新版本的 JRebel 总是会导致新版本的 LiveRebel 出现?

LiveRebel 使用了 JRebel 技术来实现 Hotpatch 更新(作为一种更新策略),但在内部,我们是将其分开的,偶尔通过推 / 拉的方式实现两者间的变更。这种同步并不依赖于 JRebel 的发布计划。

InfoQ:能否向我们的读者介绍一下价格呢?

很遗憾,我们目前还不能披露价格,但不久之后我们的网站就会公布,现在我们只能说只要你有产品部署,那么你就能负担得起其价格。

ZeroTurnaround 现已发布了 2.0.7 版,带有改进的用户界面。要想了解更多信息,请查看文档 FAQ 以及入门指南

查看英文原文: Updating Web Applications Running In Production with LiveRebel 2.0

2012-06-19 12:591217
用户头像

发布了 88 篇内容, 共 258.7 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

对线面试官-Sychronized和ReentrantLock

派大星

Java 面试题

NestJs 管道(Pipe)

小鑫同学

typescript 后端 nestjs 6 月 优质更文活动

Nautilus Chain测试网迎阶段性里程碑,模块化区块链拉开新序幕

EOSdreamer111

激活SBOM内生价值 推动供应链体系建设健康有序|2023开放原子全球开源峰会软件物料清单(SBOM)分论坛成功举办

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 软件物料清单(SBOM)

VSD Viewer for Mac:Visio绘图文件阅读器

背包客

macos Mac软件 Visio文件查看工具 Visio Viewer for Mac VSD Viewer

华为云数据库GaussDB:给世界一个更优选择

YG科技

DEVONthink Pro 3 for Mac:Mac强大的文档管理工具

背包客

macos 文档管理软件 Mac软件 DEVONthink Pro DEVONthink

柏睿向量存储查询引擎基于LLM实现特定垂直领域的知识问答功能

新消费日报

阿里资深专家撰写出的Nginx底层与源码分析手册,GitHub已爆赞

互联网架构师小马

nginx

STM32L0 ADC使用HAL库关于校准问题的说明

矜辰所致

STM32L051 ADC 6 月 优质更文活动

这项国家级安全检测,腾讯云慧眼安全能力再获认可!

牵着蜗牛去散步

人工智能 腾讯云 网络安全 腾讯云AI 腾讯云慧眼人脸核身

2023开放原子全球开源峰会OpenCloudOS社区年会顺利举行

开放原子开源基金会

开源 开放原子 OpenCloudOS社区

MySQL8新特性窗口函数详解

越长大越悲伤

MySQL sql

Nautilus Chain测试网迎阶段性里程碑,模块化区块链拉开新序幕

股市老人

关于 SAP ABAP 字符变量和字符串变量字符个数的一个知识点,和一个血案

Jerry Wang

后台开发 abap Netweaver 字符串处理 6 月 优质更文活动

聚焦企业实践一线与个体职业成长|2023开放原子全球开源峰会OSPO分论坛成功举办

开放原子开源基金会

开源 开放原子全球开源峰会 OSPO 开放原子

OneCode-流程引擎设计

codebee

中国科学院院士梅宏:推进构建面向全球的开源生态治理体系

开放原子开源基金会

开源 开放原子 梅宏

基于STM32设计的智能灌溉控制系统

DS小龙哥

6 月 优质更文活动

TS接口类型

不叫猫先生

6 月 优质更文活动

PDF Expert for mac:pdf编辑工具中文最新

背包客

macos PDF Mac软件 PDF Expert PDF Expert for Mac

华为云数据库GaussDB:数字化转型和可持续发展的更优选择

YG科技

深度学习应用篇-元学习[16]:基于模型的元学习-Learning to Learn优化策略、Meta-Learner LSTM

汀丶人工智能

人工智能 深度学习 元学习 元强化学习 6 月 优质更文活动

【C/C++】extern 的一些注意事项

sidiot

c 6 月 优质更文活动

深入理解Pod的核心知识

穿过生命散发芬芳

pod 6 月 优质更文活动

行业翘楚论道未来想象|2023开放原子全球开源峰会云原生分论坛圆满落幕

开放原子开源基金会

开源 云原生 开放原子

Alibaba官方上线!SpringBoot+SpringCloud全彩指南

互联网架构师小马

Java 微服务 Spring Cloud Spring Boot

华为云数据库GaussDB:数字化转型的可信之选

YG科技

深度学习应用篇-元学习[15]:基于度量的元学习:SNAIL、RN、PN、MN

汀丶人工智能

人工智能 深度学习 元学习 元强化学习 6 月 优质更文活动

WWDC2023 Session系列:探索XCode15新特性 | 京东云技术团队

京东科技开发者

xcode wwdc session WWDC 2023 企业号 6 月 PK 榜

以商业实践反哺开源技术跃升|2023开放原子全球开源峰会开源商业化创新发展分论坛成功举行

开放原子开源基金会

开源 开源商业化 开放原子全球开源峰会

使用LiveRebel 2.0更新运行在产品环境中的Web应用_Java_Kostis Kapelonis_InfoQ精选文章