遗留系统改造方法

绿地与棕地

绿地(gromfied)和棕地(browmfied) 这两个术语在项目执行过程中经常被提到,广泛应用于
IT、建筑、制造等行业。它们和项目开发相关,具体的含义如下。

  • 绿地:绿地项目指开装一个全新的应用程序,我们可以自由选择架构、平台和所有其他技术、整个开发过程从头开始,需要分析需求,指定技术方案,并逐一实现。
  • 棕地:棕地项目是指已经做了一些工作的项目。对于软件行业米说,更新和改造现有的应用都可以被看作棕地项目。我们需要先分析遗留系统,可能会从代码审计开始,充分了解外是上的实现细节。在工业领域,棕地通常意味着被废弃和污染,它的颜色很形象地体现了这种特性。软件行业的标地项目倒不至于这么严重,但对于接手的开发者来说确实要比开发绿地项目面临更多的限制。

绿地项目在技术选理和设计方案上几乎没有限制,不会受到遗留系统技术栈的束缚,不需卖与遗留代码集成,在实现层面上更加自由。典型的绿地软件项目一般有如下两种。

  • 开发一个全新的应用程序,实现全新的业务。
  • 用一种新语言重写一个旧的系统,只实现原有的业务逻辑,但不使用任何旧代码。

开发绿地项目听上去很有优势,也是开发者普遍喜欢的一种方式。毕竟,在一张白纸上作面出修政别人的作品要轻松得多。不过这种项目的缺点也比较明显,就是投人较大,成本较高,落也时间更长。需要考虑的因素包括团队、项目管理、硬件、平台、基础设施等,不仅只有开发过程本身项目的范围也需要仔细规划,与业务需求保持一致,并避免项目方向出现错误。因此,如果你使同队受限于成本和时间,希望快速迁移到新的技术栈,选择绿地方式并不适合。


棕地项目通常从遗留代码中获得便利,降低了开发新项目所花费的成本。然而,在一定程度上它会阻碍开发者的设计灵活性。很多项目由于设计糟糕、实现混乱,或者执行不力等原因被放弃、开发者甚至不愿意再动一行其中的代码,更希望重新开始。但客户基于成本和时间的考虑更愿意会试让它们复活而不是推翻重来。当然,也不是所有的棕地项目都一无是处,只要代码结构良好、不受污染,项目易于维护,富有经验的开发团队依然可以很好地接手棕地项目。典型的棕地项目一你具有以下特点。

  • 将新特性整合到现有系统。
  • 修改现有代码以满足业务的变更。
  • 优化现有系统的性能,提升应用程序的质量属性。

对于遗留系统的改造,团队需要根据自身情况在绿地和棕地之间做出选择。如果时间和成本容许,希望彻底抛弃旧技术债务并拥抱新的技术栈,可以直接设计绿地项目。对于资源有限,希望在不影响线上业务的情况下逐渐过波到新技术栈的场景,选择棕地方式更合理。


绞杀者模式

绞杀者模式(Stranger Pattern)是一种系统重构方式,它的名称来源于马丁福勒在澳大利亚雨林看到的一种名为绞杀无花果(stranger fig)的植物。这种植物会缠绕在宿主树上吸收养料,然后慢慢地向下生长,直到在土壤中生根,最终杀死宿主树使其成为一个空壳。

在软件开发行业,这成了一种重写系统的方式,即围绕旧系统逐步创建一个新系统,让它慢慢成长,直到旧系统被完全替代。

绞杀者模式的优势就在于,它是一个渐进的过程,容许新旧系统共存,给予新系统成长的时间。它的另一个优点是能够降低风险。一旦新系统无法工作,你可以迅速将流量切换回旧系统。这听上去和蓝绿部署很相似。我们团队基于绞杀者模式逐步将单体应用改造成了微服务,平滑地迁移到了新技术栈。 

猜你喜欢

转载自blog.csdn.net/summer_fish/article/details/132804091
今日推荐