您现在的位置是:首页 >互联网 > 2020-11-10 14:11:01 来源:
旧应用程序的新生活云驱动企业现代化软件
去年,Mutualink Inc.完成了软件应用程序的重大改革,这是其在紧急情况下将公共安全和私人组织连接起来共享信息的业务的核心。这是该公司12年历史上第四次对该应用程序进行重大重组,但这次Mutualink正在进行长期重建。
Mutualink战略产品开发总监Paul Kurmas说:“最初的需求是将未来10倍的规模扩展到100倍的增长。” “但是,由于创建架构的成本如此之高,我们希望拥有一个超出这一范围的概念。”
公司最终推出的重建应用程序使用微服务,这些微服务是松耦合软件服务的集合,可根据需要独立启动。与使用单个集成代码库的应用程序相比,基于微服务的应用程序具有更大的可伸缩性,更容易扩展和更快。
但是到达那里并非易事。需要从头开始重新构建应用程序,而不会中断现有操作。库尔玛斯说:“这比我预期的要复杂得多。“您正在尝试匹配另一种生物的行为,这是现有系统。它有自己的行为,并且不会仅仅因为您决定发展而停止。”
通过将项目分解成各个部分并分别进行现代化升级,Mutualink能够逐步启用功能,而不会破坏用户体验。Kurmas估计该项目需要50至100个员工年的工作量,但结果几乎可以无限期地满足公司的需求。最初是为了支持100,000个并发用户而部署的,预计通过有选择地添加微服务和Redis Labs Inc.数据库实例,它可以可靠地扩展到数千万。
他说:“我们有能力扩展,提高部署速度并处理新问题,因为新问题的产生超出了投资的回报。”
热点话题
应用程序现代化很热。Research and Markets Ltd.预计,到2025年,全球市场将增长一倍以上,达到248亿美元,年增长率接近17%。
Gartner Inc.市场首席分析师Thomas Klinect说,他的电话最近并没有停止响。他说:“一名典型的分析师每年要接听300个电话。” “我涵盖了大约600个与应用程序现代化和合理化相关的内容。”
现代化是指将旧应用程序引入由云原则定义的新世界,这些原则包括极高的可伸缩性,平台独立性和扩展生态系统所带来的功能改进。SiliconANGLE的姊妹市场研究公司Wikibon的高级分析师Stu Miniman说:“在云中构建东西现在很有意义,因此大多数应用程序都在那里迁移。”
尽管这个概念并不陌生,但由于技术和业务力量的融合,最近引起了人们的关注。
一方面,在残酷的经济衰退期间,软件定义业务的市场价值飞涨,高级管理人员羡慕不已。众所周知,这一大流行病加速了数字化转型计划,而云平台对此无能为力。Klinect说:“我的读物是,企业高管已经看到了像COVID这样的浪潮如何破坏组织,他们现在正在研究如何将企业连接在一起,并意识到它们的规模已经扩大了,这会增加复杂性。”
改进的技术使现代化的破坏性比以往更少,并且云原生软件和开发技术的成熟使人们几乎可以实现近乎无限的可扩展性,与外部服务的集成以及模块化适应性,这在过去是可以实现的。
Miniman说:“应用程序现代化是要利用云的成本结构。”
容器是封装应用程序及其从属软件的便携式软件环境,现已得到广泛使用,IT组织对使用它们感到越来越满意。Unisys Corp.全球首席技术官Vishal Gupta说:“在混合和多云中在本地运行容器是现代化的最大推动力,因为它使您可以在任何有意义的地方灵活运行。”
许多软件供应商已经构建了工具来通过应用程序编程接口扩展旧应用程序(甚至是运行在大型机上的数十年历史的应用程序),从而允许使用图形前端等功能替换绿屏。Klinect说:“三年前,那简直就是魔术。” “现在有一些公司死记硬背地这样做。”
代码转换也已经成熟,使得即使是在1960年代用Cobol和Fortran等老式语言编写的应用程序也可以反向工程为更现代的东西。SSQ人寿保险公司数据和分析工程高级总监,四个重大现代化项目的资深人士西蒙·拉图特说:“您可以采取可行的方法,将其转换为另一种语言,并且仍然可行。”
蓬勃发展的开源生态系统还以低成本提供了诱人的现代化可能性,而无需担心技术死角。Mutualink的Kurmas说:“可以用开放源代码解决的问题的复杂度已经大大成熟了。”
综上所述,现代化的技术论点现在令人生畏,但不应轻易做出决定,也不应假定结果。Klinect在最近的一份报告中估计,到2025年90%的应用程序现代化项目将无法实现所有预期的业务成果。超过一半的人从未达到他们的第一个里程碑。
Klinect说:“通过现代化成功完成所有目标的组织数量,我们可能需要依靠双手,因为大多数组织都是从IT角度而不是从业务角度来看的。”
Klinect说,尽管信息技术组织对现代化过程至关重要,但它们不应推动战略思维。他说:“ IT看到明亮,闪亮的物体漂浮在天空中,它们使企业相信,没有它们,它们将失败。” 他们首先是如何陷入困境的。
复杂性成本
复杂性既是现代化的主要动力,也是最大的敌人。多年来,大公司已经积累了大量的软件产品,很少有正式的软件对其进行编目或映射相互依赖性的过程。
Klinect说:“每个人都购买软件,但没有人跟踪它。” “一旦打开了应用程序,它几乎不会关闭。”
旧的应用程序会在许可费和维护成本上花钱。由于维护工作通常消耗IT预算的一半以上,因此首席信息官急于清理房屋。Latouche说,这就像拥有一辆汽车:“从某种意义上来说,保养旧车要比买新车贵。”
但是现代化是一个连续的过程。Gartner列举了七种不同的方法:
封装使服务可以通过API选择性地使用,但不涉及底层代码。
重新托管该程序,使其“不变”到新的基础架构。
“重新平台化”进行了一些代码更改,以使应用程序适应新平台,但不会更改功能或结构。
重构使代码现代化,以消除效率低下的情况,而不会改变应用程序的行为。
重新架构从根本上改变了应用程序代码以利用新平台。
从头开始进行大修,并保持原始范围和规格。
替换将旧的东西扔掉,取而代之的是全新的东西。
每个步骤都会增加一定程度的复杂性和成本,但也会带来相应的回报。尽管有很多选择可以使组织有很多选择,但这也会增加做出错误决定的风险。
几年前,Unisys承担了将复杂的遗留应用程序迁移到现代微服务体系结构的项目,从而了解了错误选择的后果。开发人员认为其任务是提高软件的稳定性,但“在项目进行到一半时,我们意识到问题并不在于系统不稳定。人们希望获得引人注目的用户体验,从而将过程从30分钟缩短到5分钟。” Unisys的Gupta说。“两年来我们走错了路。”
Unisys还发现了公司在进行大修后才发现的东西。古普塔说:“系统中逻辑太多,要全部重新编码将花费100个人年。” 通过封装为应用程序提供服务的速度不仅更快,而且还实现了向云的可移植性。
解开复杂性
Gartner称之为“企业复杂性分析”的软件工具很有前途,可以通过将意大利面条碗中的依赖关系映射到公共数据库来解开依赖关系。但是这些工具无法在现成的商业应用程序中看到,而实施这些工具可能需要花费25万美元。
不过,这比将一个人的开发工作花在一个项目上要便宜,因为发现任何代码更改都会使其他六个应用程序崩溃。Klinect说,好处是,许多公司发现他们的软件组合中有20%根本没有被使用。
现代化绝不应该真空进行,有时甚至根本不应该进行。专家建议,组织应该专注于业务价值而不是技术债务,IT永远不要领导该项目。
Latouche表示:“您需要进行现代化以实现新功能,” Latouche最近进行了一次大型软件检修,该检修使用Talend SA的数据集成软件统一了多个特定于产品的应用程序,以创建单个客户视图。“这应该会改变业务。”
Miniman说:“您需要对您的投资组合进行全面评估。” “与业务差异无关,与差异化无关。”
通常无需进行全面检修。将应用程序封装在软件容器中非常简单,并且可以提供云平台在可伸缩性方面的许多优势。现在有许多工具可以为老化的应用程序配备API,从而使它们得以逐步更新。在许多情况下,只需要一个新的用户界面即可。
专家提醒不要尝试“大爆炸”方法,这些方法试图一次交付完全重构的应用程序,Latouche将该方法描述为“相当痛苦。一开始您将看不到很多复杂性,”他说。“这可能是永无止境的,因为您越深入项目就可以发现更多。您将在一年内找不到所有细节。”
一种更好的方法是他的公司在一个较早的项目中使用该方法,将重新构造的应用程序像分拆公司一样对待。他说:“所有新内容都转移到了新应用程序中,随着时间的推移,我们迁移了所有内容。” 尽管这意味着要支付两次许可费并及时管理两个应用程序,但是风险较低,因为该公司始终可以退回到旧的应用程序。
封装方法提供了分阶段迁移的低风险选项。“您封装整体,然后向现有用户公开API,” Klinect说。他说,随着IT人员解开依赖关系并将代码与数据分离,“然后您就可以用真正的API替换在封装过程中创建的API。” Gartner提倡一种“持续现代化”的方法,通过API频繁提供新服务并逐步隔离旧应用程序,直到可以安全关闭为止。
进站
在迁移期间管理客户的期望至关重要,这也是让业务考虑因素驱动流程的最佳理由之一。几乎肯定会需要重新培训,并且在项目进行过程中服务水平可能会暂时下降。但是,就像房屋装修一样,结果通常是值得的。
“人们必须接受,也许服务级别或功能起初会有所下降,”拉图奇说。“这就像赛车中的进站:您的竞争对手为您赢得了收益,但从长远来看,您将处于领先地位。”
沃达丰集团(Vodafone Group plc)的希腊子公司采用点滴功能交付的方法,使用户可以轻松地对其基于Kubernetes容器编排器, Quarkus Java框架和100多种微服务的面向客户的数字体验层进行检修。开发人员向公司客户提供了现代化的一小部分,以使他们不断保持联系,以便他们了解我们所做的改进。Doda分会负责人Christos Sotiriou和沃达丰技术主管Evangelos Gongolidis在一封电子邮件中说面试
现代化具有附带的好处,因为组织可以利用微服务和API来利用其他功能,从而使应用程序具有更高的可扩展性。沃达丰就是这种情况,该公司在现有应用程序中添加了基于云的微服务层,以减少客户满足请求所需的步骤数。
Sotiriou和Gongolidis说,此举最初被认为是一种提供快速数据检索并在友好的前端和灵活的API后隐藏复杂性的方法。但是结果是具有微服务域的半独立层,可非常快速地处理付款和客户分析等功能。
例行现代化
围绕云原理进行现代化改造的另一个好处是,现代化改造本身已成为常规流程。Klinect说:“一旦进行了现代化,将其设置为连续的现代化程序非常简单,因为只需10到15分钟的对话即可确定该应用程序是否仍能满足业务需求。”
实际上,Gartner建议现代化成为业务的一部分,应将应用程序视为产品而不是技术。他说:“如果您不再将应用程序用于企业,则可以剥离它。”
专家敦促,在对云进行全面现代化时,公司也应准备采用云开发风格。容器,微服务和API可以快速吸收新功能,并且交付速度应匹配。几乎所有内容都是软件定义的。
Unisys的Gupta说:“您需要将基础架构视为代码,将策略视为代码,将安全性,迁移和补救视为代码。” “从事开发工作的同一个人将进行部署。您的传统流程将无法正常工作。”
现代化也是寻找可以替代手工编码解决方案的开源和打包解决方案的机会。Kurmas说,使用Redis(可在开源版本和企业版本中使用),通过找到一个已经有效而不是构建它的解决方案,Mutualink节省了Mutualink“至少八到十年的开发人员精力。”
这是应用程序部署中的一种现代思维,很可能会在很长一段时间内得到回报。