文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

云原生计算能消除技术债务吗?

2024-12-03 00:10

关注

【51CTO.com快译】云原生计算可以将行业领域驱动的设计、GitOps和其他现代软件最佳实践汇总起来,如果企业实施得当,可以减少技术债务。

云原生计算是企业IT的一种新范式,它涉及现代技术的方方面面,从应用程序开发到软件架构,再到保持一切运转的底层基础设施。

云原生为企业提供了清理技术债务的机会。例如通过Kubernetes这样的“扫帚”,扫除现有技术的一些积满尘土的角落。因此,假设云原生最终会消除多年来累积的技术债务是合乎逻辑的。

这也许合乎逻辑,但并不现实。众所周知,技术债务将长期存在。此外,对于任何一位首席信息官来说,宁愿将IT预算花在新技术和新事物上,也不愿将其浪费在清理前任留下的烂摊子上。

然而人们也有理由对云原生抱有希望。虽然云原生不是一把神奇的“扫帚”,但其核心实践确实可以帮助企业减少技术债务,并提供新的软件功能,而不会产生更多的债务,至少不会像以往那样产生更多的债务。

让企业清除技术债务以便永远不会产生新债务,当然是难题的一部分,但更直接的问题是如何偿还现有的遗留技术债务。

多年来,便利的快捷方式、笨拙的编码,以及基础设施中各种各样的接口,已经形成了一团乱麻。而对于这个难以解决的问题,可能需要采用“快刀斩乱麻”的措施。

云原生计算就是这样的一把快刀:基于领域驱动设计的架构重构。领域驱动设计要求将复杂的企业软件挑战分解为单独的业务领域,每个领域都有一个“限界上下文”。

限界上下文可以根据业务需求限制上下文来解决诸如“客户”或“发票”之类的业务。例如,大型企业的不同部门可能对客户有不同(可能有所重叠)的概念。每一个都代表一个单独的限界上下文。

早期对微服务架构的探索导致了互联微服务的激增,其复杂性限制了其可扩展性,并且很快显现出来。而通过限界上下文组织它们是管理这种复杂性以及大规模交付基于微服务的解决方案的关键。

因此,领域驱动设计已经成为云原生计算的一部分,此外,它告诉人们必须如何按照这种新范式来实现遗留资产的现代化。

解决具有高技术债务的遗留软件挑战的第一步是应用架构重构,从而将遗留架构转换为具有限界上下文的模块化元素。换句话说,企业必须遵循业务驱动的限界上下文引入模块化,以便引导减少技术债务的路径。

而魔鬼在细节中。根据企业面临的业务需求和遗留挑战,可以通过以下几种方式来利用这种架构重构:

需要注意的是,由于之前已将遗留软件重新组织和模块化为限界上下文,因此上述四种方法中的每一种都比其他方法更加简单。

此外,如果有必要的话,未来的重构也会更加直接,因为采用了“分而治之”的方法来划分技术债务。例如,随着时间的推移,企业还清四笔较小的技术债务比一笔大的技术债务更加轻松。

这种方法也是减少机器人流程自动化(RPA)脆弱性的最佳方法之一。如果没有限界上下文驱动的架构重构,那么应用程序环境中的任何地方发生任何变化,此类机器人程序就会崩溃。通过适当的划分,此类故障将更易于管理且更易于修复。

防止新的技术债务

防止新的技术债务就像要求保持房间整洁一样,虽然也许会保持一段时间,但到后来将会变得一团糟。

需要的是更多的结构,对吗?至少在云原生的情况下,这种结构确实有帮助。

云原生计算提供了一系列广泛的最佳实践,描述了如何最好地构建软件、配置基础设施、创建和部署应用程序以及管理生产中的一切。

当然,如果遵循所有这些建议,就不太可能背负新的技术债务,或者至少不会那么快地出现技术债务。

“基础设施即代码”(IaC)原则就是一个关键示例。IaC原则指出,工作人员不应在生产中弄乱服务器。 IaC原则当然可以限制生产中的额外技术债务,因为它提供了一种解决生产问题的主动方法。那么只有一个问题:IaC做得还不够。

IaC的问题在于必须编写各种程序。然后,必须像任何其他程序一样对这些程序进行测试、管理和版本控制——这意味着技术债务可能会像任何其他软件一样蔓延。

幸运的是,云原生计算已经超越了IaC,其中每一步都比之前的一步有所改进。

与IaC相比,声明式方法减少了技术债务,因为没有太多的空间来使用快捷方式,但这些表示(通常出现在YAML文件或其他基于JSON的格式中)仍然非常像代码,尤其是对于复杂的动态基础设施配置。

GitOps在许多方面补充了基础设施配置的声明式方法,因为它采用声明式方法进行软件部署。GitOps通过为其流程提供更多结构而更进一步,而结构越多,技术债务蔓延的机会就越少。

基于意图的计算包含三个部分:

换句话说,基于意图的计算采用声明式配置方法和GitOps,并添加额外的结构,从本质上确保整个云原生环境随着时间的推移符合业务意图。

这样的合规性才是一把斩断技术债务这团乱麻的最好的快刀。

文章Can Cloud-Native Computing Eliminate Technical Debt?,作者:Jason Bloomberg

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

来源:51CTO内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