作业:架构实战营模块 6
需求
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员
全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务
基础设施选型。
作业要求
需要明确服务拆分思路,并且将拆分后的系统架构图画出来;
需要明确微服务基础设施选型思路,并选择一个微服务框架;
用 1~2 页 PPT 即可。
需要应用
三个火枪手原则;
需要选择拆分方式;
需要选择微服务框架的模式。
作业
需求分析
根据需求内容,从 0 到 1 的小程序电商平台,必须的业务模块包括商品、订单、搜索、支付。还包括了后台管理系统(根据可能包括商家、运营两部分)。
微服务拆分方式
根据业务分析、以及业界电商的成熟方案,前期拆分无需过细,仅满足当前业务发展及需求即可。前期质量差异化并不凸显,则按照业务进行拆分即可。
可以划分为:用户、商品、库存、订单、搜索、支付、后台管理系统。
技术选型
微服务框架
考虑到后端开发语言主要为 Java,因此后端框架主要在 Spring Cloud 和 Dubbo 中选择。
基础设施
考虑到为新发展业务,必须的基础设施主要是:服务注册发现、路由。其他基础设施都可以随着业务发展逐渐搭建。
后端服务注册发现、路由可以采用业界常用的开源方案,例如 nacos,可以很容易和 dubbo 进行整合。
前后端接口路由,主要采用 nginx 进行负载均衡。
人员分配
前端人员分配:用户、商品、库存、订单、搜索、支付模块根据实际工作量分配,这里没有实现三个火枪手原则的主要原因是:
前端需求并不会很旺盛,且一般都会按照发布计划进行版本发布
基本很少有紧急需求情况出现,时间相对可控
技术栈相对统一,前端业务逻辑、代码量不会很庞大,即使负责同学不在,也可以由其他同学进行处理。
后端人员分配,需要参考火枪手原则,前期业务发展模式还未成型,采用一对一即可:
后端服务六个模块分别由 3 位负责,共 18 位。
基础设施由 7 位同学负责,可以分配到服务注册发现、路由、负载均衡三个模块。
评论