Blog chevron_right 未分类

通过 Azul Intelligence Cloud 提升任何 JVM 的 DevOps 生产力

For decades DevOps teams have been under pressure to do four things: make software faster, make it cheaper, keep it secure, and accelerate time to market. But with fewer engineering resources, enterprises that use Java must find a way to speed up application innovation and fortify application security across their entire Java estate more efficiently. The rewards (and costs of not doing so) are high – companies in the top quartile of McKinsey’s Developer Velocity Index (DVI) perform significantly higher than bottom-quartile companies: 

Grow 4-5x times faster 

Score 55% higher on innovation 

Deliver 60 percent higher total shareholder returns 

Maintain 20 percent higher operating margins  

Two primary challenges to DevOps productivity are alert fatigue due to out-of-control false positives for vulnerabilities and unnecessarily maintaining unused code in legacy codebases. Modernizing codebases for cloud-native environments is made further complicated by the complex mix of JDK distributions and Java versions in use by many large enterprises. 

Azul Intelligence Cloud helps bring efficiency to these DevOps operations, making these DevOps initiatives achievable and even commonplace for Java applications.  

Intelligence Cloud is designed to help engineering managers effectively deal with the challenges of technical debt and security maintenance with the Code Inventory and Vulnerability Detection features. And now, in an exciting new development, Intelligence Cloud works for any JVM from any Java vendor. Whether you’re using a JDK distribution from Azul, Microsoft, Red Hat, IBM, Oracle, Eclipse Temurin, or any other Java provider, Intelligence Cloud works for you. 

Eliminate CVE false positives with Vulnerability Detection 

Azul Vulnerability Detection is a cloud service that eliminates false positives by accurately identifying and prioritizing known vulnerabilities in Java applications in production. Unlike other tools, it has no performance penalty. And unlike security scanners that report vulnerabilities on all code, including code that is present but unused, Vulnerability Detection pinpoints code that actually runs in production to efficiently prioritize the backlog to focus on vulnerable code that is used. DevOps teams responsible for keeping applications secure can keep their attention on real threats without wasting time on code that never runs. 

Vulnerability Detection helps teams prioritize and de-prioritize CVEs based on whether the component loaded in production. Intelligence Cloud now goes beyond this to address the question of unused code – do I need this code at all? 

Find unused code with Code Inventory 

Code Inventory identifies code that exists in a company’s servers but doesn’t run. It’s a clutter finder. It’s the only solution that accurately identifies unused and dead code for removal by precisely detailing what custom and third-party code is running. 

Inefficient prioritization of unused code for removal wastes effort, hampers agility, and reduces developer productivity due to unproductive code maintenance tasks. 

A recent study from Goldman Sachs’ DevOps organization underscores the importance of deleting unused and dead code by revealing that they: 

Reduced the size of a codebase by 67% for a recent project 

Improved its product release cadence to more than 250 releases per year 

Reduced codebase size and greater confidence in their testing resulted in time savings and afforded opportunity for other investments 

For many software engineers, the last decade of rapid feature design has amassed large amounts of code that they own. The authors of this code have often changed teams, or business owners have selected to prioritize features over reducing technical debt. The pace of feature delivery has slowed for some applications and creates a stressful workplace for software engineers. Sometimes small changes that feel like they could be done quickly take entire sprints, leading to dissatisfaction from both the engineers and the stakeholders, both of whom want a faster pace. 

An Azul Intelligence Cloud user from a leading fintech trading firm recently told us, “We acquired another firm recently and aren’t familiar with their codebase. It contains millions of lines of code – reading and understanding that code would take months. With Code Inventory, we identified large portions of unused code, archived it, and now spend our time working on the important parts. This has significantly sped up our development cycles.” 

Code Inventory helps by passively building up an inventory of what code runs within the application. This inventory is built up based on the first-execution of each method. As an application runs over time, methods are invoked and recorded. There is no need for teams to dedicate time towards finding dead or unused code. This inventory can include queries later to evaluate what ran, as well as the first/last time it was seen. Methods that never run are present in the source/bytecode but not the code inventory, making them a candidate for deprecation and removal. 

