写点什么

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

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

关注

评论

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

蓝牙5.0简介、nRF52832 BLE样例工程框架及main函数初始化流程简析

矜辰所致

蓝牙 启动流程 8月月更 nRF52832

技术分享 | 这些常用测试平台,你们公司在用的是哪些呢?

霍格沃兹测试开发学社

厚积薄发--一文带您了解阿里云 RocketMQ 轻量版消息队列(MNS)

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列

网络组件axios可以在OpenHarmony上使用了

OpenHarmony开发者

Open Harmony

NFT平台开发:NFT数字馆藏平台开发

开源直播系统源码

数字藏品软件开发 数字藏品开发 数字藏品系统

最常见的两个Jenkins问题,以及解决方法

龙智—DevSecOps解决方案

ci CI/CD CI/CD管道

leetcode 227. Basic Calculator II 基本计算器 II(中等)

okokabcd

LeetCode 算法与数据结构

GOPS现场 | 对话龙智董事长何明,探讨DevOps安全新概念

龙智—DevSecOps解决方案

运维 GOPS大会 GOPS全球运维大会

字节跳动基于 ClickHouse 优化实践之“查询优化器”

字节跳动数据平台

OLAP Clickhouse 查询优化 数据库开发 数据引擎

入门机器学习?还是先抢救一下数学吧!

博文视点Broadview

Elasticsearch添加修改删除索引文档

大河

elasticsearch bboss

bboss数据同步ETL工具介绍

大河

elasticsearch ETL bboss

【小程序】view视图,swiper轮播图,scroll-view滑动列表 (在线详细手册)

计算机魔术师

8月月更

为什么MatrixOne 0.5变慢了

MatrixOrigin

矩阵起源 MatirxOrigin MatirxOne 因子化

【小程序项目开发 --- 京东商城】 启航篇之uni-app项目搭建

计算机魔术师

8月月更

项目经理和ScrumMaster可以是同一个人吗?

ShineScrum捷行

Scrum 敏捷 ScrumMaster 项目经理

如何应对ITSM难题,打造现代化、高效的ITSM解决方案?

龙智—DevSecOps解决方案

ITSM ITSM软件 ITSM解决方案

你还有什么问题吗?

AlwaysBeta

程序员 面试

校区多,客情管理难?看中进教育使用明道云的新解法

明道云

BulkProcessor异步批处理组件使用

大河

elasticsearch bboss bulkprocess

这份SVN命令备忘清单,请查收

龙智—DevSecOps解决方案

svn 版本控制系统

技术分享 | 测试人员必须掌握的测试用例

霍格沃兹测试开发学社

AntDB最新成果亮相全球分布式云大会,推动企业数字化变革深入

亚信AntDB数据库

AntDB

移动端App自动化之触屏操作自动化

霍格沃兹测试开发学社

2022 世界人工智能大会|人工智能与开源技术先锋论坛即将开幕

Kyligence

开源技术 人工智能大会

节能环保LED显示屏为什么是未来发展趋势?

Dylan

LED显示屏 led显示屏厂家

Kyligence 亮相 Gartner 2022 数据与分析峰会,解锁数据智能新潜力

Kyligence

数据管理 指标中台

兆骑科创创新创业服务平台,海内外高层次人才引进,赛事承办

兆骑科创凤阁

Tapdata 获得阿里云首批产品生态集成认证,携手阿里云共建新合作

阿里巴巴云原生

阿里云 Serverless 云原生 SAE 合作

【小程序项目开发-- 京东商城】uni-app开发之配置 tabBar & 窗口样式

计算机魔术师

8月月更

兆骑科创人才引进服务平台,线上直播路演,投融资对接

兆骑科创凤阁

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