Categories
程式開發

银行祖传系统重构实例:创立12年,只支持Python 2,跑着500多个应用程序


银行祖传系统重构实例:创立12年,只支持Python 2,跑着500多个应用程序 1

提到遗留系统,你会想到什么?

  • 还在使用Java 5的路过
  • JDK 1.6的我不说啥了
  • 很多坑
  • 难维护
  • 从零开始(重写)
  • 盼着IE什么时候不再能使用

遗留系统

对于遗留系统,程序员们并不陌生。据维基百科介绍,遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序。

张逸认为,遗留系统首先是一个还在运行和使用,但已步入软件生命周期衰老期的软件系统。它符合所谓的“奶牛规则”:奶牛逐渐衰老,最终无奶可挤,然而与此同时,饲养成本却在上升。这意味着遗留系统会逐渐随着时间的推移,维护成本会不断地增加。

在《从300万行到50万行代码,遗留系统的微服务改造》一文中,技术琐话阐述了遗留系统的一些共同特征。

  • 庞大的单体应用:遗留系统大多是多年积累下来的“巨无霸”系统,以单体应用形式呈现。
  • 难于修改:多年的代码累积过程中疏于重构,导致代码的可读性和可扩展性较差。
  • 维护成本很高:在庞大的代码中寻找 bug 的根本原因可能会比较困难。此外,运维也是难题,比如在本章开头提到的 Perl 系统,没有 APM 工具支持它的监控。
  • 学习成本高昂:由于设计陈旧或技术过时,可能了解遗留系统技术和业务的人已经很难找到。
  • 缺乏质量保障:由于过去缺少投入,许多功能基本上没有自动化测试来保障质量。

原文链接:【https://www.infoq.cn/article/ULZyRNAiJYO5e56rYJsQ】。未经作者许可,禁止转载。