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

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

目录
相关文章
|
13天前
|
API 持续交付 开发者
后端开发中的微服务架构实践与挑战
在数字化时代,后端服务的构建和管理变得日益复杂。本文将深入探讨微服务架构在后端开发中的应用,分析其在提高系统可扩展性、灵活性和可维护性方面的优势,同时讨论实施微服务时面临的挑战,如服务拆分、数据一致性和部署复杂性等。通过实际案例分析,本文旨在为开发者提供微服务架构的实用见解和解决策略。
|
14天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
3天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
20 5
|
6天前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
22天前
|
Kubernetes 负载均衡 Docker
构建高效后端服务:微服务架构的探索与实践
【10月更文挑战第20天】 在数字化时代,后端服务的构建对于任何在线业务的成功至关重要。本文将深入探讨微服务架构的概念、优势以及如何在实际项目中有效实施。我们将从微服务的基本理念出发,逐步解析其在提高系统可维护性、扩展性和敏捷性方面的作用。通过实际案例分析,揭示微服务架构在不同场景下的应用策略和最佳实践。无论你是后端开发新手还是经验丰富的工程师,本文都将为你提供宝贵的见解和实用的指导。
|
4天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####
|
6天前
|
Kubernetes Cloud Native Docker
云原生技术探索:容器化与微服务的实践之道
【10月更文挑战第36天】在云计算的浪潮中,云原生技术以其高效、灵活和可靠的特性成为企业数字化转型的重要推手。本文将深入探讨云原生的两大核心概念——容器化与微服务架构,并通过实际代码示例,揭示如何通过Docker和Kubernetes实现服务的快速部署和管理。我们将从基础概念入手,逐步引导读者理解并实践云原生技术,最终掌握如何构建和维护一个高效、可扩展的云原生应用。
|
7天前
|
监控 API 持续交付
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势、面临的挑战以及最佳实践策略。不同于传统的单体应用,微服务通过细粒度的服务划分促进了系统的可维护性、可扩展性和敏捷性。文章首先概述了微服务的核心概念及其与传统架构的区别,随后详细阐述了构建微服务时需考虑的关键技术要素,如服务发现、API网关、容器化部署及持续集成/持续部署(CI/CD)流程。此外,还讨论了微服务实施过程中常见的问题,如服务间通信复杂度增加、数据一致性保障等,并提供了相应的解决方案和优化建议。总之,本文旨在为开发者提供一份关于如何在现代后端系统中有效采用和优化微服务架构的实用指南。 ####
|
9天前
|
消息中间件 设计模式 运维
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过实际案例分析,揭示了其在提升系统灵活性、可扩展性及促进技术创新方面的显著优势。同时,文章也未回避微服务实施过程中面临的挑战,如服务间通信复杂性、数据一致性保障及部署运维难度增加等问题,并基于实践经验提出了一系列应对策略,为开发者在构建高效、稳定的微服务平台时提供有价值的参考。 ####
|
10天前
|
消息中间件 监控 数据管理
后端开发中的微服务架构实践与挑战####
【10月更文挑战第29天】 在当今快速发展的软件开发领域,微服务架构已成为构建高效、可扩展和易于维护应用程序的首选方案。本文探讨了微服务架构的核心概念、实施策略以及面临的主要挑战,旨在为开发者提供一份实用的指南,帮助他们在项目中成功应用微服务架构。通过具体案例分析,我们将深入了解如何克服服务划分、数据管理、通信机制等关键问题,以实现系统的高可用性和高性能。 --- ###
33 2