QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

使用 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:591331
用户头像

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

关注

评论

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

【web 开发】生活中大家都喜欢搞模板来规范化操作,抽象类却玩不明白-PHP的抽象类(63)

迷彩

模板 抽象类 三周年连更 抽象方法

企业办公转型的出路在哪里?华为云桌面开创办公新形式

轶天下事

看火山引擎DataLeap如何做好电商治理(一):挑战与痛点

字节跳动数据平台

监控 模型 电商 数据平台 DataLeap

酷家乐x极盾科技:“智能安全决策平台”助力日均十亿级日志分析

极盾科技

数据安全

10年IT老兵亲述SpringCloud开发从入门到实战文档

程序知音

Java 微服务 java架构 Java进阶 spring-cloud

今日分享丨inBuilder低代码平台有关前端的“道、法、术、器”

inBuilder低代码平台

前端 低代码平台

流行的DJ音乐混音软件:X Djing - Music Mix Maker for Mac

真大的脸盆

Mac Mac 软件 音乐混音软件

案例实践|云智慧ITSM产品在利星行汽车的运维实践

云智慧AIOps社区

运维 ITSM ITSM软件 ITSM解决方案 IT 运维

一文带你直观感受,BPM管理系统如何在低代码平台实现搭建

加入高科技仿生人

低代码 数字化 系统开发 BPM

全网更简单的方法,教你一键接入微信公众号,包教包会。包你成功。三包

派大星

ChatGPT

去哪儿网异常统计分析实践——Heimdall

Qunar技术沙龙

去哪儿网 Heimdall

Alibaba开发十年,写出这本“MQ技术手册”,看完我愣住了

程序知音

Java RocketMQ 消息中间件 Java进阶 后端技术

Wallys AP controllers devices/IPQ4019 and IPQ4029 chipsets provide centralized management.

Cindy-wallys

IPQ4019 ipq4029

ChatGPT会如何影响我们,会让我们失业吗?兼与吴军博士商榷 | 社区征文

李韧

人工智能 ChatGPT 三周年征文

开启数字化,传统工厂该如何布局?

优秀

数字化 数字工厂

开源工具系列7:Kube-bench

HummerCloud

Kubernetes 云原生安全

安卓机上 4G 内存跑 alpaca,欢迎试用轻量级 LLM 模型推理框架 InferLLM

MegEngineBot

开源 大模型 MegEngine LLM

接口测试

测吧(北京)科技有限公司

测试

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年4月刊

墨天轮

MySQL 数据库 oracle postgresql 国产数据库

业务出海,华为云全球加速服务GA助一臂之力

轶天下事

iOS MachineLearning 系列(13)—— 语音与音频相关的AI能力

珲少

华为云大数据治理轻量级解决方案为中长尾企业赋能

轶天下事

神奇,声网Web SDK还能这么实现直播中美颜功能

声网

前端 Web RTC 美颜

联合索引该如何选择合适的列?

江南一点雨

MySQL

mac软件卸载不干净怎么办?

真大的脸盆

Mac Mac 软件 软件卸载工具 卸载软件

阿里云 EMAS & 魔笔:4月产品动态

移动研发平台EMAS

阿里云 DevOps 消息推送 低代码平台 兼容性测试

【干货集】PCBA板边器件布局重要性

华秋PCB

工具 电路 PCB 布局 PCB设计

Alibaba技术官熬夜肝出的,Kafka“限量笔记”牛掰!

程序知音

Java kafka java架构 Java进阶 后端技术

重塑财务计划,拥抱全面预算管理的未来

智达方通

业财融合 全面预算管理 财务计划

JAVA快速开发框架 一键生成表单模板代码

力软低代码开发平台

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