简单说两句微服务拆分
上周六参加了魔窗组织的一个线上跨境茶话会Live的交流活动,主题是《微服务的挑战》,虽然另外两位嘉宾和我的背景各不相同,所在的企业的业务也完全不一样,但是聊到后面,大家的观点还是基本一致的。针对里面的环节,选取了“微服务拆分”这个小议题,做了一个小结,谈谈个人的一点看法。
上周六参加了魔窗组织的一个线上跨境茶话会Live的交流活动,主题是《微服务的挑战》,虽然另外两位嘉宾和我的背景各不相同,所在的企业的业务也完全不一样,但是聊到后面,大家的观点还是基本一致的。针对里面的环节,选取了“微服务拆分”这个小议题,做了一个小结,谈谈个人的一点看法。
我们正在书写、即将面对、正在面对遗留系统。在与遗留系统的相爱相杀中,需要我们基于项目目标和现状、结合过往经验、经过剪裁和取舍,才能迎面不断出现的挑战。
数据库重构和代码重构有相似之处,也有不同之处。相似之处在于修改的过程中基本的思路是一致的,测试->修改->测试,小步快跑,反复迭代。不同之处在于拆库还依赖于硬件的基础设施,这就更要求测试环境尽量去模拟生产环境。
我们的项目整体来看算得上一个比较大型的项目,整个项目规划完成后有 17 条业务线。但是在刚起项目的时候由于种种原因并没有考虑周全,将项目当成一个普通的前端项目来解决,在第一期项目结束,第一条业务上线后,我们紧接着开始了第二和第三条业务线的开发,紧接着我们就遇到了一些问题.....
微服务拆分是微服务架构绕不过的话题,随着架构演进,在迭代开发中拆分微服务有时非常必要,微服务拆分不仅仅是一项技术层面的重构,首先要选择的合适的时机,另外在拆分前一定要理清业务现状,制定好拆分的基本原则,以指导后续拆分的过程。
对于服务拆分的逻辑来说,是先设计高内聚低耦合的领域模型,再实现相应的分布式系统。服务的划分有一些基本的方法和原则,通过这些方法能让微服务划分更有操作性。最终在微服务落地实施时也能按图索骥,无论是对遗留系统改造还是全新系统的架构都能游刃有余。
随着业务的复杂性增大、系统吞吐量增长,所有功能统一部署难度加大,各个功能模块相互影响,使系统变的笨重且脆弱;因此需要对业务进行拆分、对系统进行解耦、对系统内部架构升级,来提升系统容量及健壮性。