来源:网络
导读:微服务在最近几年大行其道,很多公司的研发人员都在考虑微服务架构,或者在做微服务的路上,拆分服务是个很热的话题。那么我们应该按照什么原则将现有的业务进行拆分?是否拆分得越细就越好?本文将研究把应用程序分解为服务的策略和指南、分解的障碍以及如何解决它们。
1.服务拆分策略
1.1根据业务能力进行服务拆分和定义
创建微服务架构的策略之一就是采用业务能力进行服务拆分。业务能力是一个来自于业 务架构建模的术语。业务能力是指一些能够为公司(或组织)产生价值的商业活动。特定业务的业务能力取决于这个业务的类型。例如,保险公司业务能力通常包括承保、理赔管理、 账务和合规等。在线商店的业务能力包括:订单管理、库存管理和发货,等等。
识别业务能力
组织的业务能力通常是指这个组织的业务是做什么,它们通常都是稳定的。与之相反,组织采用何种方式来实现它的业务能力,是随着时间不断变化的。这一个组织有哪些业务能力,是通过对组织的目标、结构和商业流程的分析得来的。每一 个业务能力都可以被认为是一个服务,除非它是面向业务的而非面向技术的。业务能力规范 包含多项元素,比如输入和输出、服务等级协议(SLA)。例如,保险承保能力的输入来自客 户的应用程序,这个业务能力的输出是完成核保并报价。
业务能力通常集中在特定的业务对象上。例如,理赔业务对象是理赔管理功能的重点。 能力通常可以分解为子能力。例如,理赔管理能力具有多个子能力,包括理赔信息管理、理赔审核和理赔付款管理。
把 FTGO 的业务能力逐一列出来似乎也并不太困难,如下所示。
■ 供应商管理。
● Courier management:送餐员相关信息管理;
● Restaurant information management:餐馆菜单和其他信息管理,例如营
业地址和时间。
■ 用户管理:用户有关信息的管理。
■ 订单获取和履行。
● Order management:让用户可以创建和管理订单。
● Restaurant order management:让餐馆可以管理订单的生产过程。
● 物流。
● Courier availability management:管理送餐员的实时状态。
● Delivery m