微服务实践00--微服务方法论02--服务划分规则0-介绍

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 微服务实践00--微服务方法论02--服务划分规则0-介绍

微服务实践目录,可以参见连接。

背景

现在微服务比较流程,那么对于微服务的拆分方法也比较让人困惑。本文从不同的角度切入后以系统的、全面的、统一的方式为各位介绍服务拆分的问题。

问题定义

  • 服务划分具体的问题在哪里?

    • 服务划分是对于具体技术的选择?

是选择使用纵向切割的方式,还是使用横向切割的方式将业务切割开。这个切割方式是不是有效,直接对于业务切割是否能够满足其他方面的要求。都是需要考虑的。

  • 还是在实现过程中遇到的服务聚合的问题?

很多人对于OO的理解都没有深入就开始抽象服务,这些人对于SOLID的追求,还是对于KISS,DRY的追求?在追逐这些的同时反模式的考量在哪里?

  • 还是在架构层面管理可用、可靠?

架构层面的要求不止是可用、可靠。还有对于安全,对于可扩展性的要求。对于服务划分这个任务是否需要满足?

  • 还是在于对业务模型的确认?

对于业务模型的验证是需要越快越好的。我们是否可以在服务拆分的过程中就将业务模型验证了?

  • 还是在于业务团队之间的合作是否有效?

团队之间是否会产生相互推诿的问题,是否是因为工作责任未定义明确。根据康威定律这是在所难免的,出现这样的问题要不修改组织结构,要不修改技术架构。

  • 新业务加入的是否怎样拆分?

对于新业务加入是使用流程的方式加入?还是使用业务聚合的方式加入?还是使用其他的方式加入?在我们整体的服务拆分策略里都是需要考虑的。

  • 还是在于企业的发展规划?

企业需要发展,企业需要降低成本,企业需要加快发展速度,企业需要吸引更多的客户。

  • 问题需要全面、统一的看待

    从上面可以看到服务拆分并不是一个问题,而是一个复杂的领域。这个领域内需要通盘考虑的问题比较多,所以就会涉及到不同层面的划分方法。并且这里还会涉及到静态划分规则和动态划分规则的问题。所以,这里先将问题分类,在针对问题做解决域的考虑。

    • 静态划分解决方案

      • 公司战略层面
      • 业务管理层面
      • 技术架构层面
      • 具体实现层面
    • 动态划分解决方案
      微服务在演进过程中会遇到的问题,以及解决他们的办法。

问题解决

在一个业务是否应该放在某一个特定的服务上

  • 几条大原则:

    • 解决问题的三种办法:抽象,分解,知识。
    • 全局、系统的考虑问题。

站在全局的层面思考与解决问题。

  • 服务中心一定是不断发展的。

随着业务的不断发展,服务中心会不断的演进。技术架构设计不是一劳永逸的。

  • 服务中心中的服务形态多样性。

成为业务的服务,成为工具的服务,成为数据的服务等。

  • 服务中心可以演变为服务群。

一个服务可以逐渐的演变为一个独立的业务形态,独立的业务群。

  • 静态划分解决方案

    • 公司战略层面

每一个服务都是一种能力或多种能力的提供,可以赋能给更前端的应用系统。使用大中台的概念控制公司的战略层面的划分规则。使用这样的结构固化企业的核心业务,使其真正的成为企业的核心。并为创新提供可能。并使用最技术的层面去解决与竞品之间竞争的问题。

公司的战略划分

  • 业务管理层面

企业的业务是经过多个层次,逐渐的进行流转的。所以,一个业务可以看成是一个业务流。对于这个业务流中所涉及到的服务为我们服务体系中的服务。而不是某一个业务流就是我们中台,前台,后台中的服务。下图中是阿里体系中的业务流程。这些业务流程设计到纵向的内容就可以拆分成一个个独立的服务。
业务流程

业务的组织形式辐射的形式发散出去。使用业务模型的方法去建立业务层面的服务拆分。针对业务域中的角色,功能进行拆分。在业务规划层面使用ToGaf的架构设计方法AMD去完成企业数字化的设计。
业务划分

  • 技术架构层面

很多人认为微服务拆分就是技术的事情。其实在这个过程中上下游的工作形式,工作方法都与技术服务的拆分工作密切相关。在技术层面使用微服务的4个设计原则和19个解决方案+DDD+架构模式+技术考量等等组合成为技术架构层面的拆分规则。

四个设计原则
服务划分策略

  • 具体实现层面

在具体的实现层面需要考虑的就是服务是否可以达到数据一致性原则,CAP原则,BASE原则。

  • 动态划分解决方案

    演进的过程与决策的过程。服务中心是需要业务不断的滋养才可以形成。但是需要定义规则进行相关的设计与实现。在动态划分的方面是需要有决策组织进行帮助决策的。例如在一个新的业务线加入到平台中时,需要有决策组去决策是否可以把新业务线加入到平台中。

精益产品

 另外一方面是针对遗留系统的改造。对于遗留系统的改造部分可以参见[微服务架构与实践 第二版](https://book.douban.com/subject/33407855/)中的说明进行。

总结

CMMI5
TOGAF Version 9.1
企业IT架构转型之道 阿里巴巴中台战略思想与架构实战
微服务架构与实践 第二版

目录
相关文章
|
28天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
2月前
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
70 1
|
15天前
|
NoSQL 前端开发 测试技术
👀探秘微服务:从零开启网关 SSO 服务搭建之旅
单点登录(Single Sign-On,简称SSO)是一种认证机制,它允许用户只需一次登录就可以访问多个应用程序或系统。本文结合网关和SaToken快速搭建可用的Session管理服务。
64 8
|
2月前
|
弹性计算 持续交付 API
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。
|
30天前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
30天前
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
55 3
|
1月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
122 5
|
28天前
|
消息中间件 运维 安全
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的灵活性和可扩展性,成为众多企业重构后端系统的首选方案。本文将深入探讨微服务的核心概念、设计原则、关键技术选型及在实际项目实施过程中面临的挑战与解决方案,旨在为开发者提供一套实用的微服务架构落地指南。我们将从理论框架出发,逐步深入至技术细节,最终通过案例分析,揭示如何在复杂业务场景下有效应用微服务,提升系统的整体性能与稳定性。 ####
39 1
|
30天前
|
监控 安全 持续交付
构建高效微服务架构:策略与实践####
在数字化转型的浪潮中,微服务架构凭借其高度解耦、灵活扩展和易于维护的特点,成为现代企业应用开发的首选。本文深入探讨了构建高效微服务架构的关键策略与实战经验,从服务拆分的艺术到通信机制的选择,再到容器化部署与持续集成/持续部署(CI/CD)的实践,旨在为开发者提供一套全面的微服务设计与实现指南。通过具体案例分析,揭示如何避免常见陷阱,优化系统性能,确保系统的高可用性与可扩展性,助力企业在复杂多变的市场环境中保持竞争力。 ####
42 2
|
30天前
|
消息中间件 运维 API
后端开发中的微服务架构实践####
本文深入探讨了微服务架构在后端开发中的应用,从其定义、优势到实际案例分析,全面解析了如何有效实施微服务以提升系统的可维护性、扩展性和灵活性。不同于传统摘要的概述性质,本摘要旨在激发读者对微服务架构深度探索的兴趣,通过提出问题而非直接给出答案的方式,引导读者深入
45 1