澳大利亚昆士兰海岸的雨林的自然奇观之一是巨大的无花果(StranglerFig)。这种树在树枝上播种,并逐渐沿着树下生长,直到它们扎根在土壤中。多年来,他们成长为梦幻般的美丽的形状,同时扼杀并杀死他们的主干树。
我们在新系统设计的时候如果能秉承这种理念,让我们的系统在未来很容易被一个新生的系统绞杀,我们需要在我们的系统中埋下新系统的种子,这样可以实现新系统自由的生长并在合适的时间将老系统绞杀。
现实情况是替换一个复杂系统是一项复杂而艰巨的系统工程,通常需要逐步去做,因此存在很长的一段时间新老系统并存的状况,对于使用者和维护者来说,新老系统并存都可能造成困扰,尤其是使用者,我们不能因为在替换新的系统就涌向到使用者。因此我们需要用新的应用程序和服务逐步替换特定的功能,我们可以借鉴无花果树的绞杀理念,创建一个外层来拦截请求前往后端旧版系统。 外层可将这些请求路由到旧版应用程序或新服务, 现有功能逐步迁移到新系统,使用者可继续使用相同的接口,他们并不知道迁移已发生。 随着时间推移,所有功能迁移到了新系统,旧版系统没有存在的必要了就可以安全停用旧版系统。