Code Inventory is best used over time and helps teams build confidence the longer it runs. Often the application owner has an idea that some code is unused but just wants the comfort of verification. This first tier can be watched for a short time, maybe a few weeks, before making the decision to deprecate and remove that code. The longest amount of code may deal with annual reporting modules, where teams should monitor execution. A shopping portal, for example, may need to go through a major annual holiday time to see what they can safely deprecate and get rid of. A large portion can be determined over a few months. In general, though, the benefit is from teams passively building up the list of “what’s still used” to identify “what’s not used anymore” without impacting standard feature work and schedules.  

Try a pilot of Azul Intelligence Cloud Today 

Intelligence Cloud works with any OpenJDK-based JVM from any vendor or distribution including Azul, Oracle, Amazon, Microsoft, RedHat, and Temurin to dramatically slash time from unproductive tasks across an enterprise’s entire Java estate, freeing up developers for more important business initiatives. Try Intelligence Cloud, including Vulnerability Detection and Code Inventory, and see if it’s right for your business.

数十年来,四项工作始终让 DevOps 团队倍感压力:提升软件运行速度、降低软件成本、保障软件安全性,以及加快上市时间。但在工程资源有限的情况下,使用 Java 的企业必须寻找方法,以加速应用程序创新,并更高效地构筑整个 Java 环境中的应用程序安全性。这样做将获得巨大的回报(反之将耗费巨大成本),麦肯锡开发者速率指数 (DVI) 排名前四分之一的公司与排名后四分之一的公司相比,绩效遥遥领先: 

  • 增长速度快 4 到 5 倍 
  • 创新得分高出 55% 
  • 股东总回报率高出 60% 
  • 运营利润率保持在高出 20% 的水平  

DevOps 生产力面临的两大挑战是:由不受控制的漏洞误报导致的警报疲劳,以及对遗留代码库中未使用代码的不必要维护。由于许多大型企业混合使用多个 JDK 发行版和 Java 版本,这种复杂组合使云原生环境代码库的现代化变得更加棘手。 

Azul Intelligence Cloud 有助于提高这些 DevOps 运营的效率,使这些针对 Java 应用程序的 DevOps 计划得以实现,甚至成为普遍做法。

Azul Intelligence Cloud 的优势

解决警报疲劳 注重实质,而非应急演练
利用来自 JVM 的独特信息消除误报,并确定积压任务的优先次序,以重点关注正在使用的易受攻击代码 持续监测新出现的关键漏洞被利用的情况及位置,从而节省时间并最大限度地减少 Log4j 等事件造成的中断
摆脱技术债务 历史分析
精确定位将在生产环境中运行的代码,让 DevOps 团队能够轻松查明并移除不运行的代码,从而减轻针对未使用代码进行维护和升级的负担。 通过保留代码的使用历史记录,为集中取证工作提供支持,确定易受攻击的代码在被确认存在漏洞之前,是否已遭到利用。

Intelligence Cloud 的设计目标在于,通过 Code Inventory 和 Vulnerability Detection 功能帮助工程经理有效应对技术债务和安全维护的挑战。而现在,Intelligence Cloud 带来了一项激动人心的新进展,那就是它可适用于任何 Java 供应商的任何 JVM。无论您使用的是 Azul、Microsoft、Red Hat、IBM、Oracle、Eclipse Temurin 还是任何其他 Java 提供商的 JDK 发行版,Intelligence Cloud 都能为您提供服务。 

通过 Vulnerability Detection 消除 CVE 误报

Azul Vulnerability Detection 是一项云服务,可准确识别并优先处理生产环境中 Java 应用程序中的已知漏洞,从而消除误报。与其他工具不同,它不会对性能造成影响。安全扫描器会报告所有代码(包括存在但未被使用的代码)中的漏洞,而 Vulnerability Detection 则不同,它会精确定位在生产环境中实际运行的代码,从而有效地确定积压任务的优先次序,重点关注正在使用的易受攻击代码。负责确保应用程序安全的 DevOps 团队可以将注意力集中在真正的威胁上,无需在从未运行的代码上浪费时间。

