15、云原生架构设计理论与实践 核心考点与学习笔记

【软考架构师】云原生架构设计理论与实践 核心考点与学习笔记(超详细解析+图解)

摘要:本文为软考高级系统架构设计师(第14章:云原生架构设计理论与实践)的学习笔记。内容涵盖云原生架构定义、7大核心原则、常见架构模式(服务化、Mesh化、Serverless等)、关键技术(容器、Kubernetes、微服务、服务网格)以及历年真题考点。针对架构演进和关键技术,本文利用 Mermaid 语法绘制了逻辑图,助你快速记忆,顺利通过软考!

目录

  • [1. 云原生架构内涵](#1. 云原生架构内涵)
  • [2. 云原生架构原则(⭐⭐⭐)](#2. 云原生架构原则(⭐⭐⭐))
  • [3. 云原生主要架构模式(⭐⭐⭐)](#3. 云原生主要架构模式(⭐⭐⭐))
  • [4. 云原生架构相关技术](#4. 云原生架构相关技术)
  • [5. 云原生架构典型案例分析](#5. 云原生架构典型案例分析)
  • [6. 典型真题与备考建议](#6. 典型真题与备考建议)

1. 云原生架构内涵

云原生架构 是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化的剥离,让云设施接管应用中原有的非功能性特性(如弹性、韧性、安全、可观测性等),使业务具备轻量、敏捷、高度自动化的特点。

  • 代码结构的三部分 :业务代码、三方软件、处理非功能特性的代码。云原生将非功能特性剥离到 IaaS 和 PaaS 中,但不能剥离所有(如易用性还不能完全剥离)。
  • 三大核心特点 :
    1. 代码结构发生巨大变化:不再需要掌握文件及分布式处理技术,简化业务开发。
    2. 非功能性特性大量委托给云原生架构:高可用、容灾、安全、灰度发布等。
    3. 高度自动化的软件交付:自动部署到成千上万的节点。

2. 云原生架构原则(⭐⭐⭐)

云原生架构包含 7大核心原则,考试中常以选择题形式出现(注意区分不属于该原则的选项)。
渲染错误: Mermaid 渲染失败: Parse error on line 8: ...原则 日志(Logging)、链路跟踪(Tracing)、度量(Me ----------------------^ Expecting 'SPACELINE', 'NL', 'EOF', got 'NODE_ID'


3. 云原生主要架构模式(⭐⭐⭐)

3.1 服务化架构模式

以应用模块为颗粒度划分软件,以**接口契约(IDL)**定义业务关系,以标准协议(HTTP/gRPC)互联互通。

  • 微服务:独立部署、独立扩缩容。
  • 小服务模式:一组关系非常密切的服务的组合,共享数据。适用于非常大型的系统,避免接口颗粒度太细导致过多的调用损耗和治理复杂度。

3.2 Mesh化架构模式

将中间件框架(RPC、缓存等)从业务进程中分离,让中间件SDK与业务代码解耦。

  • 特点:业务进程只保留很"薄"的Client,流量控制、安全等逻辑由Mesh进程完成。
  • 收益:中间件升级对业务无感,获得更好的安全性(零信任架构能力)。

渲染错误: Mermaid 渲染失败: Parse error on line 8: ...务进程] --> B2薄Client (SDK协议) B2 -----------------------^ Expecting 'SQE', 'DOUBLECIRCLEEND', 'PE', '-)', 'STADIUMEND', 'SUBROUTINEEND', 'PIPE', 'CYLINDEREND', 'DIAMOND_STOP', 'TAGEND', 'TRAPEND', 'INVTRAPEND', 'UNICODE_TEXT', 'TEXT', 'TAGSTART', got 'PS'

3.3 Serverless 模式

将"部署"动作从运维中"收走",开发者只需关注业务代码,把应用的整个运行都委托给云。

  • 适用场景:事件驱动的数据计算任务、计算时间短的请求/响应应用、没有复杂相互调用的长周期任务。
  • 不适用场景:有状态应用(调度导致上下文丢失)、长时间后台密集型计算(无法发挥Serverless优势)、频繁外部I/O(时延大)。

3.4 其他架构模式

  • 存储计算分离模式:推荐把各类暂态数据、持久数据都采用云服务保存。
  • 分布式事务模式:满足不同业务场景(强一致性、最终一致性等)。
  • 可观测架构:Logging(开发者主动提供)、Tracing(完整调用链路跟踪)、Metrics(多维度度量)。
  • 事件驱动架构:用于服务解耦、增强服务韧性。

3.5 典型的云原生反模式

  1. 庞大的单体应用:耦合、边界不清、无法局部扩容。
  2. 单体应用"硬拆"为微服务:强行拆分耦合度高、代码量少的模块。
  3. 缺乏自动化能力的微服务:人均工作量大,成本增加。

4. 云原生架构相关技术

4.1 容器技术

容器是标准化软件单元,将应用及其依赖项打包,不再依赖宿主机的OS类型和配置,在不同环境间快速、可靠运行。

4.2 容器编排(Kubernetes)

Kubernetes (K8s) 是容器编排的事实标准,提供分布式应用管理的核心能力:
#mermaid-svg-ou8Jzia8xes6MLXB{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ou8Jzia8xes6MLXB .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ou8Jzia8xes6MLXB .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ou8Jzia8xes6MLXB .error-icon{fill:#552222;}#mermaid-svg-ou8Jzia8xes6MLXB .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ou8Jzia8xes6MLXB .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ou8Jzia8xes6MLXB .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ou8Jzia8xes6MLXB .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ou8Jzia8xes6MLXB .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ou8Jzia8xes6MLXB .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ou8Jzia8xes6MLXB .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ou8Jzia8xes6MLXB .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ou8Jzia8xes6MLXB .marker.cross{stroke:#333333;}#mermaid-svg-ou8Jzia8xes6MLXB svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ou8Jzia8xes6MLXB p{margin:0;}#mermaid-svg-ou8Jzia8xes6MLXB .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ou8Jzia8xes6MLXB .cluster-label text{fill:#333;}#mermaid-svg-ou8Jzia8xes6MLXB .cluster-label span{color:#333;}#mermaid-svg-ou8Jzia8xes6MLXB .cluster-label span p{background-color:transparent;}#mermaid-svg-ou8Jzia8xes6MLXB .label text,#mermaid-svg-ou8Jzia8xes6MLXB span{fill:#333;color:#333;}#mermaid-svg-ou8Jzia8xes6MLXB .node rect,#mermaid-svg-ou8Jzia8xes6MLXB .node circle,#mermaid-svg-ou8Jzia8xes6MLXB .node ellipse,#mermaid-svg-ou8Jzia8xes6MLXB .node polygon,#mermaid-svg-ou8Jzia8xes6MLXB .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ou8Jzia8xes6MLXB .rough-node .label text,#mermaid-svg-ou8Jzia8xes6MLXB .node .label text,#mermaid-svg-ou8Jzia8xes6MLXB .image-shape .label,#mermaid-svg-ou8Jzia8xes6MLXB .icon-shape .label{text-anchor:middle;}#mermaid-svg-ou8Jzia8xes6MLXB .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ou8Jzia8xes6MLXB .rough-node .label,#mermaid-svg-ou8Jzia8xes6MLXB .node .label,#mermaid-svg-ou8Jzia8xes6MLXB .image-shape .label,#mermaid-svg-ou8Jzia8xes6MLXB .icon-shape .label{text-align:center;}#mermaid-svg-ou8Jzia8xes6MLXB .node.clickable{cursor:pointer;}#mermaid-svg-ou8Jzia8xes6MLXB .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ou8Jzia8xes6MLXB .arrowheadPath{fill:#333333;}#mermaid-svg-ou8Jzia8xes6MLXB .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ou8Jzia8xes6MLXB .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ou8Jzia8xes6MLXB .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ou8Jzia8xes6MLXB .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ou8Jzia8xes6MLXB .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ou8Jzia8xes6MLXB .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ou8Jzia8xes6MLXB .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ou8Jzia8xes6MLXB .cluster text{fill:#333;}#mermaid-svg-ou8Jzia8xes6MLXB .cluster span{color:#333;}#mermaid-svg-ou8Jzia8xes6MLXB div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ou8Jzia8xes6MLXB .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ou8Jzia8xes6MLXB rect.text{fill:none;stroke-width:0;}#mermaid-svg-ou8Jzia8xes6MLXB .icon-shape,#mermaid-svg-ou8Jzia8xes6MLXB .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ou8Jzia8xes6MLXB .icon-shape p,#mermaid-svg-ou8Jzia8xes6MLXB .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ou8Jzia8xes6MLXB .icon-shape .label rect,#mermaid-svg-ou8Jzia8xes6MLXB .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ou8Jzia8xes6MLXB .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ou8Jzia8xes6MLXB .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ou8Jzia8xes6MLXB :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Kubernetes 核心能力
资源调度
应用部署与管理
自动修复
服务发现与负载均衡
弹性伸缩

4.3 微服务技术

  • 主要技术:Apache Dubbo(高性能RPC)、Spring Cloud(丰富的微服务生态)。
  • 设计约束 :
    • 微服务个体约束:功能业务领域独立。
    • 横向关系:可发现性、可交互性。
    • 纵向关系(数据层):提倡**数据存储隔离(DSS)**原则。
    • 全局分布式约束:全自动化 CI/CD 流水线。

4.4 无服务器技术(Serverless / FaaS)

  • 特点:全托管、通用性、自动弹性伸缩、按量计费。
  • 函数计算(FaaS):Serverless中最具代表性的产品形态,通过函数拆分,事件驱动触发执行。
  • 关注点:计算资源弹性调度、负载均衡和流控、安全性。

4.5 服务网格(Service Mesh)

服务网格是专门处理服务通讯的基础设施层 ,核心是Sidecar模式 ,将服务通信及相关管控功能从业务程序分离,下沉到基础设施层。

  • 数据平面(Data Plane):由一组 Sidecar 代理(如 Envoy)构成,接管服务流量。
  • 控制平面(Control Plane):负责与数据平面代理通信,下发策略和配置。主流组件:Istio(包含 Pilot、Mixer、Citadel、Galley)。
  • 主流技术:Istio、Linkerd、Consul。

#mermaid-svg-0lfVKopaSLelorMT{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-0lfVKopaSLelorMT .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-0lfVKopaSLelorMT .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-0lfVKopaSLelorMT .error-icon{fill:#552222;}#mermaid-svg-0lfVKopaSLelorMT .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-0lfVKopaSLelorMT .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-0lfVKopaSLelorMT .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-0lfVKopaSLelorMT .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-0lfVKopaSLelorMT .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-0lfVKopaSLelorMT .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-0lfVKopaSLelorMT .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-0lfVKopaSLelorMT .marker{fill:#333333;stroke:#333333;}#mermaid-svg-0lfVKopaSLelorMT .marker.cross{stroke:#333333;}#mermaid-svg-0lfVKopaSLelorMT svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-0lfVKopaSLelorMT p{margin:0;}#mermaid-svg-0lfVKopaSLelorMT .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-0lfVKopaSLelorMT .cluster-label text{fill:#333;}#mermaid-svg-0lfVKopaSLelorMT .cluster-label span{color:#333;}#mermaid-svg-0lfVKopaSLelorMT .cluster-label span p{background-color:transparent;}#mermaid-svg-0lfVKopaSLelorMT .label text,#mermaid-svg-0lfVKopaSLelorMT span{fill:#333;color:#333;}#mermaid-svg-0lfVKopaSLelorMT .node rect,#mermaid-svg-0lfVKopaSLelorMT .node circle,#mermaid-svg-0lfVKopaSLelorMT .node ellipse,#mermaid-svg-0lfVKopaSLelorMT .node polygon,#mermaid-svg-0lfVKopaSLelorMT .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-0lfVKopaSLelorMT .rough-node .label text,#mermaid-svg-0lfVKopaSLelorMT .node .label text,#mermaid-svg-0lfVKopaSLelorMT .image-shape .label,#mermaid-svg-0lfVKopaSLelorMT .icon-shape .label{text-anchor:middle;}#mermaid-svg-0lfVKopaSLelorMT .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-0lfVKopaSLelorMT .rough-node .label,#mermaid-svg-0lfVKopaSLelorMT .node .label,#mermaid-svg-0lfVKopaSLelorMT .image-shape .label,#mermaid-svg-0lfVKopaSLelorMT .icon-shape .label{text-align:center;}#mermaid-svg-0lfVKopaSLelorMT .node.clickable{cursor:pointer;}#mermaid-svg-0lfVKopaSLelorMT .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-0lfVKopaSLelorMT .arrowheadPath{fill:#333333;}#mermaid-svg-0lfVKopaSLelorMT .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-0lfVKopaSLelorMT .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-0lfVKopaSLelorMT .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-0lfVKopaSLelorMT .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-0lfVKopaSLelorMT .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-0lfVKopaSLelorMT .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-0lfVKopaSLelorMT .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-0lfVKopaSLelorMT .cluster text{fill:#333;}#mermaid-svg-0lfVKopaSLelorMT .cluster span{color:#333;}#mermaid-svg-0lfVKopaSLelorMT div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-0lfVKopaSLelorMT .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-0lfVKopaSLelorMT rect.text{fill:none;stroke-width:0;}#mermaid-svg-0lfVKopaSLelorMT .icon-shape,#mermaid-svg-0lfVKopaSLelorMT .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-0lfVKopaSLelorMT .icon-shape p,#mermaid-svg-0lfVKopaSLelorMT .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-0lfVKopaSLelorMT .icon-shape .label rect,#mermaid-svg-0lfVKopaSLelorMT .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-0lfVKopaSLelorMT .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-0lfVKopaSLelorMT .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-0lfVKopaSLelorMT :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 控制平面
数据平面
下发配置/策略
下发配置/策略
Service A
Sidecar Proxy
Service B
Sidecar Proxy
Istiod


5. 云原生架构典型案例分析

  • 旅行公司:多套旧系统合并上私有云 -> 通过 K8s、服务网格提升稳定性 -> 跨地域、跨云自动化灾备,向 DevOps 演进。
  • 汽车公司:容器云平台承载核心应用;私有云+公有云混合交付(敏态/稳态划分);微服务治理,构建中台。
  • 快递公司:基于 K8s 的云原生架构体系,引入云原生数据库,每个应用创建独立 Namespace 实现资源隔离。
  • 电商公司:大促快速扩容(容器化+弹性伸缩),接入链路追踪,全链路压测、限流保护。

6. 典型真题与备考建议

真题 1 :下列不属于云原生架构原则的是?

A. 服务化原则、弹性原则

B. 可观测原则、所有过程自动化原则

C. 零信任原则、接口隔离原则

D. 架构持续演进原则

答案:C。接口隔离原则是面向对象设计原则,不是云原生架构原则。

真题 2 :无服务器技术的技术特点之一是全托管的计算服务,客户只需编写代码构建应用,无需关注同质化的、负担繁重的基于服务器等基础设施的( )等工作。

A. 开发、测试、发布、交付

B. 开发、运维、安全、高可用

C. 机房建设、服务器装机、操作系统安装、软件安装

D. 资源调度、性能压测、负载均衡、数据统计

答案:B。无服务器让开发者无需关注服务器的开发、运维、安全、高可用等基础设施工作。

真题 3 :容器作为标准化软件单元,它将应用及其所有依赖项打包,使应用不再受( )限制,在不同计算环境间快速、可靠地运行。

A. 环境 B. 操作系统 C. 硬件 D. 网络

答案:A。容器封装了底层OS和硬件差异,消除了不同环境(开发、测试、生产)配置的差异。

💡 备考建议

  1. 死磕 7 大原则:能够准确识别并理解其含义(特别是零信任、服务化、韧性)。
  2. 辨析架构模式:清楚 Mesh 化和 Serverless 的特点及适用场景,考试常结合案例背景考察。
  3. 掌握关键技术:理解 K8s 的核心功能、微服务的拆分边界和数据隔离、服务网格的控制平面与数据平面的分离思想。

标签:#软考 #系统架构设计师 #云原生架构 #Kubernetes #服务网格 #Serverless #微服务 #学习笔记

相关推荐
动词ing1 小时前
【学习笔记】51单片机 独立按键控制LED显示二进制
笔记·学习·51单片机
叼烟扛炮2 小时前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip
闲云野鹤在人间2 小时前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
派大猩猩_2 小时前
选题散在 20 篇笔记里?Nutstore Sync在 Obsidian 里创建选题小工具,创作动线短一半
笔记·obsidian·obsidian插件·obsidian ai
前进的李工2 小时前
Agent 学习笔记 04:KV Cache 与上下文缓存
笔记·学习·缓存·agent·注意力机制·kv cache·prompt cache
艾伦_耶格宇2 小时前
【kubernetes - 1.28版本】-7 K8S命令
云原生·容器·kubernetes
Z21-X2 小时前
云原生运维笔记:打通OpenStack的任督二脉——从Neutron网络踩坑到Swift与Heat硬核实战
运维·笔记·学习·云原生
旖旎夜光2 小时前
LCR 170:交易逆序对的总数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
摇滚侠11 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记