写点什么

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

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

关注

评论

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

打造手淘极简包的轻量化框架

阿里巴巴终端技术

ios android 框架设计 移动开发 包大小

深入解析Apache Pulsar系列: Broker消息确认的管理

博文视点Broadview

这8个JS 新功能,你应该去尝试一下

华为云开发者联盟

JavaScript 前端 开发 索引 开发语言

无服务器应用DevOps最新实践(内附完整演讲+视频)

亚马逊云科技 (Amazon Web Services)

计算

在字节,A/B 实验是这么做的!

字节跳动数据平台

大数据 字节跳动 AB testing实战 ab测试

数据安全是指什么?有什么意义?

行云管家

防火墙 信息安全 数据安全 堡垒机

IT运维人员日常工作包含哪些?核心任务是什么?工作量多吗?

行云管家

运维 IT运维 服务器运维

建木持续集成平台v2.2.0发布

Jianmu

开源 持续集成 CI/CD

带你玩转Flink流批一体分布式实时处理引擎

华为云开发者联盟

flink 分布式 实时计算 批处理 流处理框架

实战 MongoDB Aggregate

PingCode研发中心

mongo pipeline Expression

java开发之Redis数据结构

@零度

redis JAVA开发

60岁代码匠的几篇小作文,解决了大多数程序的迷茫(下)

图灵社区

java 编程

前端开发之Vue事件修饰符和按键修饰符

@零度

Vue 前端开发

17 Prometheus之服务发现介绍

穿过生命散发芬芳

Prometheus 1月月更

腾讯自选股如何实现单位小时内完成千万级数据运算

ninetyhe

腾讯 海量数据 分布式,

聚类算法有哪些?又是如何分类?

郑州埃文科技

数据分析 聚类算法

Flink是如何支持批流一体的

编程江湖

flink

LeetCode 每日一题 No.1220 统计元音字母序列的数目

DawnMagnet

rust LeetCode 力扣

Linux下玩转nginx系列(一)——初识nginx及其使用入门

anyRTC开发者

nginx Linux 音视频 WebRTC 服务器

阿里云视频云「 vPaaS 」演绎了怎样的音视频应用开发「未来图景」?

阿里云CloudImagine

阿里云 音视频 低代码 低代码开发平台 视频云

改进企业CRM系统实施的方法

低代码小观

企业管理 CRM 企业管理系统 CRM系统 企业管理工具

4 种高速安全混合云解决方案,助力您的云迁移之旅!

亚马逊云科技 (Amazon Web Services)

网络

大数据平台中的企业级数仓建设

五分钟学大数据

数据仓库 1月月更

iOS——解密RunLoop原理

iOSer

ios iOS面试 ios开发 RunLoop

【网络安全】2022年第一次靶场渗透实战学习

H

网络安全 渗透测试

2022年RPA行业发展十大趋势,六千字长文助你看懂RPA

王吉伟频道

RPA 机器人流程自动化 RPAaaS 超自动化 自动化优先

手把手教程|通过部署 Apache Superset 实现 Amazon S3 的数据可视化

亚马逊云科技 (Amazon Web Services)

analytics

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

analytics

推动数字化人才发展|奈学科技CEO孙玄受邀出席2022年CXO领导力峰会

科技热闻

第二节:SpingBoot单元测试

入门小站

java 编程

恒源云(GPUSHARE)_实例关机后如何操作迁移?

恒源云

gpu 运维 实例

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