系统架构设计师备考站2027 上半年 · 通勤版 ⌕搜索
本页目录 · 5 节
  1. 一、知识框架
  2. 二、必背要点
  3. 14.1 产生背景
  4. 14.2 云原生架构内涵
  5. 14.3 相关技术
  6. 14.4 案例分析
  7. 三、易混淆概念对比
  8. 四、常见考法与出题角度
  9. 五、速记与自测

第 14 章 云原生架构设计理论与实践

对应大纲:科目 1-13 云原生架构设计理论与实践|教材 P482–P511|优先级 ★★★★★|综合知识估分 2~4 分
读法:把「为什么要云原生 → 云原生是什么 → 靠什么技术实现 → 怎么落地」串成一条线;5 原则、7 模式、6 反模式是选择题与论文共用的骨架。


一、知识框架

云原生架构设计理论与实践
├─ 14.1 产生背景
│   ├─ 单体瓶颈:耦合、构建慢、故障扩散
│   ├─ 交付瓶颈:手工部署、环境不一致
│   └─ 资源瓶颈:按峰值预留、利用率低
├─ 14.2 云原生架构内涵
│   ├─ 定义与应用特征
│   ├─ 5 大原则:服务化|弹性|可观测|韧性|自动化
│   ├─ 主要架构模式:服务化|Mesh|Serverless|声明式 API
│   │                  |可观测|韧性|自动化
│   └─ 典型反模式
├─ 14.3 相关技术
│   ├─ 容器与 Kubernetes
│   ├─ 云原生微服务:拆分与治理
│   ├─ Serverless:FaaS + BaaS
│   └─ 服务网格:Sidecar、控制面/数据面
└─ 14.4 案例分析:改造路径、成效与风险

二、必背要点

14.1 产生背景

痛点具体表现
单体应用代码高度耦合、构建慢,一处故障拖垮全站
交付方式手工部署、环境不一致、发布窗口长
弹性能力按业务峰值长期预留资源,闲时大量浪费
技术绑定锁定单一语言与中间件,难以引入新技术

云计算的资源池化、弹性伸缩与托管服务提供了外部条件,但「上云」不等于「云原生」:只把虚拟机搬上云,架构仍是单体与手工运维,收益有限。

14.2 云原生架构内涵

定义:云原生是一套构建和运行应用的方法论。应用从设计之初就面向云环境,充分利用云的弹性、分布式与自动化能力,实现快速交付、弹性伸缩与故障自愈。

符合云原生架构的应用特征

特征含义
容器化封装应用与依赖打包为镜像,环境一致
微服务化按业务边界拆分,独立开发部署
自动化CI/CD、自动扩缩容、自动运维
声明式 API描述期望状态,由平台收敛达成
可观测性日志、指标、链路追踪三支柱

5 大原则

原则内涵落地手段
服务化按业务边界拆分,接口契约化微服务、API 网关
弹性按负载自动伸缩,按需使用资源HPA、Serverless
可观测能从外部输出推断内部状态日志、指标、链路追踪
韧性假设故障必然发生,可隔离可恢复熔断、限流、重试、降级
自动化一切可自动化的都交给平台CI/CD、IaC、GitOps

延伸两条:零信任(默认不信任任何调用)、架构持续演进(架构随业务迭代)。考试问「5 大原则」按上表作答,问「设计原则」可补这两条。

主要架构模式

模式一句话关键点
服务化架构单体拆为可独立部署的服务业务边界、接口契约、独立数据
Mesh 化架构服务间通信下沉到 Sidecar 代理控制面与数据面分离
Serverless 化不管理服务器,按调用付费FaaS + BaaS、事件驱动
声明式 API声明期望状态,平台负责达成幂等、控制器循环
可观测性从输出推断系统内部状态日志、指标、追踪
韧性架构把故障当常态来设计隔离、限流、熔断、降级
自动化减少人工干预与人为失误CI/CD、IaC、弹性伸缩

典型反模式

反模式表现后果
往「大泥球」里加功能无边界堆代码,只加不改耦合严重、不可维护
非一致性设计技术栈、数据模型各行其是集成困难、成本上升
硬编码地址、配置、密钥写死在代码里无法多环境部署
单体膨胀名义微服务,实则共享库、共享库表牵一发动全身
按传统方式容量规划长期预留峰值资源成本高、弹性差
忽视可观测性只部署不监控故障定位慢、恢复时间长

14.3 相关技术

容器与虚拟机

维度容器虚拟机
隔离级别进程级(namespace、cgroup)硬件级(Hypervisor)
启动速度秒级甚至毫秒级分钟级
资源占用共享内核,轻量含完整操作系统,较重
部署密度单机可运行数百个单机通常数十个
安全隔离相对较弱相对较强

Kubernetes 核心对象

对象作用
Pod最小调度单元,含一个或多个共享网络与存储的容器
Service为 Pod 提供稳定虚拟 IP 与负载均衡
Deployment管理无状态 Pod 副本、滚动升级与回滚

补充对象:Namespace 做资源隔离,ConfigMap/Secret 管配置与密钥,StatefulSet 管有状态副本,Ingress 做七层入口。K8s 采用主从架构:控制面含 API Server、调度器、控制器管理器与 etcd,工作节点含 kubelet、kube-proxy 与容器运行时。

