比较
冰淇淋策略 | 乐高策略 | 核按钮策略 | |
---|---|---|---|
介绍 | 逐步过渡,过程渐进 | 旧应用不变,新应用改造 | 全部重写 |
优点 | 可以低风险逐步迁移 | 旧应用无须过多改造 | 可以抛开过去、重新考量 |
缺点 | 时间周期长 | 原有应用有问题,风险大 | 极高人力成本维护两个应用 |
冰激凌策略
介绍
通过将单体应用的不同组件分解到单独的服务中,从而从单体应用逐步过渡到微服务。这个过程是渐进的,有时会同时存在单体应用和微服务。
优点
是可以在不影响服务正常运行和终端用户体验的情况下,以较低的风险逐步迁移到微服务
缺点
需要比较长的执行周期
乐高策略
介绍
适用于那些因为老的单体应用过大或者过复杂而无法重构的组织。
具体做法是老的应用保持原样,将新的功能扩建为微服务。实际上,这并不能解决现有单体应用的任何问题,但是可以解决产品末来的扩展问题。使用该策略时,架构师需要建立混合架构体系,以便同时兼容单体应用和微服务。
优点
该策略的优点是无须对原来的单体应用做过多改造,而且构建新的微服务应用很快。
缺点
是原来的应用还存在问题,需要创建新的API来支持面向微服务的功能。乐高策略有助于在大型项目重构中换取一些时间,但同时伴有很大的风险。
核按钮策略
介绍
这种策略比较少用,它是指将整个单体应用全部重写为微服务。新功能会在老的单体应用上执行,也会在微服务架构中同步加入。
优点
开发团队可以抛开过去,整体考量架构方案,从头开始有效地重写应用程序。
缺点
一切都要从头开始,并且需要极高的人力成本去同时维护两个应用。