知识卡片

微服务化四个前提条件

结构图卡

内容

[[康威定律是微服务化的第一前提架构是社交政治问题]]之外,作者还给出三个 前提。第二,组织中要有对微服务有充分理解、有实践经验的技术专家——微服务 对普通开发者是友善的(错误能被隔离甚至自动回弹),但对架构者提出史无 前例的要求(跟踪治理、负载均衡、故障隔离、认证授权、伸缩扩展这些复杂性 需要有人扛住),团队里缺乏能撑起系统主干的技术和运维专家时,强行微服务 化不会有任何好处;这也预示行业会出现”阶级分层”——更先进的架构让平庸 开发者也能写出可用的生产代码,同时又对精英开发者提出更复杂要求,长此 以往开发者群体的马太效应会比现在更明显。第三,系统要具备以自治为目标 的自动化与监控度量能力——Martin Fowler在”Microservice Prerequisites” 里提出三项技术前提:环境预置(能在短时间内启动新服务器)、基础监控 (能迅速捕捉技术和业务问题)、快速部署(有全自动化部署管道);重点是 “以自治为目标”,否则自动化会陷入套娃悖论。第四,复杂性已经成为制约生产力 的主要矛盾——只有当业务发展到单体和微服务的生产力曲线交叉点之后开始 微服务化才有收益,很多架构师却在项目立项之初就”主动犯错”,为了评审好看、 招聘吸引力、避免被质疑”当初选错了”而提前上微服务,而不是依据现实情况 做出符合当下阶段的战术决策。

结构图

flowchart TD
    A[微服务化四个前提] --> B[1. 康威定律意识<br/>决策者认可架构需同步调整组织]
    A --> C[2. 技术专家储备<br/>撑得住复杂性提升]
    A --> D[3. 自动化与监控度量能力<br/>以自治为目标]
    A --> E[4. 复杂性成为主要矛盾<br/>生产力曲线已过交叉点]

参考来源

- 位置:《凤凰架构:构建可靠的大型分布式系统》第16章"向微服务迈进"16.2节 "前提:微服务需要的条件"(源文件:_epub-src对应OEBPS/Text/ chapter180.xhtml) - 结论依据:原文依次给出技术专家储备、自动化监控度量能力(引用Martin Fowler的环境预置/基础监控/快速部署三项技术前提)、复杂性成为主要 矛盾三个前提条件,并说明许多架构师在立项之初就因非技术因素"主动犯错" 提前采用微服务,直接支撑本卡片的结构梳理。 - 原始内容:微服务化的第二个前提条件是组织中具备一些对微服务有充分 理解、有一定实践经验的技术专家……第三个前提条件是系统应具有以自治 为目标的自动化与监控度量能力……第四个前提条件是复杂性已经成为制约 生产力的主要矛盾。