阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

LiveRebel 1.0:更新生产环境里的应用时,不用再停止服务了

  • 2011-07-08
  • 本文字数:1310 字

    阅读完需:约 4 分钟

ZeroTurnaround 的 LiveRebel 1.0 旨在服务器部署自动化的过程中缩短服务停止的时间、减少会话丢失的个数。据 ZeroTurnaround 的 CTO Jevgeni Kabanov 说,大部分应用都要在非高峰时段停止服务进行更新。那些一次只能处理一个服务器的工作人员会非常痛苦。这些工作基本上没有工具支持,流程只有部分进行了脚本化,主要还得靠人工完成。InfoQ 有幸对 ZeroTurnaround 进行了采访。

InfoQ:客户目前使用 LiveRebel 进行部署,能提供一些有关复杂性 / 规模的详细信息么?

这里说的部署都还在测试,部署的规模大多比较小,不过一些生产环境的部署很快就会超过一百个服务器。

InfoQ:LiveRebel 主要关注单节点应用(WAR、EAR、JAR),还是可以处理更复杂的多节点部署?

我们可以处理各种类型的部署,包括规模极大的集群,甚至是弹性云部署。

InfoQ:什么情况下 LiveRebel 会优于比较传统的可用方式?比如一次只更新集群里的一个服务器。

从概念上讲,原因有:

  • 每次只重启一个服务器会花费很长时间,很小的变化也会变得很昂贵。
  • 应用的状态结构只要有变化,会话迁移就会失败。应用如果一直处于活动状态,那会话就能永远维持下去。
  • 数据库结构或远程 API 要是有任何变化,应用的新旧版本就可能不兼容了,这种情况下新旧版本也不能同时运行。

InfoQ:以后的版本会有哪些值得期待的内容?

LiveRebel 1.0 非常简单。不久的将来我们会添加:

  • Hudson/Jenkins 插件,
  • 状态变化(比如添加一个属性)的自动处理机制和手动处理机制,
  • 数据库更新集成,也会集成一些应用生命周期管理产品。

从长远来说,我们打算修复多个比较严重的缺陷,这些缺陷都是我们在现有的应用生命周期管理产品中发现的。

LiveRebel 1.0 包括的功能有:

  • 完全脚本化的服务器和 Web 控制台,控制台可以管理任意规模的 Java EE 应用,这些应用可以在单节点上,也可以在集群里或云中。
  • 对每个类和资源都进行单独的版本化,而不是重新装载整个应用,从而避免与容器重部署和滚动升级相关的问题。
  • 推出对用户不透明的即时更新。代码就地更新,保留所有已有的状态。
  • 在节点上使用纯 Java 的 JVM 插件(-javaagent),这会带来 3-5% 的性能开销。

但这个版本也有一些局限。虽然 LiveRebel 能处理所有资源的变更,但它不能:

  • 替换超类
  • 实现新接口
  • 处理没有 liverebel.xml 文件的 JAR 的变更(在更新第三方 JAR 包和支持库的时候最有可能遇到)

此外,由于 LiveRebel 不能创建新的状态,以下几类更改可能会有一些讨厌的副作用:

  • 添加新的实例属性或重命名现有的实例属性时,现有的对象会把这个实例属性初始化为 null
  • 更改过的构造函数只对更新后才创建的对象生效
  • 一般来说,各种初始化程序的变化对现有对象都没有影响

ZeroTurnaround 最近进行了一项调查,证实了对LiveRebel 的需求。调查指出,服务器部署自动化是特性功能,而不是规范要求的(特别是对有2-50 个服务器实例的生产环境来说,大部分被调查者都处于这种生产环境下),大家也能接受停止服务和丢失会话的做法, ZeroTurnaround 希望能有所改变:“在依赖关系不那么稳固的环境里迁移用户、应用和数据库状态是更新Java 应用每天都要去做的事情,我们希望这件事能变得美好一些。”

查看英文原文: LiveRebel 1.0: No-Downtime Production Updates

2011-07-08 05:331579
用户头像

发布了 151 篇内容, 共 60.1 次阅读, 收获喜欢 18 次。

关注

评论

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

2021年Android工作或更难找,透彻分析源码

android 面试 移动开发

2021年Android常见面试题目,程序员必须要了解的知识点

android 移动开发 Android面试

2021年Android开发前景如何,腾讯T2大牛亲自讲解

android 面试 移动开发

2021大厂Java面试经验,这位阿里P7大佬分析总结的属实到位

Java 面试 后端

2021大厂Java社招最全面试题,2021Java面经

Java 面试 后端

2021大厂Java面试必问题目,Java后端校招面试题

Java 面试 后端

2021年Android开发学习路线,互联网行业“中年”危机

android 移动开发

2021大厂Java面试集合,作为Java程序员

Java 面试 后端

2021年Android大厂面试,劲爆

android 面试 移动开发

2021年Android工作或更难找,2021Android面经

android 移动开发

三维可视化数字能源系统,助力智慧园区高效能源管理

ThingJS数字孪生引擎

大前端 物联网 可视化 数字孪生

2021年Android开发者常见面试题,涨薪7K

android 面试 移动开发

2021华为Java高级面试题及答案,Java技术成长

Java 面试 后端

2021年Android常见面试题,Android培训那里好

android 面试 移动开发

数据库排行榜|当 DB-Engines 遇见墨天轮国产数据库排行

墨天轮

MySQL 数据库 oracle TiDB 国产数据库

2021大厂Java春招面试经历,宅家36天咸鱼翻身入职腾讯

Java 面试 后端

2021年Android大厂面试,送大厂面经一份

android 面试 移动开发

2021大厂Java春招面试经历,Java高级架构视频

Java 面试 后端

2021年Java工作或更难找,华为Java面试社招

Java 面试 后端

2021年Android岗位BAT大厂面试题知识点小结,阿里巴巴安卓面试题答案

android 面试 移动开发

2021年Android开发前景如何,详解Android架构进阶面试题

android 面试 移动开发

2021年Android开发学习路线,终于彻底把握了

android 面试 移动开发

2021年Java工作或更难找,springboot源码解读与原理分析

Java 面试 后端

2021年Android开发者跳槽指南,附超全教程文档

android 面试 移动开发

分布式服务下,消息中间件改造

Java 架构 面试 分布式 后端

2021互联网大厂Java面经合集,阿里面试官必问

Java 面试 后端

2021京东最新Java面试真题解析,2021Java开发面试解答

Java 面试 后端

2021年Android工作或更难找,深入剖析原理

android 面试 移动开发

2021大厂Java开发面试总结+解答,21条MySQL性能调优经验

Java 面试 后端

硬实力再获认可!焱融科技入选《2021爱分析云计算厂商全景报告》

焱融科技

云计算 分布式 高性能 文件存储 科技

2021年Java常见面试题,面试官让我回家等通知

Java 面试 后端

LiveRebel 1.0:更新生产环境里的应用时,不用再停止服务了_Java_Ian Roughley_InfoQ精选文章