最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

IBM 发布 Open Liberty,开源的 Java 微服务运行时

  • 2017-10-16
  • 本文字数:2571 字

    阅读完需:约 8 分钟

最近,IBM 发布了 Open Liberty WebSphere Liberty 的开源实现—进一步体现了 IBM 为开源社区所做出的贡献。这一版本支持基于 Eclipse MicroProfile Java EE API 构建微服务和云原生应用。

WebSphere Liberty 于 2012 年问世,是一个轻量级的小型应用服务器,用于在 Docker、Kunernetes 或 Cloud Foundry 上部署符合 Java EE 7 规范的应用程序。IBM 网站上对其进行了描述:

眺望未来,我们相信 Java、开放标准和开源的组合是构建卓越应用程序的最佳方式。因此,我们在去年联合了 Red Hat Payara Tomitribe 和其他一些公司一起致力于推动使用 Java 来开发微服务,我们还为我们的 MicroProfile 和 Java EE 运行时创建了开源版本。

这并非这些公司之间唯一的一次合作。除了 OpenLiberty,IBM 还发布了他们的开源 JVM Eclipse Open J9 。在今年早些时候,IBM 还与 Google 及 Lyft 一起开发了开源项目 Istio —一个用于监控微服务的服务网格。

Open Liberty 与 Open J9 及 Istio 组合而成的技术栈可以用于开发 Java 微服务和云原生应用。开发人员还可以使用 Open Liberty Tools —一系列轻量级的工具,用于开发、组装和部署应用程序到 Open Liberty。Open Liberty 的代码库可以在 GitHub 上找到。

InfoQ 采访了 IBM WebSpere 和 Liberty 运行时架构师 Alasdair Nottingham ,谈论了 Open Liberty 相关话题。

InfoQ:Eclipse Open J9 和 Istio 服务网格是怎样被集成到 Open Liberty 中的?

Alasdair Nottingham:Open Liberty 与符合 TCK 标准的任何一种 JVM 兼容。不过目前 Liberty 还不能完全兼容 Java SE 9,而 Eclipse Open J9 只能运行 Java SE 9 的字节码。这是我们需要去解决的一个问题。因为 Eclipse Open J9 是基于 IBM JVM 开发的,所以如果它与 Open Liberty 能够支持相同版本的 Java SE,那么它们的结合就是天衣无缝的。从我们的经验来看,相比在 Hotspot 上运行 Open Liberty,J9 在内存占用和启动速度方面更具优势。

Istio 意欲在 Docker 或 Kubernetes 环境中支持多种语言运行时,它通过在运行时与外部环境中间扮演协调者角色来实现这一目的。这也意味着,用户可以在不修改应用程序代码的情况下,在发生故障时使用服务选择、服务超时、重试和回路断路器功能。

在这种架构下,Open Liberty 可以很容易地与 Istio 运行在一起。Open Liberty 也支持 Eclipse MicroProfile Fault Tolerance 规范,为应用程序提供了类似的容错 API,开发人员可以选择使用 Istio 或自己编写 Java 代码来处理这些问题。如果 Istio 已经配置了这些容错模式,那么就可以停用 Open Liberty 中的这些功能,因为没有必要让应用程序和 Istio 做相同的事情。

InfoQ:MicroProfile 和 Java EE 8 之间的相互影响程度是怎样的?

Nottingham:Java EE 8 是一个非常重要但也很有限的更新版本,而 Eclipse MicroProfile 正在探索新的 API,用于增强 Java EE 的实际应用。

Eclipse MicroProfile 对 Java EE 的未来已经产生了重大影响,Eclipse 软件基金在这方面的进展速度惊人。最新的 EE4J 章程显示,随着 Java EE 移交给 Eclipse,MicroProfile 将会对 Java EE 的发展产生主要影响。

InfoQ:在过去的一年中,为了加快 Java 在微服务方面的应用,你都与 Red Hat、Payara 和 Tomitribe 做了哪些工作?会继续和他们合作下去吗?

Nottingham:这是一次非常有成效的合作。虽然过渡到 Eclipse 对每一个人来说都是一个巨大挑战,但我们在 MicroProfile 1.2 上所取得的进展很让人感到欣慰。每个人都使出浑身解数,希望在 JavaOne 上有所斩获。不管是观众还是参与者,都能从中体会到乐趣。

我们的合作当然会继续下去。这对于 Eclipse MicroProfile 的成功和 Eclipse Enterprise for Java(EE4J)的成功来说都是至关重要的。

InfoQ:Java 每六个月的发布周期对 Open Liberty 的开发和后续的发布有什么影响吗?

Nottingham:是否对 Open Liberty 的发布周期产生影响要看 JVM 发生了哪些变更。从我们的经验来看,更新到新版本字节码会占用比较多的时间。

Java EE 重度使用了字节码操作,所以更新到新版本字节码需要做大量的工作。如果每次发布新版的 Java 时都伴随字节码的更新,那么我们就很难跟上步伐。从过去的经验看,我们使用了差不多六个月时间更新到新版的 Java,但效果并不理想。所以,我希望字节码的变更不会太频繁。

InfoQ:是什么让 Open Liberty 有别于其他的应用服务器?

