第14章 云原生架构

核心知识点

1. 云原生架构定义

  • 本质:基于云原生技术的一组架构原则和设计模式的集合
  • 目标:将云应用中的非业务代码部分最大化剥离,让云设施接管非功能特性
  • 云原生代码三部分
    • 业务代码(实现业务逻辑)
    • 三方软件(依赖库)
    • 处理非功能特性的代码(弹性、韧性、安全、可观测性等)

2. 云原生架构七大原则

  1. 服务化原则:拆分为微服务/小服务架构,分别迭代
  2. 弹性原则:部署规模随业务量自动伸缩
  3. 可观测原则:日志、链路跟踪和度量
  4. 韧性原则:软硬件组件异常时的抵御能力
  5. 所有过程自动化原则:标准化交付 + 自动化
  6. 零信任原则:默认不信任任何人/设备/系统,基于认证和授权
  7. 架构持续演进原则:架构本身具备持续演进能力

3. 云原生主要架构模式

  1. 服务化架构模式:微服务和小服务模式,代码模块关系和部署关系分离
  2. Mesh化架构模式:中间件框架从业务进程中分离(SDK 与业务解耦)
  3. Serverless 模式:开发者不关心运行地点、OS、网络配置、CPU 性能
  4. 存储计算分离模式:暂态数据、持久数据都采用云服务
  5. 分布式事务模式:大颗粒度业务访问多个微服务时的数据一致性
  6. 可观测架构:Logging + Tracing + Metrics
  7. 事件驱动架构:应用/组件间集成,用于服务解耦、增强韧性、数据通知

4. 容器技术

  • 定义:标准化软件单元,将应用及其所有依赖项打包
  • 优势:不受环境限制,快速可靠运行,发挥云计算弹性优势
  • Kubernetes(K8s)核心能力
    • 资源调度、应用部署与管理、自动修复
    • 服务发现与负载均衡、弹性伸缩
    • 声明式 API、可扩展性架构、可移植性
  • K8s 已成为容器编排的事实标准

5. 微服务设计约束

  1. 个体约束:功能独立、低耦合、单一职责
  2. 横向关系:可发现性和可交互性,需服务注册中心
  3. 纵向约束:数据存储隔离原则(数据是微服务的私有资产)
  4. 分布式约束:故障发现时效性和根因精确性

6. Serverless 技术

  • 四个特征
    1. 全托管计算服务,无需关注基础设施
    2. 通用性,结合 BaaS API 支撑所有应用类型
    3. 自动弹性伸缩,无需容量规划
    4. 按量计费,不闲置付费
  • FaaS(函数即服务):最具代表性的 Serverless 产品形态
  • 关注点:计算资源弹性调度、负载均衡和流控、安全性

7. 服务网格(Service Mesh)

  • 本质:将微服务间连接、安全、流量控制和可观测下沉为平台基础设施
  • 架构:数据平面(Sidecar 代理)+ 控制平面(策略配置)
  • 优势:应用与平台基础设施解耦,开发者聚焦业务逻辑
  • 代表产品:Istio、Linkerd

8. DevOps

  • 定义:开发、技术运营和质量保障三者的交集
  • 核心理念:促进沟通、协作与整合,提高开发周期和效率
  • 与云原生关系:容器和微服务为 DevOps 提供前提条件

真题考点映射

| 年份 | 考点 | 题型 | |------|------|------| | 2025下 | Serverless 架构 | 论文 | | 2025下 | 云原生数据库 | 论文 | | 2025下 | 微服务架构 | 案例 | | 2020下 | 云原生架构 | 论文 | | 2017下 | 无服务器架构 | 论文 |

易错点/陷阱

  • 微服务 ≠ SOA:微服务更精细、接口更通用化(HTTP RESTful)、去中心化
  • Serverless 不代表没有服务器,而是服务器管理对用户透明
  • Service Mesh 的 Sidecar 是数据平面,不是控制平面
  • FaaS 是 Serverless 的产品形态,不是唯一形态
  • Kubernetes ≠ Docker:K8s 是容器编排,Docker 是容器引擎
  • 云原生的"零信任"不是不信任,而是默认不信任、需认证授权

案例分析模板

题型:微服务/云原生架构设计

答题框架

  1. 服务拆分:按业务域拆分为独立微服务,说明拆分原则
  2. 服务通信:同步(REST/gRPC)vs 异步(消息队列)
  3. 数据管理:每个微服务独立数据库,数据隔离
  4. 服务治理:注册发现、负载均衡、熔断限流、链路追踪
  5. 部署运维:容器化 + K8s 编排 + CI/CD

论文素材

  • 可写主题:云原生架构设计、微服务架构、Serverless、Service Mesh
  • 项目场景
    • 电商平台从单体迁移到微服务
    • 使用 K8s 实现自动扩缩容
    • Serverless 实现事件驱动处理(图片处理、日志分析)
  • 论述要点
    • 服务拆分粒度、边界划分
    • 容器化部署与编排
    • 服务治理与可观测性
    • 演进过程中的挑战与解决方案