架构训练营模块六作业
【背景】
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务基础设施选型。
【作业要求】
需要明确服务拆分思路,并且将拆分后的系统架构图画出来;
需要明确微服务基础设施选型思路,并选择一个微服务框架。
【提示】
需要应用三个火枪手原则;
需要选择拆分方式;
需要选择微服务框架的模式。
微服务架构设计
服务拆分
由于是创业团队,从 0 开始,微服务的拆分方式可以直接从业务开始拆分,而电商业务的业务领域已经有现成的模板,所以拆分粒度只需要和团队规模,技术背景相匹配就可以了。
目前电商领域业务一般划分为;订单中心,会员中心,库存中心,店铺中心,商品中心,财务中心
根据三个火枪手的原理,25 个后端,足够维护 6 个微服务。3*6=18,剩下 25-18=7 人,3 人搭建微服务基础设施(持续集成持续部署,分布式日志,调用链跟踪,监控中心,微服务网关,配置中心等),2 人开发通用支撑功能(权限,登录,流程引擎,分布式调度),2 人负责业务接入,和前端对接,设计 http 接口,整合多个微服务接口调用。
订单中心:3 人
会员中心:3 人
库存中心:3 人
店铺中心:3 人
商品中心:3 人
财务中心:3 人
微服务基础设施:2 人,持续集成持续部署,分布式日志中心,调用链跟踪,监控中心,微服务网关,配置中心等
通用支撑功能+综合服务:3 人,权限,登录,流程引擎,规则引擎,分布式调度
接入层:2 人。和前端对接,设计 http 接口,整合多个微服务接口调用
微服务选型
由于创业团队,项目前期规模用户量都不大,毫无疑问选择嵌入 sdk 的方式。没有特别需要 rpc 的要求,可以选择 springcloud 框架(目前也比较成熟)。对于微服务技术设施目前业界也有很多成熟的方案。
评论