如何拆分你的微服务架构?

微服务架构拆分 微服务架构是一种软件开发方式,将应用程序分解为一组小的、独立部署的服务。每个服务都围绕一个特定的业务功能构建,能够独立开发、部署和扩展。微服务通过轻量级的通信机制(通常是HTTP或消息队列)进行交互。按业务功能拆分是最常见的微服务拆分方法,将系统按照业务功能模块进行分割。按数据拆分是根据数据的归属和访问频率,将系统按数据进行分割。按团队拆分是根据开发团队的组织结构,将系统按团队进行分割。微服务架构的拆分是一个复杂而关键的过程,需要根据业务需求、数据模型和团队结构等多方面因素进行合理规划。 阅读详情

如今,市场环境纷繁复杂,瞬息万变,现代企业为了更好地生存,需要有极强的适应能力。快速而轻松地迎接改变,成为了一个优质企业的特征之一,同时企业还要求技术团队构建更科学的架构,搭建成本更低的平台,这就使得这些团队越来越倾向于使用微服务架构来应对以上要求。

微服务的做法有利于软件组件和数据的分散化,将一个整体分解成更小、更容易改变的部分,分散仅帮助团队加快工程进度,而不会牺牲系统的安全性。要想让这种架构工作得很好,需要改变工作方式。

微服务架构的设计,其实是为了使团队能够在执行工作的人之间分配决策权力,向更多成员直接推行决策权,允许他们以更自由的方式生产。微服务架构使用正确的话,将产生更好和更快的变化。但是如果你的架构错误,那么一系列坏的决定可能会降低转化率,甚至会损害你的业务。
这里写图片描述
我们讲决策权分配,即是说微服务架构的拆分实际上就是在寻求正确的权力下放战略。这是一个进化过程,需要不断地进行分析和调整。而如何正确的拆分微服务架构,我认为可以重点从以下三个方面考虑:

1、我们应该做哪些决定?

设计微服务系统不仅仅是改变组件大小,架构中涉及创建和更改服务的所有领域都有一定的作用。在这里总结了以下九个方面,作为拆分微服务架构时所做决定的参考:

• 生命周期: 什么时候创建或停止服务?我们什么时候需要将它们分开?
• 服务实现:我们应该在每个服务中使用哪些工具、语言和架构?
• 系统架构: 服务如何引导他人?开发人员如何了解?
• 数据架构:服务之间如何共享数据?
• 变更过程: 什么时候可以改变服务?部署和QA的工具和过程?
• 团队管理:谁在哪个团队服务?每个团队负责什么?团队成员做了什么?
• 人事管理:人员如何被雇用和解雇?员工如何激励和奖励?
• 安全管理:我们如何降低安全事故的风险?需要做些什么来改善整个系统的安全性?
• 采购过程:可以购买什么软件?使用开源软件需要哪些保护?

2、涉及到哪些人?

不得不承认,一个员工做出的一些决定对他们的公司来说可能是非常有影响力的。一个很典型的现象是,公司试图对内部的决策者增加控制,以便将风险降至最低,从而导致决策权集中化。例如,在过去的几年中,苹果以拥有一个高度集中的设计团队而闻名,少数的人做出产品设计的大部分决策。

集中发生是因为正确的人需要做出最重要的决定。通常,“正确的人”是具有天赋,专业知识和经验的组合,使我们能够相信他们做出最好的决定,我们可以称这些人为我们的“明星决策者”。但实际上,公司的“明星决策者”数量有限,大多数团队只有几颗“明星”。

微服务改变了这种少数人行使决策权的现象,同时更容易应对错误的决策。如果一个团队在微服务工作时作出错误的决定,其错误的波及范围会很小,容错率变高。当系统的更改变得便宜和容易时,团队可以快速改进先前的决策,使他们能够更快地获得最佳决策。
这里写图片描述
3、谁拥有哪一部分?
决策基于选择,而选择又基于领域知识。决策不应该立即执行,它需要一个过程,需要高度专业的技能或知识来实现。

管理专家亨利•明茨伯格(Henry Mintzberg)为我们提供了一个很好的模式,其中概述了决策过程的步骤:

  1. 研究与信息采集
  2. 生成选择
  3. 做出选择
  4. 授权的选择
  5. 执行和实施

