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

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 微服务实践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架构转型之道 阿里巴巴中台战略思想与架构实战
微服务架构与实践 第二版

目录
相关文章
|
4天前
|
设计模式 API 开发者
深入浅出微服务架构:从理论到实践
在软件开发领域,微服务架构已经成为一种流行的设计模式。它承诺能够带来更好的模块化、可扩展性和敏捷性。然而,将一个传统的单体应用拆分成多个微服务并非易事。本文旨在通过实际案例分析,帮助读者理解微服务的核心概念,以及如何在实际项目中实施微服务架构。我们将一起探讨微服务的设计原则、技术选型和面临的挑战,并分享一些成功实施的策略。
|
7天前
|
Kubernetes Cloud Native 持续交付
云原生技术浪潮下的微服务架构实践
在数字化转型的今天,云原生技术成为推动企业IT革新的关键力量。本文将通过浅显易懂的语言和实际案例,带领读者了解云原生的核心概念、微服务架构的设计原则以及如何在云平台上高效部署和管理微服务。我们将从基础概念出发,逐步深入到微服务的生命周期管理,探讨如何在云原生生态中实现快速迭代和持续交付。无论你是云原生技术的初学者,还是希望深化理解的开发者,这篇文章都将为你提供有价值的指导和思考。
|
1天前
|
消息中间件 运维 监控
探索微服务架构:从理论到实践
【8月更文挑战第19天】 在数字化时代,微服务架构已成为软件开发的新常态。本文通过深入浅出的方式,介绍了微服务的基本概念、设计原则和实践案例,旨在帮助读者从宏观上理解微服务的设计理念,并掌握将其应用于实际项目中的方法。我们将一起走进微服务的世界,解锁其在现代软件工程中的奥秘。
|
2天前
|
消息中间件 Java API
解密微服务架构:如何在Java中实现高效的服务通信
微服务架构作为一种现代软件开发模式,通过将应用拆分成多个独立的服务,提升了系统的灵活性和扩展性。然而,实现微服务之间的高效通信仍然是许多开发者面临的挑战。本文将探讨在Java环境中实现微服务架构时,如何使用不同的通信机制来优化服务之间的交互,包括同步和异步通信的方法,以及相关的最佳实践。
|
6天前
|
消息中间件 运维 监控
深入浅出微服务架构:从理论到实践
微服务架构,一种将复杂应用拆分成小型、独立服务的设计理念,近年来在软件开发领域大放异彩。它以灵活性、可维护性和可扩展性著称,但同时也带来了一系列挑战,如服务间通信、数据一致性和运维复杂性等。本文旨在通过浅显易懂的语言和实际案例,带领读者深入理解微服务架构的核心概念,掌握其设计原则,并了解如何在实际项目中有效运用。我们将从基础讲起,逐步深入,让初学者能够快速上手,同时为有经验的开发者提供一些高级技巧和最佳实践。
16 4
|
8天前
|
运维 监控 Devops
深入浅出:微服务架构的设计与实践
在软件开发的海洋中,微服务架构如同一艘灵活的快艇,它以小而精的服务单元、松耦合的设计哲学和独立部署的能力,为复杂系统的开发和维护提供了新的解决方案。本文将带你领略微服务的风帆,从理论的灯塔到实践的海岸,共同探索微服务架构的设计原则、技术选型、团队协作模式以及应对常见问题的策略,让你的系统设计之旅充满智慧与乐趣。
22 5
|
6天前
|
监控 API 数据库
深入浅出:微服务架构的设计与实践
微服务架构,作为现代软件工程的一颗璀璨明星,它以小而美、独立部署和易于扩展的特点,正逐步改变着后端开发的面貌。本文将通过浅显易懂的语言,带领读者走进微服务的世界,从概念理解到设计原则,再到实战案例,一步步揭示微服务架构的魅力所在。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和思考。
17 2
|
10天前
|
运维 监控 持续交付
探索微服务架构的演变与实践
在数字化浪潮推动下,微服务架构如同细胞分裂般不断演化,孕育出更灵活、高效的系统设计哲学。本文将带你穿梭于微服务的发展历程,解锁其背后的技术密码,并分享构建和部署微服务的实践智慧。从理论到实战,我们将一同见证微服务如何重塑现代应用开发的面貌。
21 2
|
10天前
|
Kubernetes 监控 Docker
深入浅出:微服务架构的设计与实践
在数字化转型的浪潮中,微服务架构以其灵活性和可维护性成为众多企业的首选。本文将通过浅显易懂的语言,带领读者一探微服务的世界,从基础概念到实战部署,解锁微服务架构的设计与实践之门。
23 1
|
11天前
|
Kubernetes Java API
深入浅出微服务架构:从理论到实践
在软件开发领域,微服务架构以其灵活性和可扩展性成为现代应用设计的热门选择。本文将通过浅显易懂的语言解释微服务的核心概念,并结合案例探讨如何在实际项目中实施微服务架构。我们将从微服务的定义出发,逐步深入到设计原则、关键技术和实战应用,为读者提供一条清晰的学习路径。无论你是初学者还是有一定经验的开发者,都能从中获益。