其他
中台战略:业务中台的8个设计原则
The following article is from 技术琐话 Author 陈新宇 罗家鹰 等
文章摘自:机械工业出版社《中台战略:中台建设与数字商业》 2019年9月出版
01 服务松耦合原则
02 服务依赖原则
价值导向:确保业务中心的服务都与企业的商业理想保持一致,相关联。 简捷为美:业务逻辑和流程避免复杂化。 领域洞察:紧贴业务的核心目的,从业务原则指导业务逻辑的设计。
高内聚:同一类服务应归在一起。 低耦合:服务间保持最小联系。 能力与接口:业务流程和业务逻辑的操作都作为中心服务实现,而提供给外部调用的接口数据模型都会转化为服务。 识别通用性:识别出每个通用能力的可扩展的类型,从设计上支持它不断扩展,并在接口定义上满足其不断升级的需求。
能力与接口:分离接口实体与能力实体。 接口实体与限定元素:将接口实体核心元素与接口操作的限定元素分离。 接口实体的层次结构:建设接口实体和上下文限定元素的层次结构。
捆绑依赖:
避免在无关的组件技术之间引入新的依赖。
延迟绑定:
在使用点才捆绑依赖关系。
03 服务设计原则
04 服务命名原则
05 服务颗粒度原则
06 服务的无状态性原则
07 服务操作设计原则
重要的服务不能依赖非重要服务。 任何服务调用都要设定超时时间。 任何服务的调用结果只有三种可能:成功、失败或未知。 能异步调用的服务尽量使用异步调用,从而提高系统响应速度,降低系统之间的耦合性。 系统拆分时,粒度大小以一个系统3~8个开发人员维护为宜。 系统拆分时,往往先拆分数据服务层,因为数据服务层通常是复用性高的一层。 服务的实现不能有单点。 线上遵循fast-fail原则,避免服务调用时间过长,导致性能下降。fast-fail原则是只要发生错误,则调用立即返回。 需要对高压场景下的服务调用链路进行特殊处理,可采用将链路缩短、预热等方式。 服务设计过程中,要避免同类服务由不同服务单元提供。 服务要做到向后兼容,如果无法做到,则需要采取管控机制确保服务消费者升级服务。 服务化架构的变化要使组织的架构能适应这种变化。 在部署服务单元时,要将读服务和写服务分离,将核心服务和非核心服务分离,以保证整个服务单元的稳定性和可靠性。 服务化时,要同时考虑安全。 静态资源也可以实现服务化,实现静态资源与动态资源分离,从而提高性能。 通过在外层系统埋点,可以实现面向终端用户服务的精细管理,比如服务的容量、服务的性能等。 需要将每个业务领域的通用规则沉淀成服务。
08 服务约束原则
上可依赖下; 下不可依赖上; 上可跨级依赖下; 平级可允许单向调用,坚决禁止循环依赖; 高级别不可依赖低级别; 简单就是美;
活动推荐:
21CTO学院PHP全栈工程师训练营第六届(秋季班)热招中
21CTO学院PHP全栈开发训练营正在招生,由21CTO创始人洛逸以及技术大牛授课,课程以程序员学习曲线为出发点,以高真实的项目实践为核心,以学员能够高薪就业为目标。此次招生名额有限,报名就有机会进入一线互联网公司。
详情请您点击此处>>