应用现代化是指通过利用现代化技术和提高性能来更新旧版应用程序的过程。可以通过注入DevOps、基础设施即代码等云原生原则,使其适应不断变化的商业速度。对待旧版应用程序的处理可根据其价值、重要性和目标的不同而有所不同,范围从完全重写到基于价值、重要性和目标的重新托管。众所周知,重写带来的好处最多,因为它提供了一个机会,以高度敏捷和速度的真正云原生模式。许多CIO / CTO因成本和时间因素而不愿投资,同时能够在高投资重写项目与低价值重新托管方法之间取得平衡。服务提供商和工具供应商正试图通过构建可供企业定制使用的加速器来解决这个问题,以帮助加速现代化的特定领域: Evolvware ,IBM咨询云加速器和云服务提供商(AWS, Azure, GCP等)的特定工具。在试图推动加速和优化现代化成本的同时,生成式人工智能正在成为推动现代化流程变革的关键推动因素。本文将重点介绍应用现代化过程中的生成式人工智能可能性。
应用现代化概述
应用现代化从评估当前旧版应用程序、数据和基础设施开始,并应用正确的现代化策略(重新托管、重新平台化、重构或重建)以实现期望的结果。重建带来的效益最大,但需要较大投资;而重新托管是将应用程序和数据移动到云中,而不进行任何优化,这需要较小的投资,但价值较低。现代化的应用程序部署、监控和维护,并进行持续迭代,以与技术和业务的发展保持同步。通常实现的好处包括提高敏捷性、成本效益和竞争能力,而挑战包括复杂性和资源需求。许多企业意识到,转向云端不仅无法给他们带来预期的价值,也无法提供基本平台级自动化之外的敏捷性/速度。真正的问题在于IT的组织方式,这反映在它们当前的应用程序/服务是如何构建和管理的(参考Conway定律)。这反过来导致以下挑战:
- 多个IT系统/组件提供的重叠或重复功能会导致粘性依赖和扩张,影响生产力和市场速度。
- 应用程序和渠道之间的功能重复导致重复的IT资源(例如技能和基础设施)。
- 重复的功能(包括数据)导致重复的业务规则等,产生不一致的客户体验。
- IT能力与业务能力的不对齐影响了上市时间和业务-IT之间的关系。此外,企业为了支持新的业务倡议和创新,不得不构建多个临时措施和架构层。
- 旧版技术和单块性影响了速度和敏捷性,还影响了安全性和合规性。
因此,应用现代化倡议需要更加关注对业务的价值,这涉及将应用程序转化为与业务能力对齐的组件和服务的重要转型。这其中最大的挑战是所需的投资量,许多CIO / CTO因成本和时间因素而不愿投资。许多人通过构建可供企业定制使用的加速器来解决这个问题,以加速现代化的特定领域,IBM的IBM咨询云加速器就是其中一个例子。云服务提供商(如AWS,Azure,GCP等)也提供了一些加速器,有助于加快应用现代化的过程。在试图推动加速和优化现代化成本的同时,生成式人工智能正在成为推动现代化项目加速变革的关键推动因素。在本文中,我们将通过示例探讨加速的关键领域。
下图展示了应用现代化项目(重写为重点)的简化生命周期。
Discovery阶段重点是了解旧版应用程序、基础设施、数据、应用程序之间的交互、服务和数据以及其他方面,如安全性等等。
规划将复杂的应用程序组合拆分为迭代以进行现代化,建立一个迭代计划来实施路线图。
蓝图/设计阶段的活动根据现代化策略变化(从分解应用程序并利用领域驱动设计或根据新技术建立目标架构来构建可执行设计)。
随后的阶段是构建、测试和部署到生产环境。让我们在这些生命周期领域探索生成式人工智能的可能性。
发现和设计
以最少的主题专家(SME)参与理解遗留应用程序是现代化过程中的关键加速器。由于系统维护任务和关键问题,SMEs通常忙于自己的工作,可能由于他们的系统支持时间而知识有限。现代化项目的发现和设计阶段通常会消耗大量的时间,一旦理解了遗留应用程序的功能、集成方面、逻辑和数据复杂性,开发过程就会变得更加顺畅。
现代化团队依赖于代码分析并参考许多过时的文档,因此使用代码分析工具至关重要。在重新编写的倡议中,将功能能力映射到遗留应用程序的上下文中是至关重要的,从而促进有效的领域驱动设计和分解练习。在这种情况下,生成式人工智能在与代码和数据相关的领域和功能能力之间建立关联,从而创建与应用程序代码和数据相关联的完整业务能力视图,发挥着无价的作用。当然,这些模型需要根据企业领域模型或功能能力图进行微调和上下文化。本文讨论的Gen AI所促成的API映射就是一个主要例子。
对于应用程序分解和设计,事件风暴需要过程图,而Gen AI则通过将过程挖掘工具中的信息上下文化和映射来提供帮助。 Gen AI还辅助根据代码洞察和功能映射生成用例。总的来说,生成式人工智能通过确保全面了解遗留应用程序及其依赖关系,对缓解与现代化项目相关的风险起着至关重要的作用。
此外,Gen AI支持生成针对特定云服务提供商框架的目标设计,通过根据标准化模式进行模型调整,包括元素(如进出、应用程序服务、数据服务和组合模式)。此外,生成式人工智能还具有其他各种目的,包括生成特定于目标技术框架的代码模式以实现安全控制。它扩展其功能以生成详细的设计规范,包括用户故事、用户体验线框图、API规范(如Swagger文件)、组件关系图和组件交互图,等等。
规划
为现代化项目创建全面而宏大的路线图是一项具有挑战性的努力,需要在并行努力和顺序依赖关系之间取得微妙的平衡,同时确定共存场景。传统上,这项任务被视为一次性工作,但通过纳入执行级别输入的程序增量(PI)规划练习实现持续的重新对其任务提出更大的挑战。在这种情况下,生成式人工智能通过利用历史数据,包括应用程序与领域区域映射、工作量和复杂性考虑因素以及依赖模式,促进基于历史数据生成路线图的能力,在特定行业或领域的现代化计划中也发挥了无价的作用。
为了使这个过程可管理,提供一套能够有效应对企业环境中固有复杂性的资产和加速器至关重要。这正是生成式人工智能发挥关键作用的地方,它建立了应用程序组合详细信息与发现的依赖关系之间的有意义的相关性。
构建和测试
代码生成是生成式人工智能的一个众所周知且广为认可的应用。然而,需要强调的是,代码生成的范围远不止于应用程序代码。它包括生成各种相关的代码构件,比如基础设施即代码(IAC),其中包括针对Terraform或Cloud Formation等平台的模板。此外,生成式人工智能可以创建用于管道的代码和配置,嵌入关键的安全设计元素,如加密和IAM集成,并根据swagger或其他代码洞察生成应用程序代码,当处理遗留系统时尤为重要。这种能力还扩展到防火墙配置的创建,其中资源文件是基于实例化服务而生成的。
生成式人工智能通过精心组织的方法简化这些流程,利用从设计工具和其他来源整合的预定义应用程序参考架构。
生成式人工智能在测试方面也扮演着关键角色。它具有自动生成适当的测试用例、测试代码甚至测试数据的能力,优化测试用例的执行,提高测试过程的效率。
部署
现代化计划中的许多关键的“最后一英里”活动通常需要花费数天到数周的时间,取决于企业的复杂程度。生成式人工智能的一个重要应用案例是通过分析应用和平台日志、设计要点、基础设施即代码等来获得安全验证的洞见。这一能力极大地加速了安全审查和批准过程。此外,生成式人工智能对于生成配置管理(CMDB)和变更管理的输入也非常重要,这些输入来自通过灵活性工具完成的工作项的发布说明。
尽管上述应用案例在现代化旅程中具有巨大的潜力,但要充分利用这些生成式人工智能加速器,企业复杂性要求采用一种上下文协调的方法。开发企业特定的上下文模式是加速现代化计划的持续努力。我们已经观察到,在前期投入时间和精力,并不断定制这些生成式人工智能加速器以与企业内重复性模式相一致的模式,可以获得显著的好处。
现在让我们来看一个潜在的成功案例:
例子1:通过BIAN和人工智能重新构想API发现,实现域映射的可见性和重复API服务的识别
问题
一家大型全球银行管理着一个庞大的生态系统,拥有30,000多个API,涵盖零售银行、批发银行、开放银行和公司银行等多个领域的内部和外部接口。在这个庞大的API组合中,各个领域之间存在重复API的潜在机会。这种冗余不仅增加了维护庞大API集合的总拥有成本,而且还带来了与API重复和重叠管理相关的运营挑战。
缺乏对这些API进行强大的可见性和发现机制,迫使API开发团队无意中创建相同或相似的API,而不是识别和利用相关的API进行重用。此外,无法从银行行业模型的视角获取API组合的整体视图,阻碍了业务和IT团队全面理解现有的能力以及银行演进所必需的新能力。
基于生成式人工智能的解决方案方法
该解决方案利用了生成式人工智能模型(特别是BERT Large、Sentence Transformer和Triple Multiple Negatives Ranking Loss Function),结合特定领域的规则。利用对BIAN服务景观的全面了解进行进一步的微调,以促进对银行庞大API组合的理解。该解决方案提供了一种无缝的能力,可以自动将API与相应的BIAN标准相关联,并有效地将API端点方法映射到BIAN服务景观层次结构的第4级,具体位于BIAN服务操作领域。
该解决方案的核心功能包括能够:
- 导入Swagger规范和其他API文档,全面解释API,包括端点、操作以及它们的描述。
- 获取BIAN详细信息,深入了解BIAN服务景观
- 采用微调过程,纳入API端点方法与BIAN服务景观之间成功和不成功的映射
- 提供直观的映射结果可视化界面,包括BIAN框架内的层次导航,以及BIAN级别、API类别和匹配分数的筛选器,为用户提供易于访问和信息丰富的数据视图。
下面是解决方案视图的描述:
关键优势
该解决方案极大地简化了开发人员按BIAN业务领域组织的可重用API的发现流程。它提供了多个过滤和搜索选项,使团队能够高效地定位所需的API。此外,它使团队能够准确定位对增强操作韧性至关重要的关键API类别。在即将推出的迭代中,搜索功能将发展为支持自然语言处理和对话式用例。
通过在BIAN服务领域的上下文中识别重复API,该解决方案在塑造了一个针对冗余的现代化策略方面发挥了关键作用,同时对能力进行了合理化。
值得注意的是,这个案例仅用了6-8周的时间成功实施,而银行完全依靠人工发现和管理这么多的API可能需要一年时间。
例子2:将MuleSoft API自动现代化为Java Spring Boot API
问题
推动MuleSoft API转换为Java Spring Boot的持续努力面临着重大挑战。庞大的API数量,加上有限的文档和内在的复杂性,对项目的进展速度和效率产生了明显影响。
基于Gen AI的解决方案
通过实施一种内部开发的基于生成式AI驱动的加速器,将Mule API转换为Java Spring Boot的过程得到了明显简化。该计划始于深入了解API及其组件和基础逻辑,接着最终确定了响应结构和代码规范。然后,我们采用IBM版本的Sidekick AI来生成Spring Boot代码,利用LLM式的Open AI GPT,严格遵循最初在MuleSoft中设计的API规范。该代码生成过程涵盖了单元测试案例、设计文档和用户界面元素的创建。
将Mule API组件转换为Spring Boot的等效组件的过程是有条不紊地进行的,每个组件都逐一集成到工具中。加速器生成了相应的Spring Boot组件,然后将它们进行互联,同时解决遇到的任何错误。此外,它还便利地生成了一个针对所需通道的用户界面,完整配备了单元测试案例、测试数据和全面的设计文档。该设计文档包括各种关键要素,包括序列和类图、请求和响应细节、端点规范、错误代码以及与整体架构相关的考虑。
关键优势
利用OpenAI GPT的Sidekick AI通过配对多模型生成式AI技术策略,结合深入的领域知识和技术,增强了应用顾问们的日常工作。关键优势包括:
- 自动生成优化、可维护且符合最佳实践的Spring Boot代码和测试案例,确保可重复使用性。
- 简化API与前端通道层的集成,提升整体开发过程。
- 为开发人员提供易于理解的代码,为高效调试提供有价值的见解。
该加速器的概念验证(PoC)在6周内的3个Sprint中完成了四个不同场景的代码迁移、单元测试案例、设计文档和用户界面生成。
结论
很多CIO和CTO在考虑现代化计划时表达了疑虑,首先提到了一系列挑战。其中包括对需要广泛参与的SME(专题领域专家)参与的担忧,由于变革而可能对业务造成的潜在干扰,以及需要对包括安全和变更管理在内的各种组织功能的运营模式进行改变的必要性。虽然要认识到生成式AI并不是解决这些复杂挑战的万能解决方案,但它无疑对现代化计划的成功有所助益。它通过加速过程、降低整体现代化的成本,并且最重要的是通过确保没有漏掉关键功能来减轻风险。然而,需要认识到将大型语言模型(LLM)和相关库引入企业环境需要投入大量时间和精力。这包括严格的安全和合规审核以及扫描程序。此外,改进用于微调这些模型的数据质量是一项需要集中力量的工作,不能被低估。虽然紧密的生成式AI驱动的现代化加速器还没有普及,但预计随着时间的推移,将出现集成工具包,以加快特定现代化模式的加速,即使不是一系列模式的加速。