所有这一切的关键,是在采用决策分权化时,不需要绝对。每个步骤都可以独立集中或分散化,在平衡效率和安全性时,可以获得更大的灵活性。如今,集中选择与非集中选择相结合,也是现在很多大公司常见的模式。

当人们谈论微服务架构时,权力下放过程的选择、授权和执行部分相互协作、快速、规模化地移动,这些都降低了变化来临时对整体系统产生的负面影响。它是提高变革速度的有效途径,但不要忘记,你的成员特点、团队协调,以及所有的系统、工具和工作环境同样重要。

你必须了解如何做出决策,如何改进流程,这才是迎接变化的好方法。

原文链接:https://thenewstack.io/decentralizing-microservices-organization/

推荐阅读:
在这个“云”先行的时代,企业如何系统管理云服务商
完美融合Kubernetes,Ghostcloud企业级容器云平台EcOS率先实现双容器调度
据说一个成功的研发团队应具备这9大属性

作者简介:
罗尼•米特拉:API学院设计总监,他是作者,主持人和设计师,特别关注软件和人员沟通的方式,
出版了《Microservice Architecture》一书。

译者简介:
Ghostcloud(中文名:精灵云)坐落于成都天府软件园,是成都高新区重点扶持企业,国内首批从事容器虚拟化研发的企业,是西南地区唯一一家基于Docker的云计算服务商,为企业级行业客户提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务。
Ghostcloud因容器技术而生,以最新容器技术Docker为基础,为适应不同行业客户需求,全自主研发了一套调度引擎框架Newben,且全方位适配Kubernetes主流开源调度引擎,也是国内率先实现双调度引擎的企业,是一流的企业级容器云服务专家。Ghostcloud推出了企业级容器云PaaS/CaaS平台,命名为EcOS(EnterpriseContainer Operation System)。Ghostcloud将EcOS平台与微服务/DevOps相融合,运用至企业IT系统的全生命周期的开发、测试、运维及发布流程中,致力于为多个领域企业向“互联网+”转型提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务,帮助企业级客户降低成本、提升效率、简化运维及产品部署,并提升系统的可靠性和安全性。

