应用现代化:何时重写优于重构

F5生态系统 | 2020年9月08日

数字化转型带来的重大影响之一,是颠覆了应用开发。纵观历史,新架构引入应用开发后,通常需要数年时间才会加速发展并得到广泛采用。能够席卷整个行业的应用架构,最终往往会成为事实标准。20世纪90年代中后期,J2EE逐步成为开发三层Web应用的“企业标准”,正是这一趋势的体现。

如今,云原生架构似乎将持续发展并成为新的标准。这些基于容器的微服务架构正迅速成为各行业新开发项目的主流。大量此类应用在Kubernetes上部署和运行,而Kubernetes的蓬勃发展表明,这种新型应用架构将长期存在。我们的研究显示,受数字化转型推动,至少半数组织正在探索“新架构”。

对应用开发的影响

如今,这通常被理解为组织正在踏上“现代化”之旅。而我们(整个行业)谈及现代化时,往往使用非常笼统(且宽泛)的说法,仿佛组织只需挥动魔法棒,所有应用就都能基于这种新模式构建。

事实上,组织可以通过多种方式实现应用现代化,其中只有一部分(37%)采用重构方法。重构方法多种多样,较为常用的方法之一是红—绿—重构(Red Green Refactor)。此外,还可以选择预备性重构以及多种基于抽象的方案。大多数方法都以简化代码为基础。换言之,这些方法主要通过对应用进行影响较小的重写来实现现代化。

但有时,完全重写是实现现代化的适宜策略。通常,彻底重写现有旧版应用需要投入大量精力,即使是意志坚定的数字化转型倡导者也可能因此望而却步。但在某些情况下,这种做法可以显著节省成本。

以某联邦机构的应用组合现代化方法为例。根据转向敏捷方法的要求,该机构若要采用传统的瀑布式方法开发应用,必须获得特别许可。我从事编程时,瀑布式方法还是主流,所以没错,它确实已经很老了。该机构认为,最合适的起点是了解自身的应用组合,并合理评估每个应用的必要性。

在审查过程中,该机构发现,在约6,000个应用中,近200个执行着相同的基本资产管理任务。试想一下,如果这项基本业务功能需要变更,就必须修改全部200个应用。

这意味着开发人员和运维人员需要投入大量时间和精力,来开发、测试和部署同一项业务功能。

该机构决定推进现代化改造,用一个微服务取代全部200个应用。现在,整个机构都可以使用该微服务跟踪资产。该微服务采用敏捷方法开发,并在现代化环境中运行,可扩展以满足各项职能的需求,而这些职能此前都依赖各自专用的独立应用。

并非所有现代化工作都以重构为重点。从战略层面探索现代化对整个应用组合的意义,可以带来显著的业务优势。许多组织,尤其是已运营数十年的组织,都可能面临同样的应用组合问题:重复建设。组织重组、收购、合并和管理层变动都很容易造成应用重复。

将应用审计和合理化整合作为现代化战略的一部分,可让每个组织从中受益。组织可能会发现,现有应用多达数百个,但实际只需要其中一部分。这类战略有助于领导者为采用新架构开发全新应用提供充分依据,从而消除应用冗余及其带来的成本。

分享
标签: 2020

关于作者

Lori Mac Vittie
Lori Mac Vittie杰出工程师兼首席技术布道师 | F5

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。

Lori Mac Vittie 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。