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

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

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

关注

评论

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

0经验,我是如何做大数据测试开发的?

京东零售技术

大数据 测试 企业号 4 月 PK 榜

✅InnoDB如何解决脏读、不可重复读和幻读的?

派大星

MySQL Java 面试题

个人创业对接:互联网广告推广项目代理,腾讯微信官方广告全国诚招加盟

Geek_bd7410

互联网广告代理 腾讯广告代理

和鲸科技出席第五届空间数据智能学术会议,执行总裁殷自强受邀发表主题报告

ModelWhale

人工智能 大数据 学术会议

低代码与定制开发相结合:构建质量管理系统的新途径

天津汇柏科技有限公司

创业 低代码 软件开发定制 质量管理系统 质量管理QMS系统

单个大模型的训练成本,两年后或涨至近百亿美元

算AI

人工智能 AI

模块3作业

小畅

数字化转型新篇章:企业通往智能化的新范式

优秀

数字化转型 智能化

Port:2024 内部开发者门户IDP现状报告

杨振涛

平台工程 内部开发者平台 内部开发者门户

IPQ9574 + IPQ5322 wifi CPU - Which is better for your wifi project?

wifi6-yiyi

ipq9574 IPQ5332

面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?

EquatorCoco

Java 编程

🎉重大更新!开源无代码 / 低代码平台 NocoBase v1.0 正式发布!

NocoBase

开源 低代码 开发工具 无代码 无代码平台

华为云云原生FinOps解决方案,释放云原生最大价值

华为云开发者联盟

云原生 华为云 华为云开发者联盟 华为云云原生 企业号2024年4月PK榜

互联网轻资产创业项目,微信朋友圈广告投放代理

微点全媒体广告运营

互联网广告代理 全媒体广告代理 信息流广告代理 朋友圈广告代理 微信广告代理

架构实战营 - 模块四 - 作业

小畅

NFTScan | 04.22~04.28 NFT 市场热点汇总

NFT Research

NFT NFTScan

Spring Boot 编写 API 的 10条最佳实践

不在线第一只蜗牛

Java Spring Boot 后端

助力企业部署国产云原生数据库 XSKY星辰天合与云猿生完成产品互兼容认证

XSKY星辰天合

Go-Zero从0到1实现微服务项目开发(二)

王中阳Go

Go 分布式 微服务 Go进阶 gozero

In-Depth Comparison of IPQ5332, IPQ5322, IPQ5312, and IPQ5302

wallyslilly

IPQ5332 ipq5322

首个!腾讯云ES通过中国信通院检索增强生成(RAG)技术要求专项测试

Geek_2d6073

解决@MapKey is required

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

2024创业项目:互联网全媒体广告代理如何申请 微信朋友圈广告代理怎么做利润高

微点全媒体微信推广渠道

评测8款免费开源PLM工具

PingCode

PLM软件 项目周期管理

BOE(京东方)ADS Pro专场技术策源地论坛举办 聚焦行业领先技术共研显示新未来

爱极客侠

华为音乐空间音频出行歌单新鲜上线,打造五一沉浸式听音之旅

最新动态

程序员都在用哪些神器提升工作效率

小魏写代码

深圳发布重大开源项目申报指南,助推OpenHarmony生态发展

科技热闻

软件开发工程师如何才能不被 AI 取代?

这我可不懂

边缘计算各领域应用介绍

3DCAT实时渲染

边缘计算

和鲸科技闪耀亮相InnoEX2024香港创科展,共话沪港数据合作,引领数据智能革新

ModelWhale

人工智能 大数据 创科展

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