写点什么

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

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

关注

评论

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

Shutterstock完成对Envato的收购

财见

流模式vs批模式:你选对了吗?

Apache Flink

大数据 flink 流计算 批处理 flink batch

win版Xara Photo & Graphic Designer+ (图像处理与图像绘制) v24.2特别版

iMac小白

【YashanDB知识库】filter or改写问题

YashanDB

yashandb 崖山数据库 崖山DB

Snipaste截图/贴图工具

源字节1号

小程序 开源 后端

Golang 中 能否将 slice 作为 map 的 key?

伤感汤姆布利柏

Windows10+vs 2017中创建WEB API教程

幂简集成

Windows 10 API web api

28款信息无障碍研究会合作产品通过工信部适老化及无障碍水平评测

信息无障碍研究会

common-intellisense:助力 TinyVue 组件书写体验更丝滑

OpenTiny社区

开源 Vue 前端 组件库 OpenTiny

【YashanDB知识库】stmt未close,导致YAS-00103 no free block in sql main pool part 0报错分析

YashanDB

yashandb 崖山数据库 崖山DB

淘宝/天猫商品详情API接口在电商数据同步与实时更新中的实践

技术冰糖葫芦

API Explorer api 货币化 API 文档 pinduoduo API

软件测试学习笔记丨Jenkins job配置

测试人

软件测试

win版Free YouTube to MP3 Converter(YouTube视频转MP3工具) v4.4.6.723 特别版

iMac小白

2024-07-24:用go语言,给定一个整数数组 nums,其中至少包含两个元素。 可以根据以下规则执行操作:选择最前面两个元素删除、选择最后两个元素删除,或选择第一个和最后一个元素删除。 每次操作

福大大架构师每日一题

福大大架构师每日一题

MySQL 8.0 字符集与比较规则介绍

Simon

MySQL

体育赛事直播APP开发:新增直播回放功能增强用户吸引和留存

软件开发-梦幻运营部

win版Xara Web Designer+(网页设计制作) v24.2.0特别版

iMac小白

IPQ5332 vs. IPQ4019: Optimizing WiFi for Manufacturing Plants

wallyslilly

IPQ4019 IPQ5332

win版Resolume Avenue(专业级的VJ调试软件) v7.21.2.37990 (x64)特别版

iMac小白

豆瓣评分8.6!破晓大牛仅用一份手册就把Web安全讲明白了!

我再BUG界嘎嘎乱杀

网络安全 WEB安全 网安

【论文速读】| 关于构建基于检索增强生成的聊天机器人的事实

云起无垠

Gartner报告:腾讯云大数据助力企业实现 AI 原生应用落地

腾讯云大数据

腾讯云

win版Free YouTube Download(YouTube视频下载助手) v4.4.6.723 激活版

iMac小白

win版Alpaca(PS图像智能生成插件) v2.9.2特别版

iMac小白

基于Java+SpringBoot+Vue前后端分离毕业生实习与就业管理系统设计和实现

hunter_coder

后端开发

VMware虚拟机中安装Windows11系统的教程

理理

基于Java+SpringBoot+Vue前后端分离毕业生实习与就业管理系统设计和实现

hunter_coder

后端开发

Idea 永久激活教程

源字节1号

小程序 开源 后端

win版InnoExtractor(Inno解包工具) v8.0.0.603 中文版

iMac小白

win版Resolume Arena(VJ音视频软件) v7.21.2特别版

iMac小白

Oracle向YashanDB迁移的丝滑体验

YashanDB

yashandb 崖山数据库 崖山DB

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