团队可以利用 Vulnerability Detection,根据组件是否在生产环境中加载,提高或降低 CVE 的优先级。Intelligence Cloud 现在更进一步,解决了与未使用代码相关的问题:我真的需要这些代码吗? 

通过 Code Inventory 查找未使用代码

Code Inventory 可识别公司服务器中存在但未运行的代码。这是一个冗余代码查找器。它是唯一一个能够准确识别未使用代码和僵尸代码的解决方案,可以精准地详细列出正在运行的自定义代码和第三方代码,从而帮助确定要移除的代码。

优先处理本应移除的未使用代码是一种低效行为,将浪费精力,阻碍敏捷性,而且非生产性代码的维护任务还将降低开发者生产力。

通过 Code Inventory,我们识别出了大量未使用代码,并将其归档,现在,我们可以将时间花在最重要的部分。这显著加快了我们的开发周期。

领先金融科技交易公司的 Azul Intelligence Cloud 用户

Goldman Sachs 的 DevOps 组织最近开展的一项研究强调了删除未使用代码和僵尸代码的重要性,该研究显示: 

  • 他们在最近一个项目中将代码库规模减少了 67% 
  • 他们可以将产品发布频率提高到每年 250 次以上 
  • 通过缩小代码库规模,并在测试中增强信心,可以节省时间,并为其他投资提供机会 

对于许多软件工程师来说,在过去十年的快速功能设计中,他们积累了大量自己的代码。这些代码的作者经常更换团队,或者业务所有者选择优先考虑功能,而非减少技术负债。一些应用程序的功能交付速度已经放缓,这给软件工程师创造了充满压力的工作环境。有时候,看似可以快速完成的小更改会占用整个冲刺阶段的时间,导致工程师和利益相关方感到不满,因为双方都希望能加快进度。 

一家领先金融科技交易公司的 Azul Intelligence Cloud 用户最近对我们说:“我们最近收购了另一家公司,对他们的代码库不熟悉。它包含数百万行代码,而阅读和理解这些代码需要数月时间。通过 Code Inventory,我们识别出了大量未使用代码,并将其归档,现在,我们可以将时间花在最重要的部分。这显著加快了我们的开发周期。” 

Code Inventory 以被动方式为在应用程序中运行的代码建立清单,从而提供帮助。该清单的构建方式是记录每个方法的首次执行。当应用程序运行时,随着时间的推移,方法会被调用并记录。团队无需专门花费时间查找僵尸代码或未使用代码。该清单可以包含后续查询,以评估哪些代码运行过,以及首次/上次运行的时间。从未运行过的方法存在于源/字节码中,但不存在于代码清单中,因此会被认定可以弃用或移除。 

Code Inventory 最好长期使用,运行时间越长,越能帮助团队建立信心。通常,应用程序所有者已经意识到,有些代码未被使用,但希望得到验证,确保安心。在决定是否要弃用和移除代码之前,可以在较短的时间(比如几周)内进行这种初步观察。执行周期最长的代码可能涉及年度报告模块,团队应监控其执行情况。例如,购物门户网站可能需要经历重要的年度假期时段,才能了解哪些代码可以安全地弃用和移除。大部分可以在几个月内确定。但总体而言,这样做的好处是,团队可以在不影响标准功能运作和日程安排的情况下,被动地建立“仍在使用的代码”列表,从而识别“不再使用的代码”。  

立即试用 Azul Intelligence Cloud

Intelligence Cloud 可与任何供应商或发行版(包括 Azul、Oracle、Amazon、Microsoft、RedHat 和 Temurin)的任何 JVM 配合使用,从而在企业的整个 Java 环境中大幅削减不重要的任务所耗费的时间。它使开发者能够腾出时间,参与更重要的业务活动,并提高 DevOps 生产力。尝试 Intelligence Cloud,以及其中包含的 Vulnerability Detection 和 Code Inventory 功能,确定它是否适合您的业务。