Nottingham:Open Liberty 与其他应用程序有一些不同之处。首先是配置的简易性。我们努力让配置变得简单易用,配置文件可以被提交到版本控制系统里,这对于 DevOps 来说是一个好消息,因为配置文件可以和代码放在一起了。另一方面,我们的应用服务器可以为应用程序提供它们所需要的功能。

Open Liberty 从一开始就被设计成可以为应用程序提供必要功能的应用服务器,我们把它们叫作功能单元。我们为 Java EE 和 MicroProfile 提供了所有功能,而如果你只需要其中的一小部分功能,那么就可以得到一个小型而快速的服务器运行时。

InfoQ:关于 Open Liberty,还有其他什么可以分享的吗?

Nottingham:从功能方面来看,我们要支持 Java EE 8。从 GitHub 上可以看出,我们正在开发 Servlet 4、JAX-RS 2.1、JPA 2.2、JSON-B 和 JSON-P。其他特性也会陆续添加进来。

Open Liberty 还支持 Eclipse MicroProfile 1.2。我们的开发团队还参与了新的 EE4J 项目,所以我很期待我们到时候能够提供一个实现版本,并支持 Java SE 9。

Holly Cummins 是 IBM Bluemix Garage London 的技术组长,也是 WebSphere Liberty Profile 的前任交付经理,她也分享了她在 OpenLiberty 方面的经验:

我个人对我们在 Liberty 上所做的工作感到非常自豪,看到它在 GitHub 上开源也感到很激动。Open Liberty 有一些非常棒的模块化和动态特性。运行在本地时,它支持热部署,可以在无需重新启动的情况下增加、移除或重配置整个服务器。运行在云端时,它的模块化特性可以让未使用的功能不占用任何磁盘或内存。另外,我也很喜欢它那清晰且统一的配置方式。

有趣的是,Liberty 是第一个可以运行在 Raspberry Pi 上的应用服务器(我们随后也让它运行在 Android 设别上)。而 Liberty 这种适合小型部署的特点却也让它成为大规模云原生应用的最佳选择,这不得不说是一种悖论。

查看英文原文: IBM Introduces Open Liberty, an Open Source Runtime for Java Microservices

2017-10-16 19:002758
用户头像

发布了 322 篇内容, 共 134.3 次阅读, 收获喜欢 144 次。

关注

评论

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

NodeJS事件循环

真嗣

前端 nodejs 事件循环 eventloop

【架构师训练营】模块八作业

樰巳-堕~Horry

架构实战营 「架构实战营」

学生管理系统详细架构方案

IT屠狗辈

架构实战营 详细架构

云计算情报局预告|告别 Kafka Streams,让轻量级流处理更加简单

阿里巴巴云原生

阿里云 云原生 消息队列 Kafka ETL

网站开发进阶(六十八)防抖节流

No Silver Bullet

防抖节流 2月月更

“首席AI架构师”+57人!百度AICA第五期结业啦

百度大脑

关于阿里云多活容灾的那点事

阿里巴巴云原生

阿里云 云原生 应用多活

如何设计一个复杂的业务系统?从对领域设计、云原生、微服务、中台的理解开始

阿里巴巴云原生

阿里云 云原生 架构设计

"5G通达,AI赋能" AI在网络规划中的应用实践

百度大脑

模块三作业

Mr小公熊

内网安全-记一次内网靶机渗透

网络安全学海

黑客 网络安全 信息安全 渗透测试

学生管理系统-详细架构设计文档

AragornYang

架构训练营 架构实战营

模块三作业

blazar

「架构实战营」

使用 Solidity、Web3 和 Vue.js 创建区块链游戏

devpoint

dapp NFT Solidity 2月月更

模块三作业

Geek_ec866b

架构实战营

人类的AI调校计划:像个淑女,或者硬汉

脑极体

全国人工智能师资培训班·上海站火热招生中

百度大脑

Go自定义DNS解析器负载均衡实践

FunTester

HTTP 接口测试 DNS Go 语言 FunTester

PaddleOCR 部署实战之Java&C#方案直播分享来啦

百度大脑

博文干货|在 Kotlin 中使用 Apache Pulsar

Apache Pulsar

开源 架构 云原生 kotlin Apache Pulsar

DDD实战(2):看看代码结构长啥样

深清秋

DDD 软件架构 生鲜电商系统

引领创新技术发展,百度荣获两项数据中心国家级荣誉

百度大脑

如何高效交付专有云?百度智能云有妙招

百度大脑

系统学习 TypeScript(三)——基础类型

编程三昧

typescript 前端 2月月更

外包学生管理系统架构设计文档

smile

学生管理系统架构设计文档

Bear

「架构实战营」

外包学生管理系统架构设计文档

石小天

「架构实战营」

外包学生管理系统架构设计文档

「架构实战营」

Python3 cpython优化 实现解释器并行

字节跳动终端技术

字节跳动 编程语言 代码优化 Python3 火山引擎MARS

中远海运集团总经理付刚峰率队访问百度 双方将加强合作

百度大脑

[架构实战营]-外包学生管理系统架构设计

邹玉麒

「架构实战营」

IBM发布Open Liberty,开源的Java微服务运行时_Java_Michael Redlich_InfoQ精选文章