Blog chevron_right 未分类

是否要重新设计 Java 应用程序的架构?

您将所有应用程序迁移到了云端,关闭了本地数据中心,加入了云革命的行列。 

恭喜!然而,当云账单开始源源不断地涌来时,您可能会发现,您需要根据应用程序重新设计架构。 

如果您只是将现有的单体应用程序原封不动地搬到云端,那么即使考虑到关闭数据中心所节省的费用,您要支付的成本可能可能也会比以前要高。事实上,根据《FinOps 现状报告》,许多公司仍在尽可能地优化云计算资源。 

您可能已经迁移到了云端,希望借此减少 DevOps 团队在硬件维护上付出的精力,从而更专注地为您的业务提供支持。上市时间和充分利用 DevOps 资源固然重要,但您是否愿意为了降低复杂性而付出更高的代价?

客户成功案例

Customer Success

Workday: Java-based SaaS for Millions of Workers

Customer Success

Puma Improves Operations with Azul

Azul freeing up highly-skilled engineers from JVM tuning to go create new value instead.
Customer Success

Taboola Serves Content to 1.4B People Each Month

好消息是,无论是否选择重新设计架构,您都可以在不迁移到新 Java 版本或更改任何代码的前提下,改进性能并节省资金。

如果重新设计架构是合理的方案选择,请使用高性能 Java 运行时

如果您迁移到云端是为了节省资金,或者您的企业感受到了财务压力,希望减少基础设施的支出,那么您可能需要重新设计架构。在云端节省资金的一种方式是利用云弹性,而快速实现这一点的唯一途径是将只能大规模扩展的大型单体架构重新设计为可独立扩展和部署的小型云原生服务。 

当然,重新设计架构,采用云原生微服务的原因并不仅仅是出于成本考虑。其他原因还包括: 

  • 上市时间:不仅仅是节省等待服务器容量在数据中心上线的时间。云原生微服务的开发周期更短,相较于单体架构,您的团队能够更快地修复错误和添加功能。 
  • 提高稳定性和性能:您的旧版 Web 应用程序很可能是大型有状态应用程序,因此很容易受到各种网络和负载均衡问题的影响。与单体架构相比,在设计良好的微服务架构中,单个服务的故障对整体功能的影响要小得多。而且,比起有状态的单体架构,具有良好设计的微服务可以通过多到不胜枚举的方式实现更卓越的性能。 
  • 开发人员满意度和留任率:如果可以选择,很少有 Java 开发人员愿意在服务器端使用 JSP 或 EJB。如果您想吸引和留住顶尖人才,就必须为他们提供机会,使他们能够使用当下的激动人心的技术。 

在重新设计应用程序架构时,无论您追求的是何种价值,对 Java 运行时的选择都至关重要。高性能的 Java 运行时可以非常有效地提高应用程序性能,并减少云浪费。   

Java 运行得越快,云费用越低。还有其他益处,包括:

  • 缩短上市时间:减少围绕性能问题的编码时间,以及回应在线应用程序性能工单所花费的时间。Azul Platform Prime 在平台层面解决了 Java 最棘手的一些性能问题,让您的开发人员可以专注于贡献业务价值。 
  • 提高性能和稳定性:即使负载增加,在 Prime 上运行的微服务也能获得较高的吞吐量和较低的延迟,从而减少与性能相关的错误,带来更好的用户体验。 
  • 开发人员生产力:花在调试性能问题上的时间更少,提高开发人员的幸福感。 

切换到 Azul Platform Prime 后,Workday 使用 Azul Platform Prime 消除了 95% 的运营问题。事实上,Workday 在 18 个月内减少了至少 4.2 万个原本用于性能调整的工时,从而节省了数百万美元,并使开发人员能有更多时间进行开发,而不是将时间花在排除故障上。 

如果无法重新设计架构,高性能 Java 将推动增量优化

如果能够在无需立即重新设计架构的同时,节省云成本呢?对现有系统进行现代化改造是一个循序渐进的过程。即使是对于单个单体架构,您可能也会希望以渐进的方式推动优化,专注于每次将一个服务转换成微服务,直到淘汰整个单体架构。
例如,Puma 使用 Azul Platform Prime 改善运营,通过提高业务灵活性,增加了创新的 Web 功能,并实现了现代化转型。
而有些系统可能永远不会将重新设计架构视作优先事项。
那么,对于只能大规模扩展的单体应用程序,如何减少其对财务的拖累和对性能的影响?迁移到 Azul Platform Prime 可以提高应用程序的承载能力,在总流量不变的情况下,以更少的单体实例提供服务。在 Prime 上运行应用程序有助于降低过时代码性能问题的严重性。

无需迁移到新的 Java 版本或更改任何代码,即可实现这一切。

代码的运行速度越快,使用的计算实例就越少,云账单费用也将相应地降低。  此外,拥有高性能 Java 运行时的工程团队在开发新功能和应用程序时,可以集中精力,保持代码的精简和高效,从而: 

  • 减少性能妥协,提高效率 
  • 通过更快、更高效地执行代码,降低 CPU 使用率 
  • 提高承载能力,并减少实例数量  
  • 在较高的负载下保持服务水平 

在对应用程序进行现代化改造时,优化云成本至关重要

根据 AWS(《俭约架构师》)的说法,应该有一套新的法则来规范应用程序的架构设计方式,其中将成本作为一项非功能性需求是关键所在。  比起特定的特性或功能,更应该关注系统的运营方式。  这涉及可访问性、可用性、安全性、可移植性、可维护性和合规性等。成本是经常被忽视的方面: 

“设计良好的系统可让您抓住机会,做出改进……编程语言提供了用于分析代码性能的分析工具,虽然需要设置和专业知识,但它们支持细粒度的分析,可以为您带来毫秒级的改变。 

看似微小的优化,在大规模应用中也能积少成多,最终节省巨大的成本。

AWS 首席技术官 Werner Vogels –《俭约架构师》,2023

如果您的大部分时间都在运行使用 Java 构建的现有系统,请寻找机会,分析资源使用情况,并确定如何减少浪费。  

立即下载并试用 Azul Platform Prime,了解如何做到这一点。