微服务架构之服务拆分确定服务边界 微服务拆分原则和方法:               单一职责、高内聚低耦合;               服务粒度适中;              考虑团队结构:(康威定律:设计系统的组织其产生系统的设计和架构等价于组织间的沟通结构。就是指每个团队开发设计和测试发布自己团队的微服务时,要互不干扰系统效率才能得到提升,)              以业务模型切入:(领域模型:对具体某个边界领... 阅读详情

相关推荐

从单体架构到微服务架构的拆分

单体架构、分布式架构和微服务架构是三种不同的软件架构模式,它们各有特点和适用场景。

大道至简,悟在天成。 1394

微服务拆分策略

微服务拆分没有一个绝对的标准答案,服务拆分的粒度需要根据业务场景来规划,而随着业务的发展,原先的架构方案也需要做调整。

mythsmyths的博客 540

服务拆分与扩展的三维进化:AKF立方体、单元化分区与绞杀者修缮者的渐进迁移

系统扛不住和改不动常同时到来又常被混为一谈。本文从架构在集中与分散间的钟摆讲起,说明拆分只能压低腐化斜率;再用AKF扩展立方体把扩展拆成三根正交的轴:X轴复制解决计算容量,难点在无状态与复制延迟;Y轴按变更原因拆分,用四把尺子量粒度并避开三个反模式;Z轴按数据切分,详解分区键、槽位化路由、单元化三道关口与爆炸半径;随后以交易系统的四个阶段演示信号驱动选轴;最后给出绞杀者与修缮者两种渐进迁移的拦截点、影子比对与金丝雀回切等安全网、退役判据及组合路径,并附可在Java 8上运行的代码与实测数据。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 172万+

一篇囊括微服务服务拆分的一切:前提,时机,方法,规范,选型

本文章为《互联网高并发微服务化架构实践》系列课程的第六篇 前五篇为: 微服务化的基石——持续集成 微服务的接入层设计与动静资源隔离 微服务化的数据库设计与读写分离 微服务化之无状态化与容器化 微服务化之缓存的设计   一、服务拆分的前提   说到微服务,服务拆分是绕不过去的话题,但是微服务不是说拆就能拆的,有很多的前提条件,需要完成前面几节所论述的部分。 首先要有一个持续集成的平台,使得服务在拆分...

weixin_34343308的博客 1492

微服务架构如何实现网站服务垂直化拆分

3月10日,2017阿里云网站行业热点问题和解决方案线下研讨会在上海举行。阿里云产品专家银时为大家带来《微服务架构如何实现网站服务垂直化拆分》精彩演讲。主要从服务化的缘起、微服务架构的形成,以及在大规模的服务化过程中所面临的一些挑战以及解决方案,跟大家分享整个微服务。以下内容根据现场分享和讲师PPT整理而成。倪超,阿里花名银时,阿里巴巴企业互联网架构平台产品专家、国家认证系统分析师、IT畅销书作者,著有《从Paxos到ZooKeeper》一书,2015年国内新书畅销榜Top10。2010年,以实习生身份加入阿里,入职中间件技术团队,经历了阿里中间件技术从1.0到3.0的变革,目前负责商用软件E

STM32按键中断切换红绿蓝灯

通过以上步骤,我们实现了使用STM32的按键中断来切换红绿蓝LED灯的功能。在实际应用中,可能还需要考虑更多的细节,如按键消抖、更精确的延时实现等。但上述代码提供了一个基本的框架和思路,可以根据具体需求进行扩展和优化。希望这篇博客对您有所帮助!

2301_79865940的博客 952

微服务拆分原则和方法

1. 单一职责、高内聚低耦合2. 服务粒度适中3. 考虑团队结构4. 以业务模型切入5. 演进式拆分6. 避免环形依赖与双向依赖

mn_kw的博客 1万+

视觉语言模型对抗攻击与防御:从传统方法到多模态挑战

本文深入探讨了视觉语言模型(VLM)面临的对抗攻击与防御挑战,从传统单模态攻击到多模态威胁的演进。分析了包括FGSM、PGD等经典攻击方法,以及新兴的多模态攻击如跨模态对抗样本和越狱攻击。同时提出了跨模态一致性检查、动态防御机制等创新防御策略,并结合医疗影像诊断等实战案例,为提升AI系统安全性提供了重要见解。

weixin_29231725的博客 393

如何用 claude-skills Microservices Architect 设计微服务架构:从拆分到落地的完整指南

**claude-skills** 是面向全栈开发者的 Claude Code 技能库,其中内置的 **Microservices Architect(微服务架构师)** 技能,能帮你把庞大的单体应用拆分成边界清晰、通信合理、具备弹性的微服务架构。它内置了领域驱动设计(DDD)、Saga 模式、熔断器、事件溯源、CQRS 等分布式系统最佳实践,相当于给 AI 装上了一位资深架构师的大脑。 [![

gitblog_00947的博客 1054

Quantum Espresso Hands-On实战训练(四)——PDOS计算与轨道分析

本文详细介绍了Quantum Espresso中PDOS计算与轨道分析的实战方法,重点解析了PDOS在材料电子结构研究中的核心价值,包括原子级分辨率、轨道级解析和自旋极化分析。通过具体案例和操作步骤,帮助读者掌握从输入文件准备到结果解读的全流程,并提供了高级分析技巧和疑难问题解决方案。

weixin_29211309的博客 505

【首份】2023年30米分辨率土地利用遥感监测数据

为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。

地球资源数据云的官方博客 3686

微服务架构拆分介绍

“you build, you run it”

weixin_49862903的博客 1515

Tableau学习教程(万字保姆级教程)​​​​​​

​Tableau学习教程(保姆级教材,学不会私信留言来找我) 从BI系统开发的角度来学习tableau工具,更学会报表开发的流程 内含学习使用数据源,tableau打包工作簿,可直接提取使用 ​...

小菜菜的博客 6万+

电商项目微服务架构拆分实战

比如微服务的接口因为升级把之前的三个参数改成了四个,上线后导致调用方大量报错,推荐做法服务接口的参数类型最好是封装类,这样如果增加参数就不必变更接口的签名。

srrsheng的博客 1278

9、自动定理证明的发展历程与关键技术

本文全面介绍了自动定理证明的发展历程、关键技术及其实际应用,包括消解原理、参数化、支撑集策略等核心方法,并探讨了算法优化、数据结构优化及并行计算等提升效率的手段。同时,文章展望了未来发展方向,如深度学习在定理证明中的应用、交互式定理证明以及高阶逻辑的研究前景。

ll5678的博客 508

第4章-07-将WebDriver获取的Cookie传递给Requests

在使用Selenium WebDriver获取了浏览器的Cookies之后,你可以将这些Cookies传递给requests库,以便在后续的HTTP请求中使用这些Cookies。这样做可以让你模拟浏览器会话,使得请求看起来像是从之前使用Selenium WebDriver控制的浏览器发出的。

黑夜开发者的博客 692

四种常用的微服务架构拆分方式

微服务架构并无标准架构,不然什么架构师大会也不会各个系统架构百花齐放了。虽然没有固定的套路,却有一些经验,今天就来做一个总结。基于角色拆分这种拆分方式常见于基础设施以及其PaaS层的架构,...

xiexiaojing的博客 2万+

项目篇:移动平台机械臂视觉定位抓取实施(基于ROS架构)

ROS包内容: 这篇日志的目的是快速项目实施,所以详细的部分会不断补充。 1、相机采集包(创建抓取图像服务,单张) Realsense Camera(微软深度摄像头,官方提供ros包) Pylon Camera(basler相机,官方提供ros包) 2、定位算法包(抓取图像,定位标志物) Aruco_ros (二维码定位,官方提供ros包) Apriltag (二维码定位,官方提供ros包)...

南北粉面馆 6049

微服务架构如何拆分服务

前言 微服务架构模式经过5年多的发展,在各行各业如火如荼地应用和实践。如何在企业中优雅地设计微服务架构?是企业面对的一个重要问题。本文将讲述微服务架构1.0设计与实践以及面临问题和破局,最后讲述微服务架构2.0设计与实践等方面,尝试去回答这个难题。 微服务架构1.0设计与实践 微服务架构定义 2014年马丁福勒提出了微服务架构设计模式,微服务架构最核心的设计有二点(如图1 绿框所示):第一,把单体服务拆分成一系列小服务;第二,拆分后的这些小服务是去中心化的,即每个服务都可以使用不同的编程语言,也可以使用不同

Arvin_zx的博客 1426

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

03-微服务架构构建之微服务拆分

微服务架构是将一个单体应用程序拆分为一个个独立且保持松耦合的服务的一种架构方式,每个服务有着独立的数据库并且能独立运行部署。微服务架构的构建过程中,第一步也是最为重要的一步是进行服务拆分。只有将微服务按照合理的方式进行拆分,才能确保整个项目能够高效而正确地运行。

月空的博客 5876

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

微服务架构拆分设计

微服务架构拆分设计

Zhuxiaoyu_91的博客 1296

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

微服务架构拆分策略与实践

随着互联网技术的发展,传统的单体应用逐渐显现出其局限性,特别是在扩展性和维护性方面。微服务架构作为一种解决这些问题的方法,通过将大型应用分解成一系列小型、独立的服务单元,每个单元负责单一的功能,并且可以独立部署、测试和扩展。

weixin_42564451的博客 987

微服务架构中的服务拆分策略深度解析

本文系统解析了微服务架构中的服务拆分方法论与实践原则。首先阐述了服务拆分的核心目标(高内聚、低耦合、独立演进)及其与单体架构的本质区别。其次详细介绍了三种主流拆分方法:领域驱动设计(DDD)的限界上下文映射、业务能力拆分法和康威定律指导的组织结构映射。接着提出实战原则(单一职责、数据自治等)并列举典型反模式。最后探讨了拆分过程中的关键技术决策(粒度评估、数据拆分、通信模式)及面试常见问题。文章强调服务拆分需平衡业务与技术因素,通过合理边界划分实现系统可维护性与扩展性。

闫磊磊 1300

微服务架构中的服务拆分方案和案例

本文的微服务拆分方案旨在提供一种平滑拆分微服务的方法。尽量降低服务拆分的风险,并且能够回滚。本方案在实际项目中有过验证,基本做到了零问题,平稳拆分。

稀有气体的技术博客 3276
上一篇: 如何拆分你的微服务架构?
下一篇: 【新闻】微软推出适用于Linux和Docker的SQL Server 2017版本
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值