Blog chevron_right 未分类

商业支持的益处:充分挖掘 Java 的价值

虽然 OpenJDK 项目推动了 Java 的发展,并且其源代码和发行版通常可以免费使用,但却不提供商业支持。我们来审视一下自我支持(自行构建 OpenJDK 发行版,或是使用免费发行版)的可行性,以及公司可以如何从 OpenJDK 提供商的商业支持中获益,以实现其应用程序的 DevOps 和安全性目标。

紧跟季度更新

OpenJDK 社区通常每季度发布一次更新。这些更新带来了重要的改进,例如,安全补丁、性能更新、错误修复和新功能。如果依赖全天候商业支持,您可以确保所有安全补丁、错误修复和增强功能都是最新的;相对地,如果您正在考虑自我支持,请计算下载 OpenJDK 源代码、自行构建 JDK 并严格地对其进行测试(通过 TCK 测试,评估其针对数千款应用程序是否具有合适的覆盖率)所需的时间和资源。相比之下,这些附带商业支持的 OpenJDK 发行版具有全天候的正式支持渠道,包括电话、电子邮件,或由支持工单 SLA 提供保障的电话。此外,商业支持还会主动向您通报非周期性的错误修复,并对症状问题提供深入的根本原因分析,您仅通过 Oracle Java 错误数据库报告错误将无法获得此类益处,因为 OpenJDK 社区无法就何时解决问题做出保证。

以向后移植安全性修复作为最佳实践

如果您采用自我支持方案,并自行构建 OpenJDK 发行版,就应当向后移植安全性修复,在运行较旧版本的 Java 应用程序时,这一点尤为重要。安全性修复旨在修补软件中的漏洞。通过将新版本(例如 Java 17 或 Java 21)中的安全性修复向后移植到早期版本的 OpenJDK(例如 Java 6、7 或 8),可确保系统有能力应对已知的威胁,保持安全性。如果不向后移植,可能会使系统暴露在这些漏洞中,让攻击者有机可乘。

出于各种原因,如兼容性问题、稳定性或与升级相关的成本考量,您的企业可能需要在旧版 Java 上运行应用程序。Oracle 已停止对 Java 6 和 Java 7 等使用广泛的旧版本提供优先支持,但您可能希望继续使用这些平台。然而,风险问题仍然是需要首先关注的因素。使用提供商业支持的 OpenJDK 版本,您将可以继续运行旧版本的 Java,并且无需在安全性上做出妥协。此外,由于您运行的软件符合企业的数据安全规定,合规部门也将对这一举措感到满意。


如果您正在使用 Oracle 停止支持的 Java 7 或更早版本,将很容易受到严重安全漏洞的影响。


始终如一的安全敏锐度

若想实现始终如一的安全性、坚实稳固的功能、积极主动的防护、保持对旧版系统的支持并节约成本,稳定而安全的 OpenJDK 版本将起到决定性作用。请务必了解一下,商业提供商如何提供向后移植的安全性修复。鉴于任何更改都可能危害应用程序的稳定性,OpenJDK 提供商的商业支持套餐应该会提供两种更新版本:关键补丁更新 (CPU) 和补丁集更新 (PSU)。这样做可以最大限度地确保安全性,同时兼顾在有限的测试范围中进行快速部署的需求。如需更多信息,请阅读我们的《PSU 和 CPU 说明》支持章节。

选择捆绑技术更为明智

商业支持套餐可以在单个捆绑包中提供多项技术,比起分别购买这些技术的支持服务,它在节约成本和优化性能方面更具优势。捆绑在一起的技术通常经过挑选和配置,可与 OpenJDK 出色地配合,进而节省安装、配置和故障排除所需的时间和精力。这种做法可以显著提高效率,并降低出现兼容性问题的风险。

得益于商业支持,您还将定期收到针对这些捆绑技术的更新和补丁,确保您可以从最新的功能、改进和安全性修复中获取益处。当技术作为商业支持套餐的一部分,被捆绑在一起时,支持提供商通常会负责维护这些技术,并提供支持。Oracle 的 JavaFX 就是旧版捆绑包的一个例子,它与 Java 8、9 和 10 捆绑。

然而,JavaFX 目前已被排除在 OpenJDK 主项目外。如果您运行的是 Java 8、9 或 10,可能需要正式的 JavaFX 技术支持。最重要的是,在使用旧版 Java 捆绑包时,如果您遇到问题,只需进行单点连络,这将简化排除和解决故障的过程。

防范开源代码

通过使用开源软件,开发团队提升了生产力和效率。然而,如果您在自己的软件应用程序中使用了包含 GPL(GNU 通用公共许可证)源代码的软件,按照 GPL 的要求,您必须公开合并后的整个代码库,以供审查和复用。因此,若不采取适当的预警措施,可能会引发巨大的知识产权风险。这通常被称为“GPL 污染”。鉴于 OpenJDK 广泛使用 GPLv2 许可证,如何最有效地保护您的 Java 代码免受 GPL 污染?

只有利用明确包含 Classpath Exception 的 API 访问 GPLv2 代码,才能保护应用程序免受额外许可要求和 GPL 污染的影响。然而,验证 Classpath Exception 合规性是一项复杂的任务,并且在每次构建和每次更新中,您都必须重新验证其合规性。OpenJDK 中并非每个文件都包含 Classpath Exception,而一个特定的 Java 版本可能包含数以万计的源文件。需要仔细分析,确保应用程序可以访问的所有 API 都包含 Classpath Exception。OpenJDK 的发行版本经常未在所有 API 中包含 Classpath Exception,让使用该发行版的代码遭受到 GPL 污染。

Azul 会扫描 Azul Platform CoreAzul Platform Prime 每个版本中的每个源文件,确保客户代码不受污染,避免开源许可对客户软件施加要求。因此,Azul 的 JDK 是唯一提供完整知识产权保护,保证不受 GPL 污染影响的 OpenJDK 发行版。


若想实现始终如一的安全性、坚实稳固的功能、积极主动的防护、保持对旧版系统的支持并节约成本,稳定而安全的 OpenJDK 版本将起到决定性作用。


内部支持与 Java 商业支持

如果您经过计算,发现采用 Java JDK/JVM 内部支持方案将产生过高的成本和风险,决定探寻 OpenJDK 商业支持方案,请记住,并非所有 OpenJDK 商业支持供应商都能为您提供相同级别的服务和功能。请在招标书中评估支持计划和 SLA 细节,包括是否保证每季度更新,是否提供向后移植的稳定安全版本,是否具有技术捆绑包,以及能否防范开源许可证污染。

Azul 是一家领先的 OpenJDK 提供商,提供 Java 商业支持以及 Azul 迁移研讨会服务,其中包括 ITSM 工具构建的 JDK 清单、迁移路线图和资源步骤。无论您是寻求咨询服务、额外人员配置、项目管理支持还是全面交付,Azul 的 Java 迁移服务都能帮助您填补团队的不足。