第14章 云原生架构
核心知识点
1. 云原生架构定义
- 本质:基于云原生技术的一组架构原则和设计模式的集合
- 目标:将云应用中的非业务代码部分最大化剥离,让云设施接管非功能特性
- 云原生代码三部分:
- 业务代码(实现业务逻辑)
- 三方软件(依赖库)
- 处理非功能特性的代码(弹性、韧性、安全、可观测性等)
2. 云原生架构七大原则
- 服务化原则:拆分为微服务/小服务架构,分别迭代
- 弹性原则:部署规模随业务量自动伸缩
- 可观测原则:日志、链路跟踪和度量
- 韧性原则:软硬件组件异常时的抵御能力
- 所有过程自动化原则:标准化交付 + 自动化
- 零信任原则:默认不信任任何人/设备/系统,基于认证和授权
- 架构持续演进原则:架构本身具备持续演进能力
3. 云原生主要架构模式
- 服务化架构模式:微服务和小服务模式,代码模块关系和部署关系分离
- Mesh化架构模式:中间件框架从业务进程中分离(SDK 与业务解耦)
- Serverless 模式:开发者不关心运行地点、OS、网络配置、CPU 性能
- 存储计算分离模式:暂态数据、持久数据都采用云服务
- 分布式事务模式:大颗粒度业务访问多个微服务时的数据一致性
- 可观测架构:Logging + Tracing + Metrics
- 事件驱动架构:应用/组件间集成,用于服务解耦、增强韧性、数据通知
4. 容器技术
- 定义:标准化软件单元,将应用及其所有依赖项打包
- 优势:不受环境限制,快速可靠运行,发挥云计算弹性优势
- Kubernetes(K8s)核心能力:
- 资源调度、应用部署与管理、自动修复
- 服务发现与负载均衡、弹性伸缩
- 声明式 API、可扩展性架构、可移植性
- K8s 已成为容器编排的事实标准
5. 微服务设计约束
- 个体约束:功能独立、低耦合、单一职责
- 横向关系:可发现性和可交互性,需服务注册中心
- 纵向约束:数据存储隔离原则(数据是微服务的私有资产)
- 分布式约束:故障发现时效性和根因精确性
6. Serverless 技术
- 四个特征:
- 全托管计算服务,无需关注基础设施
- 通用性,结合 BaaS API 支撑所有应用类型
- 自动弹性伸缩,无需容量规划
- 按量计费,不闲置付费
- 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 是容器引擎
- 云原生的"零信任"不是不信任,而是默认不信任、需认证授权
案例分析模板
题型:微服务/云原生架构设计
答题框架:
- 服务拆分:按业务域拆分为独立微服务,说明拆分原则
- 服务通信:同步(REST/gRPC)vs 异步(消息队列)
- 数据管理:每个微服务独立数据库,数据隔离
- 服务治理:注册发现、负载均衡、熔断限流、链路追踪
- 部署运维:容器化 + K8s 编排 + CI/CD
论文素材
- 可写主题:云原生架构设计、微服务架构、Serverless、Service Mesh
- 项目场景:
- 电商平台从单体迁移到微服务
- 使用 K8s 实现自动扩缩容
- Serverless 实现事件驱动处理(图片处理、日志分析)
- 论述要点:
- 服务拆分粒度、边界划分
- 容器化部署与编排
- 服务治理与可观测性
- 演进过程中的挑战与解决方案