知识卡片
服务架构六个时代演进脉络与更迭驱动力
内容
软件架构的演进不是被设计出来的,而是被淘汰逼出来的:每个时代的架构都在解决上一个 时代暴露出的核心矛盾,又在解决过程中制造出新的矛盾,推动下一次更迭。原始分布式 时代想用多机突破单机算力瓶颈,但”透明调用”的理想被远程调用的性能代价击穿,只能 让位给单体;单体虽然简单高效,但共享进程导致故障无法隔离、无法单独升级,倒逼出 SOA/微服务式的拆分;微服务拆分后又把服务发现、熔断、认证这类分布式基础设施问题 甩给了每个应用自己实现,直到容器化和Kubernetes把这些问题下沉到基础设施层(后 微服务时代),服务网格再进一步用边车代理把精细治理能力也从应用代码里剥离;无服务 时代则是在”相对无限算力”成为现实后,对”不去做分布式最简单”这一朴素直觉的又一次 回归尝试。六个时代不是线性替代关系,而是同一组矛盾(性能 vs 简单、自治 vs 协作、 统一规范 vs 局部自由)在不同技术条件下反复求解的过程。
结构图:
flowchart LR
A[原始分布式时代] -->|透明调用理想被性能代价击穿| B[单体系统时代]
B -->|共享进程无法隔离故障/难以异构升级| C[SOA时代]
C -->|过度标准化带来复杂性反噬| D[微服务时代]
D -->|分布式基础问题甩给应用自己实现| E[后微服务/云原生时代]
E -->|容器化+K8s下沉基础设施, 服务网格补上精细管控| E
E -.相对无限算力出现后的再简化尝试.-> F[无服务时代]
参考来源
- 位置:《凤凰架构:构建可靠的大型分布式系统》第1章"服务架构演进史"全章
(源文件:_epub-src对应OEBPS/Text/chapter4.xhtml至chapter10.xhtml)
- 结论依据:原文按1.1至1.6节顺序分别论证每个时代的产生动因、代表性技术特征
和被下一个时代取代的具体原因(如DCE"透明分布式"因性能代价失败、单体因
"很难兼容Phoenix特性"被微服务取代、SOA因"过于精密的流程需要专业人员驾驭"
脱离群众而没落),直接支撑六个时代依次更迭、驱动力各不相同这一结论。
- 原始内容:架构并不是被发明出来的,而是持续演进的结果……借讨论历史之名,来梳理
软件架构发展历程中出现过的名词术语……从这些概念的起源去分析它们是什么,它们
取代了什么,它们为什么能够在竞争中取得成功,为什么变得不可或缺,以及它们为什么
会失败。