知识卡片
微服务陷阱二:"微"字迷思导致团队规模与服务数量不匹配
内容
微服务名字里的”微”字本身就是一个容易踩的陷阱——很多团队一看到”微”,就下意识觉得必须把服务拆得越细越好,结果出现5~6人的小团队硬是拆出30多个微服务,平均每人要维护5个以上的服务。这种和团队规模严重不匹配的拆分方式,会实实在在拖慢团队效率:一个原本简单的需求,因为业务逻辑被拆散在多个微服务里,落地时要涉及好几个微服务、光服务间接口就要设计6~7个,开发、测试、部署每一步都要工程师不停地在不同服务之间来回切换。具体到各个角色:开发工程师要设计多套接口、打开多个工程项目、调试时要同时部署多个程序、提测时要打多个包;测试工程师要部署多套环境、准备多个微服务各自的数据、逐个测试多个接口;运维工程师每次上线都要操作多个微服务,而且这些微服务之间往往还存在相互依赖关系,上线顺序稍有不慎就可能出问题。这个陷阱的本质是:微服务的”细粒度拆分”不是目的本身,而是要服务于团队和业务的实际需要——脱离团队规模去追求”拆得越细越微服务”,只会把本该简单的协作变成处处都要多跑一趟的繁琐流程。
参考来源
- 位置:《从零开始学架构》第34讲《深入理解微服务架构:银弹 or 焦油坑?》"微服务的陷阱"之"服务数量太多,团队效率急剧下降"(源文件:_epub-src/OEBPS/text00003.html)
- 结论依据:原文说明"微服务的'微'字,本身就是一个陷阱……有的团队人员规模是 5 ~ 6 个人,然而却拆分出 30 多个微服务,平均每个人要维护 5 个以上的微服务……一个简单的需求开发就需要涉及多个微服务,光是微服务之间的接口就有 6 ~ 7 个",并分别说明开发、测试、运维工程师各自的负担,直接支撑本卡片结论。
- 原始内容:微服务的"微"字,本身就是一个陷阱……有的团队人员规模是 5 ~ 6 个人,然而却拆分出 30 多个微服务……一个简单的需求开发就需要涉及多个微服务,光是微服务之间的接口就有 6 ~ 7 个,无论是设计、开发、测试、部署,都需要工程师不停地在不同的服务间切换。