NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

Mysql探索(一):B-Tree索引

程序员历小冰

MySQL 索引 28天写作

模块九作业

Geek_fc100d

「架构实战营」

Android C++系列:Linux信号(三)

轻口味

c++ android 28天写作 12月日更

12.01碎碎念

穿过生命散发芬芳

28天写作

SpringCloudAliBaba组件之Nacos精讲【注册、配置中心】

XiaoLin_Java

微服务 nacos 配置中心 springcloudAlibaba 签约计划第二季

10个问题解答火热的元宇宙概念

CECBC

毕业设计-电商秒杀系统

小智

「架构实战营」

由《组织行为学》讲义想到的两个问题(1/28)

赵新龙

TGO鲲鹏会 28天写作

SpringCloudAliBaba 组件之 Ribbon精讲【负载均衡】

XiaoLin_Java

负载均衡 微服务 Ribbon springcloudAlibaba 签约计划第二季

TypeScript 之常见类型(上)

冴羽

JavaScript typescript 翻译 大前端

反脆弱漫谈

木风

质量管理 技术管理 28天写作

Java 项目中使用 Resilience4j 框架实现隔断机制/断路器

码语者

Java circuit break 断路器 Resilience4j 隔断机制

Java基础系列:反射

正向成长

Java 反射

手把手搭建微服务项目,他到底有什么不一样?

XiaoLin_Java

架构 微服务 springcloudAlibaba 签约计划第二季 单体项目

Java问题排查分享

捉虫大师

Java 问题排查

基于云的技术架构设计实践-第0篇

hackstoic

云计算 架构 云原生 创业公司 签约计划第二季

新公司安排的工作做不来怎么办?是不是该离职了?

石云升

28天写作 职场经验 12月日更

微服务架构细节

卢卡多多

28天写作 12月日更

历经 7 年双 11 实战,阿里巴巴是如何定义云原生混部调度优先级及服务质量的?

阿里巴巴云原生

阿里云 云原生 混部 CNStack

31 K8S之StatefulSet控制器

穿过生命散发芬芳

k8s 28天写作 12月日更

工业区块链与关键关联技术融合创新

CECBC

架构实战总结

Geek_fc100d

「架构实战营」

深度参与,亲身体验,谨慎接受

mtfelix

28天写作 必然 未来趋势 2022开年学习

王者荣耀商城异地多活架构设计

胡颖

架构实战营

微博系统中“微博评论”的高可用高性能架构

AHUI

「架构实战营」

坚持不下去,你缺的可能不是意志力

Justin

个人成长 心理学 28天写作

「阿里云可观测系列公开课」正式发布,多维度助力企业强化可观测能力

阿里巴巴云原生

阿里云 云原生 直播 可观测 公开课

继续跑步

wood

创业 跑步

模块五作业

ks

架构实战营

模块五作业 ”微博评论“的高性能高可用计算架构

小朱

架构实战营

SpringCloudAliBaba之微服务常识扫盲

XiaoLin_Java

架构 微服务 springcloudAlibaba 签约计划第二季

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