# 遗留系统的架构改造

遗留系统在快速变化的技术环境中,会变得过时且难以维护,遗留系统的界定不是只看它们的年代,有时还要看它们底层架构的技术是否导致他们无法满足日益增长的业务需求。对遗留系统进行重新设计和现代化改造,可以帮助组织变得更加敏捷和创新,还可以优化成本和业绩。

# 遗留系统的改造策略

一个组织可能存在多个遗留系统,在现代化的改造方法中,首先要进行系统评估,才能更好的了解系统,进行评估时,需要关注一下几个方面:

  • 技术评估:我们需要了解现有系统所使用的技术栈,如果当前使用的技术完全过时,并且缺乏供应商的支持,那就可能需要对其进行完全替换。如果该技术有更新的版本,那么可以考虑升级,较新的版本通常都会向下兼容。
  • 架构评估:我们需要对原有架构有一个整体的了解,从可伸缩性、可用性、性能和安全性等方面来审视架构,从业务的角度出发评估架构还有哪些需要提高的地方。
  • 代码和依赖性评估:遗留系统可能各种模块之间相互耦合,使得系统非常复杂,某些模块中看似没有使用的代码,如果没有经过仔细评估就被修改,可能会影响到其他模块。

在对系统进行评估后,我们要了解现有架构模式的局限性,根据我们的技术栈评估迁移工具,启动概念验证(Proof Of Concept,POC)来识别其中的差距,现代化的改造方案如下:

  • 架构驱动:架构调整可以采用面向服务的架构模式,这会为开发团队提供更多创新的灵活性。先开始实现最关键的功能,并建立POC来确定差距和所需努力。
  • 系统重建:选择恰当的技术来创建系统,如果需要长期规划,可以采用分阶段构建,最后升级数据库的方式来完成新旧替换。系统重建的过程中需要建立一种机制,让遗留模块和升级模块同时存在,并能以混合的方式进行通信。
  • 迁移和增强:如果现有系统运行的比较好,但存在硬件和成本限制,可以采取迁移和小范围增强的方法,我们可以使用lift and shift将工作负载到云上,以提高基础设施的可用性,优化成本。除此之外,云供应商可能会提供一些开箱即用的工具,来帮助我们增强自动化的水平。

AWS等云供应商提供了许多开箱即用的服务,可以帮助你实现系统的i现代化改造。可以采取无服务器的方式,使用AWSLambda函数和Amazon API网关构建微服务,并使用Amazon DynamoDB作为后端数据库。下图是通过云迁移来实现遗留系统优化的流程:

如果应用被企业广泛使用,并正在产生收入,我们可以以最小化的改动来进行优化,如果不想对现有应用进行任何改动来维持业务,只想整体迁移到云上以节约和优化成本,那就可以将遗留应用重新托管到云上,如果遗留应用是可以替换的,那么我们也可以重新采购或开发产品,然后将遗留应用停用。

遗留系统改造需要确保适当的文档支持,记录代码标准,可以让每个人都遵循,这有助于保持新系统的健康。将架构文档作为工件,并让其随着技术趋势变化而不断更新有助于帮助我们针对新员工进行培训。