云原生微服务

拆分维度:业务能力(按价值链与组织)、领域驱动设计的限界上下文、数据边界(每个服务独立数据库)、团队边界(康威定律)、变更频率与伸缩需求。

治理能力:注册发现、负载均衡、配置中心、API 网关、熔断限流降级、链路追踪、分布式事务。

Serverless

形态为 FaaS(函数即服务)+ BaaS(后端即服务)。特点:免运维、事件驱动、自动弹性、按量付费;限制是冷启动时延、单次执行时长与状态受限。适用突发流量、定时任务、事件处理、轻量 API。

服务网格

概念内容
Sidecar与业务容器同 Pod 的代理,接管进出流量
数据面一组 Sidecar,负责转发、限流、加密与遥测
控制面下发路由、策略与证书,如 Istio 的 Pilot、Citadel
核心能力流量管理、mTLS 安全、可观测、灰度发布

价值是把服务治理从业务代码中剥离,多语言统一;代价是额外网络跳数、资源开销与运维复杂度。

14.4 案例分析

改造路径:容器化(镜像统一、配置外置)→ 按领域拆分微服务 → Kubernetes 编排(Deployment、Service、HPA)→ 服务网格做灰度与 mTLS → Serverless 承接峰值与定时任务 → 建立可观测体系(指标、日志、链路)。

成效:发布周期由周级降到天级甚至小时级;资源利用率提升;故障隔离与恢复时间缩短。

风险与对策:分布式复杂度上升,需统一治理与链路追踪;数据一致性变难,优先最终一致与 Saga;运维门槛提高,先建平台与标准;成本可能失控,需按命名空间计量与弹性策略。改造应渐进,优先用绞杀者模式包裹遗留系统,避免「为微服务而微服务」。


三、易混淆概念对比

AB关键区别
云原生上云上云只是迁移;云原生要求架构面向云设计
容器虚拟机共享内核、进程级隔离;独立 OS、硬件级隔离
DockerKubernetesDocker 管单机容器生命周期;K8s 管集群编排
Pod容器Pod 是最小调度单元,可包含多个容器
DeploymentStatefulSet前者管无状态副本;后者管有状态与稳定标识
ServiceIngressService 提供集群内稳定访问;Ingress 是七层外部入口
微服务SOA微服务去中心化、独立数据、轻量协议;SOA 常配 ESB 重治理
Serverless容器免运维、按调用付费、有冷启动;容器常驻、自主管理
服务网格API 网关网格管服务间东西向流量;网关管外部南北向入口
熔断限流熔断切断故障依赖;限流控制进入系统的流量
声明式命令式声明期望状态由平台收敛;命令式逐步下达指令
可观测性监控监控看已知指标;可观测支持未知问题探索

四、常见考法与出题角度

出题角度典型问法答题要点易错提示
概念判断「下列哪项不属于云原生特征」容器化、微服务、声明式、可观测虚拟化本身不是云原生特征
原则识别「假设故障必然发生属于哪条原则」韧性不是弹性
模式匹配「把治理能力下沉到代理属于」Mesh 化不是 API 网关
反模式「共享库表导致牵一发动全身属于」单体膨胀不是大泥球
容器对比「容器相比虚拟机的主要优势」启动快、占用小、密度高隔离性并不更强
K8s 对象「最小调度单元是」Pod不是容器
微服务拆分「拆分的首要依据」业务能力与限界上下文不是按技术分层拆
Serverless「Serverless 的典型限制」冷启动、执行时长、状态受限不是不能弹性
服务网格「Sidecar 的作用」接管流量、治理与遥测不是业务逻辑容器
迁移策略「改造遗留系统的推荐方式」绞杀者模式、渐进迁移不是一次性重写

案例题角度:给出单体系统与高并发场景,要求「给出云原生改造方案」。按「现状痛点 → 拆分与容器化 → 编排与弹性 → 治理与可观测 → 迁移步骤与风险」五段作答,每段都要落到具体技术。

论文可用角度:可直接改写为——「在××平台建设中,我们把单体按领域拆分为 12 个微服务,以 Kubernetes 的 Deployment 与 HPA 实现弹性伸缩,用 Istio 完成灰度发布与 mTLS,发布周期由两周缩短到一天,故障恢复时间从小时级降到分钟级。」


五、速记与自测

速记

  • 云原生四要素:容、微、持、声
  • 5 原则:服、弹、观、韧、自
  • 7 模式:服、Mesh、无服、声、观、韧、自
  • 6 反模式:泥、乱、硬、胖、估、盲
  • 容器 vs 虚机:共内核、秒级起、密度高
  • K8s 三件套:Pod、Service、Deployment
  • 服务网格:控制面定策略、数据面跑流量

自测

  1. 云原生的 5 大设计原则是什么?
  2. 容器与虚拟机在隔离级别、启动速度、资源占用上有何区别?
  3. Kubernetes 中 Pod、Service、Deployment 各自的职责是什么?

答案:1. 服务化、弹性、可观测、韧性、自动化。2. 容器是共享内核的进程级隔离,启动秒级、占用小、密度高;虚拟机是硬件级隔离,启动分钟级、含完整 OS、占用大。3. Pod 是最小调度单元;Service 提供稳定访问入口与负载均衡;Deployment 管理无状态副本与滚动升级。