第 5 篇 · 云原生生态与实践:微服务、DevOps、可观测性与 Serverless

第 5 篇 · 云原生生态与实践:微服务、DevOps、可观测性与 Serverless

本篇覆盖全景图的 第 ⑤ 层(PaaS / 云原生应用)和第 ⑥ 层(应用与最佳实践),是全系列的收官。

有了 K8s 这个"底座",如何围绕它构建、交付、运维现代化应用?本篇讲:

微服务 → 服务网格 → DevOps/CI-CD → GitOps/IaC → 可观测性 → Serverless,并梳理云部署模式、主流云厂商服务地图和学习路线。


一、云原生生态全景

回顾第 1 篇的"云原生四大支柱":容器化、微服务、DevOps、持续交付。围绕 K8s 已经形成一个庞大生态:
#mermaid-svg-XQPqrxfI78sU00zj{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-XQPqrxfI78sU00zj .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-XQPqrxfI78sU00zj .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-XQPqrxfI78sU00zj .error-icon{fill:#552222;}#mermaid-svg-XQPqrxfI78sU00zj .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-XQPqrxfI78sU00zj .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-XQPqrxfI78sU00zj .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-XQPqrxfI78sU00zj .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-XQPqrxfI78sU00zj .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-XQPqrxfI78sU00zj .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-XQPqrxfI78sU00zj .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-XQPqrxfI78sU00zj .marker{fill:#333333;stroke:#333333;}#mermaid-svg-XQPqrxfI78sU00zj .marker.cross{stroke:#333333;}#mermaid-svg-XQPqrxfI78sU00zj svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-XQPqrxfI78sU00zj p{margin:0;}#mermaid-svg-XQPqrxfI78sU00zj .edge{stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .section--1 rect,#mermaid-svg-XQPqrxfI78sU00zj .section--1 path,#mermaid-svg-XQPqrxfI78sU00zj .section--1 circle,#mermaid-svg-XQPqrxfI78sU00zj .section--1 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section--1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section--1 text{fill:#ffffff;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon--1{font-size:40px;color:#ffffff;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge--1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth--1{stroke-width:17;}#mermaid-svg-XQPqrxfI78sU00zj .section--1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-0 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-0 path,#mermaid-svg-XQPqrxfI78sU00zj .section-0 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-0 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-XQPqrxfI78sU00zj .section-0 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-0{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-0{stroke-width:14;}#mermaid-svg-XQPqrxfI78sU00zj .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-1 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-1 path,#mermaid-svg-XQPqrxfI78sU00zj .section-1 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-1 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-1 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-1{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-1{stroke-width:11;}#mermaid-svg-XQPqrxfI78sU00zj .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-2 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-2 path,#mermaid-svg-XQPqrxfI78sU00zj .section-2 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-2 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-2 text{fill:#ffffff;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-2{stroke-width:8;}#mermaid-svg-XQPqrxfI78sU00zj .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-3 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-3 path,#mermaid-svg-XQPqrxfI78sU00zj .section-3 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-3 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-3 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-3{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-3{stroke-width:5;}#mermaid-svg-XQPqrxfI78sU00zj .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-4 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-4 path,#mermaid-svg-XQPqrxfI78sU00zj .section-4 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-4 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-4 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-4{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-4{stroke-width:2;}#mermaid-svg-XQPqrxfI78sU00zj .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-5 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-5 path,#mermaid-svg-XQPqrxfI78sU00zj .section-5 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-5 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-5 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-5{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-5{stroke-width:-1;}#mermaid-svg-XQPqrxfI78sU00zj .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-6 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-6 path,#mermaid-svg-XQPqrxfI78sU00zj .section-6 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-6 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-6 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-6{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-6{stroke-width:-4;}#mermaid-svg-XQPqrxfI78sU00zj .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-7 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-7 path,#mermaid-svg-XQPqrxfI78sU00zj .section-7 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-7 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-7 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-7{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-7{stroke-width:-7;}#mermaid-svg-XQPqrxfI78sU00zj .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-8 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-8 path,#mermaid-svg-XQPqrxfI78sU00zj .section-8 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-8 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-8 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-8{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-8{stroke-width:-10;}#mermaid-svg-XQPqrxfI78sU00zj .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-9 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-9 path,#mermaid-svg-XQPqrxfI78sU00zj .section-9 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-9 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-9 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-9{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-9{stroke-width:-13;}#mermaid-svg-XQPqrxfI78sU00zj .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-10 rect,#mermaid-svg-XQPqrxfI78sU00zj .section-10 path,#mermaid-svg-XQPqrxfI78sU00zj .section-10 circle,#mermaid-svg-XQPqrxfI78sU00zj .section-10 polygon,#mermaid-svg-XQPqrxfI78sU00zj .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-10 text{fill:black;}#mermaid-svg-XQPqrxfI78sU00zj .node-icon-10{font-size:40px;color:black;}#mermaid-svg-XQPqrxfI78sU00zj .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .edge-depth-10{stroke-width:-16;}#mermaid-svg-XQPqrxfI78sU00zj .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-XQPqrxfI78sU00zj .disabled,#mermaid-svg-XQPqrxfI78sU00zj .disabled circle,#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:lightgray;}#mermaid-svg-XQPqrxfI78sU00zj .disabled text{fill:#efefef;}#mermaid-svg-XQPqrxfI78sU00zj .section-root rect,#mermaid-svg-XQPqrxfI78sU00zj .section-root path,#mermaid-svg-XQPqrxfI78sU00zj .section-root circle,#mermaid-svg-XQPqrxfI78sU00zj .section-root polygon{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-XQPqrxfI78sU00zj .section-root text{fill:#ffffff;}#mermaid-svg-XQPqrxfI78sU00zj .section-root span{color:#ffffff;}#mermaid-svg-XQPqrxfI78sU00zj .section-2 span{color:#ffffff;}#mermaid-svg-XQPqrxfI78sU00zj .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-XQPqrxfI78sU00zj .edge{fill:none;}#mermaid-svg-XQPqrxfI78sU00zj .mindmap-node-label{dy:1em;alignment-baseline:middle;text-anchor:middle;dominant-baseline:middle;text-align:center;}#mermaid-svg-XQPqrxfI78sU00zj :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 云原生生态
应用架构
微服务
服务网格 Service Mesh
分布式事务
交付与运维
DevOps / CI/CD
GitOps
基础设施即代码 IaC
混沌工程
可观测性
日志 Logging
指标 Metrics
链路追踪 Tracing
运行形态
Kubernetes
Serverless
函数计算 FaaS
数据与中间件
消息队列
缓存
云数据库
流式计算


二、应用架构:从单体到微服务

1. 架构演进

#mermaid-svg-ySxQTRVJfhNWyZWU{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-ySxQTRVJfhNWyZWU .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ySxQTRVJfhNWyZWU .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ySxQTRVJfhNWyZWU .error-icon{fill:#552222;}#mermaid-svg-ySxQTRVJfhNWyZWU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ySxQTRVJfhNWyZWU .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ySxQTRVJfhNWyZWU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ySxQTRVJfhNWyZWU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ySxQTRVJfhNWyZWU .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ySxQTRVJfhNWyZWU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ySxQTRVJfhNWyZWU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ySxQTRVJfhNWyZWU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ySxQTRVJfhNWyZWU .marker.cross{stroke:#333333;}#mermaid-svg-ySxQTRVJfhNWyZWU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ySxQTRVJfhNWyZWU p{margin:0;}#mermaid-svg-ySxQTRVJfhNWyZWU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ySxQTRVJfhNWyZWU .cluster-label text{fill:#333;}#mermaid-svg-ySxQTRVJfhNWyZWU .cluster-label span{color:#333;}#mermaid-svg-ySxQTRVJfhNWyZWU .cluster-label span p{background-color:transparent;}#mermaid-svg-ySxQTRVJfhNWyZWU .label text,#mermaid-svg-ySxQTRVJfhNWyZWU span{fill:#333;color:#333;}#mermaid-svg-ySxQTRVJfhNWyZWU .node rect,#mermaid-svg-ySxQTRVJfhNWyZWU .node circle,#mermaid-svg-ySxQTRVJfhNWyZWU .node ellipse,#mermaid-svg-ySxQTRVJfhNWyZWU .node polygon,#mermaid-svg-ySxQTRVJfhNWyZWU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ySxQTRVJfhNWyZWU .rough-node .label text,#mermaid-svg-ySxQTRVJfhNWyZWU .node .label text,#mermaid-svg-ySxQTRVJfhNWyZWU .image-shape .label,#mermaid-svg-ySxQTRVJfhNWyZWU .icon-shape .label{text-anchor:middle;}#mermaid-svg-ySxQTRVJfhNWyZWU .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ySxQTRVJfhNWyZWU .rough-node .label,#mermaid-svg-ySxQTRVJfhNWyZWU .node .label,#mermaid-svg-ySxQTRVJfhNWyZWU .image-shape .label,#mermaid-svg-ySxQTRVJfhNWyZWU .icon-shape .label{text-align:center;}#mermaid-svg-ySxQTRVJfhNWyZWU .node.clickable{cursor:pointer;}#mermaid-svg-ySxQTRVJfhNWyZWU .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ySxQTRVJfhNWyZWU .arrowheadPath{fill:#333333;}#mermaid-svg-ySxQTRVJfhNWyZWU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ySxQTRVJfhNWyZWU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ySxQTRVJfhNWyZWU .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ySxQTRVJfhNWyZWU .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ySxQTRVJfhNWyZWU .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ySxQTRVJfhNWyZWU .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ySxQTRVJfhNWyZWU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ySxQTRVJfhNWyZWU .cluster text{fill:#333;}#mermaid-svg-ySxQTRVJfhNWyZWU .cluster span{color:#333;}#mermaid-svg-ySxQTRVJfhNWyZWU 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-ySxQTRVJfhNWyZWU .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ySxQTRVJfhNWyZWU rect.text{fill:none;stroke-width:0;}#mermaid-svg-ySxQTRVJfhNWyZWU .icon-shape,#mermaid-svg-ySxQTRVJfhNWyZWU .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ySxQTRVJfhNWyZWU .icon-shape p,#mermaid-svg-ySxQTRVJfhNWyZWU .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ySxQTRVJfhNWyZWU .icon-shape .label rect,#mermaid-svg-ySxQTRVJfhNWyZWU .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ySxQTRVJfhNWyZWU .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ySxQTRVJfhNWyZWU .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ySxQTRVJfhNWyZWU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 单体架构

所有功能打在一个包

简单但难扩展、难协作
SOA

面向服务

粗粒度、ESB 总线
微服务

拆成独立小服务

独立部署、独立演进
云原生

微服务 + 容器 + K8s

  • DevOps + 弹性

2. 单体 vs 微服务

对比 单体架构 微服务架构
部署单元 一个完整应用 多个独立小服务
技术栈 统一 各服务可自选(异构)
扩展 整体扩展(浪费) 按服务单独扩缩
协作 大团队、耦合重 小团队、独立开发部署
故障 一处挂可能全挂 隔离、降级
缺点 难维护、难扩展、迭代慢 复杂度高、分布式难题多

3. 微服务的核心问题与解决技术

微服务把系统拆成几十上百个服务,会带来一系列"分布式问题",每类问题都有对应技术:

问题 解决技术 / 工具
服务如何注册、互相发现 注册中心:Nacos、Consul、Eureka、Zookeeper
服务间如何调用 OpenFeign、gRPC、RestTemplate
请求如何分流、负载均衡 Ribbon、LoadBalancer
故障如何防止雪崩 熔断、降级、限流:Sentinel、Hystrix、Resilience4j
统一入口 网关:Spring Cloud Gateway、Zuul、Kong、APISIX
配置如何统一管理 配置中心:Nacos、Apollo、Spring Cloud Config
跨服务事务 分布式事务:Seata、TCC、Saga、最终一致
链路如何排查 链路追踪:SkyWalking、Jaeger、Zipkin

对应课程背景:你已经学过 Spring Cloud(Nacos、Gateway、Sentinel、Feign),它们就是微服务问题的解决方案。

4. 微服务全家桶(Spring Cloud 定位)

#mermaid-svg-P2zAgaamdIIW7bI3{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-P2zAgaamdIIW7bI3 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-P2zAgaamdIIW7bI3 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-P2zAgaamdIIW7bI3 .error-icon{fill:#552222;}#mermaid-svg-P2zAgaamdIIW7bI3 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-P2zAgaamdIIW7bI3 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-P2zAgaamdIIW7bI3 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-P2zAgaamdIIW7bI3 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-P2zAgaamdIIW7bI3 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-P2zAgaamdIIW7bI3 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-P2zAgaamdIIW7bI3 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-P2zAgaamdIIW7bI3 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-P2zAgaamdIIW7bI3 .marker.cross{stroke:#333333;}#mermaid-svg-P2zAgaamdIIW7bI3 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-P2zAgaamdIIW7bI3 p{margin:0;}#mermaid-svg-P2zAgaamdIIW7bI3 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-P2zAgaamdIIW7bI3 .cluster-label text{fill:#333;}#mermaid-svg-P2zAgaamdIIW7bI3 .cluster-label span{color:#333;}#mermaid-svg-P2zAgaamdIIW7bI3 .cluster-label span p{background-color:transparent;}#mermaid-svg-P2zAgaamdIIW7bI3 .label text,#mermaid-svg-P2zAgaamdIIW7bI3 span{fill:#333;color:#333;}#mermaid-svg-P2zAgaamdIIW7bI3 .node rect,#mermaid-svg-P2zAgaamdIIW7bI3 .node circle,#mermaid-svg-P2zAgaamdIIW7bI3 .node ellipse,#mermaid-svg-P2zAgaamdIIW7bI3 .node polygon,#mermaid-svg-P2zAgaamdIIW7bI3 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-P2zAgaamdIIW7bI3 .rough-node .label text,#mermaid-svg-P2zAgaamdIIW7bI3 .node .label text,#mermaid-svg-P2zAgaamdIIW7bI3 .image-shape .label,#mermaid-svg-P2zAgaamdIIW7bI3 .icon-shape .label{text-anchor:middle;}#mermaid-svg-P2zAgaamdIIW7bI3 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-P2zAgaamdIIW7bI3 .rough-node .label,#mermaid-svg-P2zAgaamdIIW7bI3 .node .label,#mermaid-svg-P2zAgaamdIIW7bI3 .image-shape .label,#mermaid-svg-P2zAgaamdIIW7bI3 .icon-shape .label{text-align:center;}#mermaid-svg-P2zAgaamdIIW7bI3 .node.clickable{cursor:pointer;}#mermaid-svg-P2zAgaamdIIW7bI3 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-P2zAgaamdIIW7bI3 .arrowheadPath{fill:#333333;}#mermaid-svg-P2zAgaamdIIW7bI3 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-P2zAgaamdIIW7bI3 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-P2zAgaamdIIW7bI3 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-P2zAgaamdIIW7bI3 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-P2zAgaamdIIW7bI3 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-P2zAgaamdIIW7bI3 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-P2zAgaamdIIW7bI3 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-P2zAgaamdIIW7bI3 .cluster text{fill:#333;}#mermaid-svg-P2zAgaamdIIW7bI3 .cluster span{color:#333;}#mermaid-svg-P2zAgaamdIIW7bI3 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-P2zAgaamdIIW7bI3 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-P2zAgaamdIIW7bI3 rect.text{fill:none;stroke-width:0;}#mermaid-svg-P2zAgaamdIIW7bI3 .icon-shape,#mermaid-svg-P2zAgaamdIIW7bI3 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-P2zAgaamdIIW7bI3 .icon-shape p,#mermaid-svg-P2zAgaamdIIW7bI3 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-P2zAgaamdIIW7bI3 .icon-shape .label rect,#mermaid-svg-P2zAgaamdIIW7bI3 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-P2zAgaamdIIW7bI3 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-P2zAgaamdIIW7bI3 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-P2zAgaamdIIW7bI3 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 网关 Gateway
业务微服务群
注册/配置中心 Nacos
熔断限流 Sentinel
链路追踪 SkyWalking
消息队列 RocketMQ/Kafka
各自的数据库/缓存


三、服务网格(Service Mesh):把通信能力下沉

1. 微服务的痛点

用 Spring Cloud 时,每个服务都要引入注册发现、熔断、负载均衡的 SDK(如 Feign、Sentinel),导致:

  • 业务代码与通信治理代码耦合;
  • 升级治理组件要改所有服务、重新发布;
  • 多语言(Java + Go + Python)下要各写一套。

2. Service Mesh 的原理

服务网格把服务间通信、负载均衡、加密、可观测、流量控制等能力从应用中剥离,下沉到一个独立的"代理"(Sidecar)中,应用对此无感知。
#mermaid-svg-tEZi6xlvQFic2BJp{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-tEZi6xlvQFic2BJp .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-tEZi6xlvQFic2BJp .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-tEZi6xlvQFic2BJp .error-icon{fill:#552222;}#mermaid-svg-tEZi6xlvQFic2BJp .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tEZi6xlvQFic2BJp .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-tEZi6xlvQFic2BJp .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tEZi6xlvQFic2BJp .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tEZi6xlvQFic2BJp .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-tEZi6xlvQFic2BJp .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tEZi6xlvQFic2BJp .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tEZi6xlvQFic2BJp .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tEZi6xlvQFic2BJp .marker.cross{stroke:#333333;}#mermaid-svg-tEZi6xlvQFic2BJp svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tEZi6xlvQFic2BJp p{margin:0;}#mermaid-svg-tEZi6xlvQFic2BJp .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-tEZi6xlvQFic2BJp .cluster-label text{fill:#333;}#mermaid-svg-tEZi6xlvQFic2BJp .cluster-label span{color:#333;}#mermaid-svg-tEZi6xlvQFic2BJp .cluster-label span p{background-color:transparent;}#mermaid-svg-tEZi6xlvQFic2BJp .label text,#mermaid-svg-tEZi6xlvQFic2BJp span{fill:#333;color:#333;}#mermaid-svg-tEZi6xlvQFic2BJp .node rect,#mermaid-svg-tEZi6xlvQFic2BJp .node circle,#mermaid-svg-tEZi6xlvQFic2BJp .node ellipse,#mermaid-svg-tEZi6xlvQFic2BJp .node polygon,#mermaid-svg-tEZi6xlvQFic2BJp .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tEZi6xlvQFic2BJp .rough-node .label text,#mermaid-svg-tEZi6xlvQFic2BJp .node .label text,#mermaid-svg-tEZi6xlvQFic2BJp .image-shape .label,#mermaid-svg-tEZi6xlvQFic2BJp .icon-shape .label{text-anchor:middle;}#mermaid-svg-tEZi6xlvQFic2BJp .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-tEZi6xlvQFic2BJp .rough-node .label,#mermaid-svg-tEZi6xlvQFic2BJp .node .label,#mermaid-svg-tEZi6xlvQFic2BJp .image-shape .label,#mermaid-svg-tEZi6xlvQFic2BJp .icon-shape .label{text-align:center;}#mermaid-svg-tEZi6xlvQFic2BJp .node.clickable{cursor:pointer;}#mermaid-svg-tEZi6xlvQFic2BJp .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-tEZi6xlvQFic2BJp .arrowheadPath{fill:#333333;}#mermaid-svg-tEZi6xlvQFic2BJp .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tEZi6xlvQFic2BJp .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tEZi6xlvQFic2BJp .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tEZi6xlvQFic2BJp .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-tEZi6xlvQFic2BJp .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tEZi6xlvQFic2BJp .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-tEZi6xlvQFic2BJp .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tEZi6xlvQFic2BJp .cluster text{fill:#333;}#mermaid-svg-tEZi6xlvQFic2BJp .cluster span{color:#333;}#mermaid-svg-tEZi6xlvQFic2BJp 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-tEZi6xlvQFic2BJp .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-tEZi6xlvQFic2BJp rect.text{fill:none;stroke-width:0;}#mermaid-svg-tEZi6xlvQFic2BJp .icon-shape,#mermaid-svg-tEZi6xlvQFic2BJp .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tEZi6xlvQFic2BJp .icon-shape p,#mermaid-svg-tEZi6xlvQFic2BJp .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-tEZi6xlvQFic2BJp .icon-shape .label rect,#mermaid-svg-tEZi6xlvQFic2BJp .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tEZi6xlvQFic2BJp .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-tEZi6xlvQFic2BJp .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-tEZi6xlvQFic2BJp :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} PodB
PodA
所有服务间流量都经过代理(mTLS加密/负载均衡/可观测)
服务A(只管业务)
Sidecar 代理 Envoy
服务B(只管业务)
Sidecar 代理 Envoy
控制平面(下发路由/策略/证书)

  • 业务服务之间不直接通信,而是把请求交给"同 Pod 的 Sidecar",由代理负责一切;
  • 控制平面统一下发路由规则、安全策略、收集指标。

3. 主流产品(同类)

产品 特点
Istio 最主流、功能最全,Envoy 为数据面
Linkerd 轻量、简单
Consul Connect HashiCorp 出品
国内 阿里云 ASM、腾讯云 TCM、华为 ASM

定位:Spring Cloud 是"应用内"治理(SDK),Service Mesh 是"应用外"治理(Sidecar)。这是演进方向,但中小团队用 Spring Cloud 更简单。


四、DevOps、CI/CD:打通开发与运维

1. DevOps 是什么

DevOps = Development + Operations,是一种打破开发、测试、运维壁垒,强调协作、自动化、持续交付的文化与实践。

  • 开发管"写代码",运维管"稳定运行",传统模式下二者目标冲突、交付靠人工、慢且易错;
  • DevOps 用自动化流水线把"代码提交 → 构建 → 测试 → 部署 → 监控"打通。

2. ★ CI/CD 流水线

#mermaid-svg-vl6bS0PNuXm3dwuO{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-vl6bS0PNuXm3dwuO .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-vl6bS0PNuXm3dwuO .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-vl6bS0PNuXm3dwuO .error-icon{fill:#552222;}#mermaid-svg-vl6bS0PNuXm3dwuO .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-vl6bS0PNuXm3dwuO .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-vl6bS0PNuXm3dwuO .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-vl6bS0PNuXm3dwuO .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-vl6bS0PNuXm3dwuO .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-vl6bS0PNuXm3dwuO .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-vl6bS0PNuXm3dwuO .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-vl6bS0PNuXm3dwuO .marker{fill:#333333;stroke:#333333;}#mermaid-svg-vl6bS0PNuXm3dwuO .marker.cross{stroke:#333333;}#mermaid-svg-vl6bS0PNuXm3dwuO svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-vl6bS0PNuXm3dwuO p{margin:0;}#mermaid-svg-vl6bS0PNuXm3dwuO .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-vl6bS0PNuXm3dwuO .cluster-label text{fill:#333;}#mermaid-svg-vl6bS0PNuXm3dwuO .cluster-label span{color:#333;}#mermaid-svg-vl6bS0PNuXm3dwuO .cluster-label span p{background-color:transparent;}#mermaid-svg-vl6bS0PNuXm3dwuO .label text,#mermaid-svg-vl6bS0PNuXm3dwuO span{fill:#333;color:#333;}#mermaid-svg-vl6bS0PNuXm3dwuO .node rect,#mermaid-svg-vl6bS0PNuXm3dwuO .node circle,#mermaid-svg-vl6bS0PNuXm3dwuO .node ellipse,#mermaid-svg-vl6bS0PNuXm3dwuO .node polygon,#mermaid-svg-vl6bS0PNuXm3dwuO .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-vl6bS0PNuXm3dwuO .rough-node .label text,#mermaid-svg-vl6bS0PNuXm3dwuO .node .label text,#mermaid-svg-vl6bS0PNuXm3dwuO .image-shape .label,#mermaid-svg-vl6bS0PNuXm3dwuO .icon-shape .label{text-anchor:middle;}#mermaid-svg-vl6bS0PNuXm3dwuO .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-vl6bS0PNuXm3dwuO .rough-node .label,#mermaid-svg-vl6bS0PNuXm3dwuO .node .label,#mermaid-svg-vl6bS0PNuXm3dwuO .image-shape .label,#mermaid-svg-vl6bS0PNuXm3dwuO .icon-shape .label{text-align:center;}#mermaid-svg-vl6bS0PNuXm3dwuO .node.clickable{cursor:pointer;}#mermaid-svg-vl6bS0PNuXm3dwuO .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-vl6bS0PNuXm3dwuO .arrowheadPath{fill:#333333;}#mermaid-svg-vl6bS0PNuXm3dwuO .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-vl6bS0PNuXm3dwuO .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-vl6bS0PNuXm3dwuO .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-vl6bS0PNuXm3dwuO .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-vl6bS0PNuXm3dwuO .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-vl6bS0PNuXm3dwuO .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-vl6bS0PNuXm3dwuO .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-vl6bS0PNuXm3dwuO .cluster text{fill:#333;}#mermaid-svg-vl6bS0PNuXm3dwuO .cluster span{color:#333;}#mermaid-svg-vl6bS0PNuXm3dwuO 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-vl6bS0PNuXm3dwuO .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-vl6bS0PNuXm3dwuO rect.text{fill:none;stroke-width:0;}#mermaid-svg-vl6bS0PNuXm3dwuO .icon-shape,#mermaid-svg-vl6bS0PNuXm3dwuO .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-vl6bS0PNuXm3dwuO .icon-shape p,#mermaid-svg-vl6bS0PNuXm3dwuO .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-vl6bS0PNuXm3dwuO .icon-shape .label rect,#mermaid-svg-vl6bS0PNuXm3dwuO .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-vl6bS0PNuXm3dwuO .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-vl6bS0PNuXm3dwuO .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-vl6bS0PNuXm3dwuO :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 发现问题,反馈给开发
开发提交代码

Git Push
CI 持续集成

自动拉取/构建/编译
自动测试

单元测试/代码扫描
构建镜像

打包成 Docker 镜像
推送镜像仓库

Harbor/Registry
CD 持续交付/部署

自动部署到 K8s
监控反馈

概念区分:

  • CI(持续集成):频繁把代码合并到主干,自动构建、测试,尽早发现问题;
  • CD(持续交付):随时可发布到生产,但发布需手动确认;
  • CD(持续部署) :通过测试后自动部署到生产,无需人工。

3. 主流 CI/CD 工具(同类)

工具 特点
Jenkins 最经典、插件最丰富、自托管
GitLab CI 与 GitLab 代码库一体
GitHub Actions GitHub 原生,云原生
Argo CD 专注 K8s 的 GitOps 持续部署
Tekton K8s 原生流水线框架
国内 阿里云云效、腾讯 CODING

4. 镜像仓库

构建好的镜像要存到镜像仓库(Registry),类似代码的 Git:

  • Docker Hub(公共)、Harbor(私有自建,企业主流)、阿里云 ACR、AWS ECR、华为 SWR。

五、GitOps 与基础设施即代码(IaC)

1. GitOps:以 Git 为唯一事实来源

GitOps 是在 K8s 上做持续交付的最佳实践:把应用的"期望状态"(YAML)存放在 Git 仓库中,由 Agent 自动同步到集群。

  • 开发者改 Git 仓库里的 YAML → 集群内的 Agent(如 Argo CD)检测到差异 → 自动把集群调整到 Git 描述的状态;
  • 好处:Git 有版本、可审计、可回滚、有权限管理;不直接操作生产集群,更安全。

#mermaid-svg-dxECWfRCw4fa03DL{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-dxECWfRCw4fa03DL .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-dxECWfRCw4fa03DL .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-dxECWfRCw4fa03DL .error-icon{fill:#552222;}#mermaid-svg-dxECWfRCw4fa03DL .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-dxECWfRCw4fa03DL .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-dxECWfRCw4fa03DL .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-dxECWfRCw4fa03DL .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-dxECWfRCw4fa03DL .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-dxECWfRCw4fa03DL .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-dxECWfRCw4fa03DL .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-dxECWfRCw4fa03DL .marker{fill:#333333;stroke:#333333;}#mermaid-svg-dxECWfRCw4fa03DL .marker.cross{stroke:#333333;}#mermaid-svg-dxECWfRCw4fa03DL svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-dxECWfRCw4fa03DL p{margin:0;}#mermaid-svg-dxECWfRCw4fa03DL .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-dxECWfRCw4fa03DL .cluster-label text{fill:#333;}#mermaid-svg-dxECWfRCw4fa03DL .cluster-label span{color:#333;}#mermaid-svg-dxECWfRCw4fa03DL .cluster-label span p{background-color:transparent;}#mermaid-svg-dxECWfRCw4fa03DL .label text,#mermaid-svg-dxECWfRCw4fa03DL span{fill:#333;color:#333;}#mermaid-svg-dxECWfRCw4fa03DL .node rect,#mermaid-svg-dxECWfRCw4fa03DL .node circle,#mermaid-svg-dxECWfRCw4fa03DL .node ellipse,#mermaid-svg-dxECWfRCw4fa03DL .node polygon,#mermaid-svg-dxECWfRCw4fa03DL .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-dxECWfRCw4fa03DL .rough-node .label text,#mermaid-svg-dxECWfRCw4fa03DL .node .label text,#mermaid-svg-dxECWfRCw4fa03DL .image-shape .label,#mermaid-svg-dxECWfRCw4fa03DL .icon-shape .label{text-anchor:middle;}#mermaid-svg-dxECWfRCw4fa03DL .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-dxECWfRCw4fa03DL .rough-node .label,#mermaid-svg-dxECWfRCw4fa03DL .node .label,#mermaid-svg-dxECWfRCw4fa03DL .image-shape .label,#mermaid-svg-dxECWfRCw4fa03DL .icon-shape .label{text-align:center;}#mermaid-svg-dxECWfRCw4fa03DL .node.clickable{cursor:pointer;}#mermaid-svg-dxECWfRCw4fa03DL .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-dxECWfRCw4fa03DL .arrowheadPath{fill:#333333;}#mermaid-svg-dxECWfRCw4fa03DL .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-dxECWfRCw4fa03DL .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-dxECWfRCw4fa03DL .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-dxECWfRCw4fa03DL .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-dxECWfRCw4fa03DL .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-dxECWfRCw4fa03DL .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-dxECWfRCw4fa03DL .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-dxECWfRCw4fa03DL .cluster text{fill:#333;}#mermaid-svg-dxECWfRCw4fa03DL .cluster span{color:#333;}#mermaid-svg-dxECWfRCw4fa03DL 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-dxECWfRCw4fa03DL .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-dxECWfRCw4fa03DL rect.text{fill:none;stroke-width:0;}#mermaid-svg-dxECWfRCw4fa03DL .icon-shape,#mermaid-svg-dxECWfRCw4fa03DL .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-dxECWfRCw4fa03DL .icon-shape p,#mermaid-svg-dxECWfRCw4fa03DL .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-dxECWfRCw4fa03DL .icon-shape .label rect,#mermaid-svg-dxECWfRCw4fa03DL .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-dxECWfRCw4fa03DL .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-dxECWfRCw4fa03DL .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-dxECWfRCw4fa03DL :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} PR 合并
对比差异,自动同步
状态反馈
Git 仓库(期望状态,唯一事实源)
Argo CD / Flux
K8s 集群(实际状态)

主流工具:Argo CD、Flux(同类)。

2. IaC:基础设施即代码

IaC(Infrastructure as Code):用代码(而非手工点控制台)来定义和管理服务器、网络、云资源,可版本化、可复用、可自动创建。

工具 特点
Terraform 最主流,多云通用,声明式(HCL 语言)
Pulumi 用通用语言(Go/Python/TS)写 IaC
Ansible 配置管理(偏软件安装、配置),无 Agent
CloudFormation AWS 原生
国内 阿里云 ROS、华为 RFS

区分:

  • Terraform 管"资源的创建"(创建 VM、网络、云盘);
  • Ansible 管"资源内的配置"(装软件、改配置);
  • 二者常配合使用。

六、可观测性:让系统"看得见、查得清"

1. 为什么需要可观测性

云原生系统有大量微服务、容器动态变化,故障定位极难。可观测性(Observability)让你能理解系统内部状态、快速定位问题。

2. ★ 三大支柱

#mermaid-svg-bGUM9vqPai3DS51B{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-bGUM9vqPai3DS51B .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-bGUM9vqPai3DS51B .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-bGUM9vqPai3DS51B .error-icon{fill:#552222;}#mermaid-svg-bGUM9vqPai3DS51B .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bGUM9vqPai3DS51B .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-bGUM9vqPai3DS51B .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bGUM9vqPai3DS51B .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bGUM9vqPai3DS51B .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-bGUM9vqPai3DS51B .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bGUM9vqPai3DS51B .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bGUM9vqPai3DS51B .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bGUM9vqPai3DS51B .marker.cross{stroke:#333333;}#mermaid-svg-bGUM9vqPai3DS51B svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bGUM9vqPai3DS51B p{margin:0;}#mermaid-svg-bGUM9vqPai3DS51B .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-bGUM9vqPai3DS51B .cluster-label text{fill:#333;}#mermaid-svg-bGUM9vqPai3DS51B .cluster-label span{color:#333;}#mermaid-svg-bGUM9vqPai3DS51B .cluster-label span p{background-color:transparent;}#mermaid-svg-bGUM9vqPai3DS51B .label text,#mermaid-svg-bGUM9vqPai3DS51B span{fill:#333;color:#333;}#mermaid-svg-bGUM9vqPai3DS51B .node rect,#mermaid-svg-bGUM9vqPai3DS51B .node circle,#mermaid-svg-bGUM9vqPai3DS51B .node ellipse,#mermaid-svg-bGUM9vqPai3DS51B .node polygon,#mermaid-svg-bGUM9vqPai3DS51B .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-bGUM9vqPai3DS51B .rough-node .label text,#mermaid-svg-bGUM9vqPai3DS51B .node .label text,#mermaid-svg-bGUM9vqPai3DS51B .image-shape .label,#mermaid-svg-bGUM9vqPai3DS51B .icon-shape .label{text-anchor:middle;}#mermaid-svg-bGUM9vqPai3DS51B .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-bGUM9vqPai3DS51B .rough-node .label,#mermaid-svg-bGUM9vqPai3DS51B .node .label,#mermaid-svg-bGUM9vqPai3DS51B .image-shape .label,#mermaid-svg-bGUM9vqPai3DS51B .icon-shape .label{text-align:center;}#mermaid-svg-bGUM9vqPai3DS51B .node.clickable{cursor:pointer;}#mermaid-svg-bGUM9vqPai3DS51B .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-bGUM9vqPai3DS51B .arrowheadPath{fill:#333333;}#mermaid-svg-bGUM9vqPai3DS51B .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-bGUM9vqPai3DS51B .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-bGUM9vqPai3DS51B .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-bGUM9vqPai3DS51B .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-bGUM9vqPai3DS51B .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-bGUM9vqPai3DS51B .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-bGUM9vqPai3DS51B .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-bGUM9vqPai3DS51B .cluster text{fill:#333;}#mermaid-svg-bGUM9vqPai3DS51B .cluster span{color:#333;}#mermaid-svg-bGUM9vqPai3DS51B 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-bGUM9vqPai3DS51B .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-bGUM9vqPai3DS51B rect.text{fill:none;stroke-width:0;}#mermaid-svg-bGUM9vqPai3DS51B .icon-shape,#mermaid-svg-bGUM9vqPai3DS51B .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-bGUM9vqPai3DS51B .icon-shape p,#mermaid-svg-bGUM9vqPai3DS51B .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-bGUM9vqPai3DS51B .icon-shape .label rect,#mermaid-svg-bGUM9vqPai3DS51B .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-bGUM9vqPai3DS51B .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-bGUM9vqPai3DS51B .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-bGUM9vqPai3DS51B :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 应用
微服务 / 容器
Metrics 指标

聚合数值:CPU、QPS、延迟、错误率

告警(出问题先看它)
Logging 日志

离散事件:详细记录发生了什么

排查具体原因
Tracing 链路追踪

一个请求经过哪些服务、每段耗时

定位慢在哪、错在哪

支柱 回答的问题 典型工具
Metrics 指标 系统现在正常吗?(趋势、告警) Prometheus + Grafana、Zabbix
Logging 日志 具体发生了什么?(细节) ELK / EFK(Elasticsearch/Logstash/Kibana 或 Fluentd)、Loki
Tracing 追踪 请求卡在哪一环?(调用链) SkyWalking、Jaeger、Zipkin、OpenTelemetry

排查逻辑:告警(Metrics)发现异常 → 链路追踪(Tracing)定位到某个服务/接口 → 看日志(Logging)查具体原因。

3. 关键工具说明

  • Prometheus :拉取(Pull)并存储时序指标,CNCF 第二大项目,配合 Grafana 做可视化大盘和告警;
  • EFK:Elasticsearch 存日志 + Fluentd/Filebeat 采集 + Kibana 展示;
  • SkyWalking:国产、APM(应用性能监控),自带服务拓扑、链路追踪、指标;
  • OpenTelemetry:统一的采集标准,正在成为可观测性的统一"数据入口"。

4. 其他运维实践

  • 混沌工程:主动注入故障(杀容器、延迟、断网),验证系统韧性,工具 Chaos Mesh;
  • FinOps:云成本管理与优化。

七、Serverless:把"服务器"完全交给云

1. Serverless 是什么

Serverless(无服务器):开发者只写业务函数、上传,云厂商负责一切底层资源(自动分配、弹性、计费),没有请求时不占资源、不收费。

  • 不是"没有服务器",而是"你不用管服务器"。

2. 两种形态

形态 说明 例子
FaaS 函数即服务 以"函数"为单位,事件触发、按需运行 AWS Lambda、阿里云函数计算 FC、腾讯 SCF
BaaS 后端即服务 直接用云提供的后端能力(数据库、认证、存储) 云数据库、对象存储、Cognito 认证

3. 与传统方案对比

对比 虚拟机 容器/K8s Serverless
你要管什么 一切(OS、运行时) 应用、镜像 只管业务代码
弹性 手动/半自动 自动扩缩 完全自动、瞬时
计费 按运行时长 按资源 按实际调用次数/时长
空闲成本 有 有 几乎为 0
适用 稳定服务 复杂云原生应用 事件驱动、突发、轻量任务

局限:冷启动延迟、调试受限、易被厂商绑定、不适合长任务。


八、★ 云部署模式与云厂商服务地图

1. 四种部署模式(回顾第 1 篇)

模式 说明 适用
公有云 第三方提供,多租户共享,按需付费 中小企业、快速上线、弹性大
私有云 自建/专属,安全可控 金融、政府、数据敏感
混合云 公有 + 私有打通,敏感数据放私有、弹性放公有 多数大中型企业
多云 同时用多家公有云,避免绑定、择优 大型企业、全球化

2. 云厂商服务地图(把服务对应到知识体系)

以阿里云 / AWS / 华为云为例,理解每类云服务在体系中的位置:

类别 阿里云 AWS 华为云 对应本系列
弹性计算(VM) ECS EC2 ECS 第 3 篇(虚拟化)
容器/K8s ACK EKS CCE 第 4 篇
函数计算 FC Lambda FunctionGraph 第 5 篇(Serverless)
对象存储 OSS S3 OBS 第 2 篇
块存储/云盘 EBS/云盘 EBS EVS 第 2 篇
关系数据库 RDS RDS RDS 第 5 篇(BaaS)
负载均衡 SLB/ALB ELB ELB 第 2/4 篇
VPC 私有网络 VPC VPC VPC 第 2 篇
消息队列 RocketMQ SQS/SNS DMS 第 5 篇
缓存 Redis ElastiCache DCS 第 5 篇

看到任何云服务,都能归到"计算 / 存储 / 网络 / 数据库 / 容器 / 中间件"这几类,你就不会再"不知道它在体系哪里"。


九、技术趋势与学习路线

1. 技术趋势

#mermaid-svg-NMWEwjLIZyfZH2W2{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-NMWEwjLIZyfZH2W2 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-NMWEwjLIZyfZH2W2 .error-icon{fill:#552222;}#mermaid-svg-NMWEwjLIZyfZH2W2 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-NMWEwjLIZyfZH2W2 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-NMWEwjLIZyfZH2W2 .marker.cross{stroke:#333333;}#mermaid-svg-NMWEwjLIZyfZH2W2 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-NMWEwjLIZyfZH2W2 p{margin:0;}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge{stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section--1 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section--1 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section--1 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section--1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section--1 text{fill:#ffffff;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon--1{font-size:40px;color:#ffffff;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge--1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth--1{stroke-width:17;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section--1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:#ffffff;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-0 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-0 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-0 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-0 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-0{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-0{stroke-width:14;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-1 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-1 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-1 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-1 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-1{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-1{stroke-width:11;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-2 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-2 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-2 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-2 text{fill:#ffffff;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-2{stroke-width:8;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:#ffffff;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-3 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-3 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-3 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-3 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-3{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-3{stroke-width:5;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-4 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-4 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-4 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-4 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-4{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-4{stroke-width:2;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-5 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-5 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-5 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-5 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-5{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-5{stroke-width:-1;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-6 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-6 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-6 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-6 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-6{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-6{stroke-width:-4;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-7 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-7 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-7 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-7 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-7{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-7{stroke-width:-7;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-8 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-8 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-8 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-8 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-8{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-8{stroke-width:-10;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-9 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-9 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-9 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-9 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-9{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-9{stroke-width:-13;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-10 rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-10 path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-10 circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-10 text{fill:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .node-icon-10{font-size:40px;color:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge-depth-10{stroke-width:-16;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-NMWEwjLIZyfZH2W2 .lineWrapper line{stroke:black;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled circle,#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:lightgray;}#mermaid-svg-NMWEwjLIZyfZH2W2 .disabled text{fill:#efefef;}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-root rect,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-root path,#mermaid-svg-NMWEwjLIZyfZH2W2 .section-root circle{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-NMWEwjLIZyfZH2W2 .section-root text{fill:#ffffff;}#mermaid-svg-NMWEwjLIZyfZH2W2 .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-NMWEwjLIZyfZH2W2 .edge{fill:none;}#mermaid-svg-NMWEwjLIZyfZH2W2 .eventWrapper{filter:brightness(120%);}#mermaid-svg-NMWEwjLIZyfZH2W2 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 虚拟化时代 资源池化,VM为中心 云原生时代 容器 + K8s + 微服务 服务网格/Serverless 更彻底的解耦与免运维 平台工程/FinOps 内部开发者平台、成本治理 AI + 云 云原生 AI、GPU调度、大模型平台 边缘计算 算力下沉到边缘,低延迟 云计算演进趋势

2. 推荐学习路线(结合本系列)

#mermaid-svg-aKSvMyF1vSumJW26{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-aKSvMyF1vSumJW26 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-aKSvMyF1vSumJW26 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-aKSvMyF1vSumJW26 .error-icon{fill:#552222;}#mermaid-svg-aKSvMyF1vSumJW26 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-aKSvMyF1vSumJW26 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-aKSvMyF1vSumJW26 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-aKSvMyF1vSumJW26 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-aKSvMyF1vSumJW26 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-aKSvMyF1vSumJW26 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-aKSvMyF1vSumJW26 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-aKSvMyF1vSumJW26 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-aKSvMyF1vSumJW26 .marker.cross{stroke:#333333;}#mermaid-svg-aKSvMyF1vSumJW26 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-aKSvMyF1vSumJW26 p{margin:0;}#mermaid-svg-aKSvMyF1vSumJW26 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-aKSvMyF1vSumJW26 .cluster-label text{fill:#333;}#mermaid-svg-aKSvMyF1vSumJW26 .cluster-label span{color:#333;}#mermaid-svg-aKSvMyF1vSumJW26 .cluster-label span p{background-color:transparent;}#mermaid-svg-aKSvMyF1vSumJW26 .label text,#mermaid-svg-aKSvMyF1vSumJW26 span{fill:#333;color:#333;}#mermaid-svg-aKSvMyF1vSumJW26 .node rect,#mermaid-svg-aKSvMyF1vSumJW26 .node circle,#mermaid-svg-aKSvMyF1vSumJW26 .node ellipse,#mermaid-svg-aKSvMyF1vSumJW26 .node polygon,#mermaid-svg-aKSvMyF1vSumJW26 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-aKSvMyF1vSumJW26 .rough-node .label text,#mermaid-svg-aKSvMyF1vSumJW26 .node .label text,#mermaid-svg-aKSvMyF1vSumJW26 .image-shape .label,#mermaid-svg-aKSvMyF1vSumJW26 .icon-shape .label{text-anchor:middle;}#mermaid-svg-aKSvMyF1vSumJW26 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-aKSvMyF1vSumJW26 .rough-node .label,#mermaid-svg-aKSvMyF1vSumJW26 .node .label,#mermaid-svg-aKSvMyF1vSumJW26 .image-shape .label,#mermaid-svg-aKSvMyF1vSumJW26 .icon-shape .label{text-align:center;}#mermaid-svg-aKSvMyF1vSumJW26 .node.clickable{cursor:pointer;}#mermaid-svg-aKSvMyF1vSumJW26 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-aKSvMyF1vSumJW26 .arrowheadPath{fill:#333333;}#mermaid-svg-aKSvMyF1vSumJW26 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-aKSvMyF1vSumJW26 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-aKSvMyF1vSumJW26 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-aKSvMyF1vSumJW26 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-aKSvMyF1vSumJW26 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-aKSvMyF1vSumJW26 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-aKSvMyF1vSumJW26 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-aKSvMyF1vSumJW26 .cluster text{fill:#333;}#mermaid-svg-aKSvMyF1vSumJW26 .cluster span{color:#333;}#mermaid-svg-aKSvMyF1vSumJW26 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-aKSvMyF1vSumJW26 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-aKSvMyF1vSumJW26 rect.text{fill:none;stroke-width:0;}#mermaid-svg-aKSvMyF1vSumJW26 .icon-shape,#mermaid-svg-aKSvMyF1vSumJW26 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-aKSvMyF1vSumJW26 .icon-shape p,#mermaid-svg-aKSvMyF1vSumJW26 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-aKSvMyF1vSumJW26 .icon-shape .label rect,#mermaid-svg-aKSvMyF1vSumJW26 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-aKSvMyF1vSumJW26 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-aKSvMyF1vSumJW26 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-aKSvMyF1vSumJW26 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} ① 基础:Linux 命令 + 网络 + 服务器/存储

(第 2、3 篇)
② 虚拟化:KVM/ESXi,理解 VM 与资源池

(第 3 篇)
③ 容器:Docker + 镜像 + 容器原理

(第 4 篇)
④ Kubernetes:架构 + Pod/Service/部署

(第 4 篇,核心,多动手)
⑤ 云原生应用:微服务 + Service Mesh

(第 5 篇)
⑥ DevOps:CI/CD + GitOps + IaC + 可观测性

(第 5 篇)
⑦ 实战:在云上部署完整项目 + 考认证(CKA/云厂商)

学习建议:

  • 动手优先:K8s 必须在环境里反复练(minikube/kind/公有云托管 K8s),光看没用;
  • 重点投入:Linux、网络、Kubernetes、CI/CD、可观测性,这是云原生工程师的核心;
  • 认证参考:CKA(K8s 管理员)、CKS(安全)、云厂商认证(ACA/ACP、AWS SAA、华为 HCIA/HCIP);
  • 完整项目:用微服务 + Docker + K8s + Jenkins/Argo + Prometheus + 云服务部署一个真实应用,形成闭环。

十、全系列总结

回顾这五篇,思想上已经从"混乱的技术名词"变成了"分层的清晰体系":
#mermaid-svg-NhQU2bim1CAyHHF7{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-NhQU2bim1CAyHHF7 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-NhQU2bim1CAyHHF7 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-NhQU2bim1CAyHHF7 .error-icon{fill:#552222;}#mermaid-svg-NhQU2bim1CAyHHF7 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-NhQU2bim1CAyHHF7 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-NhQU2bim1CAyHHF7 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-NhQU2bim1CAyHHF7 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-NhQU2bim1CAyHHF7 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-NhQU2bim1CAyHHF7 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-NhQU2bim1CAyHHF7 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-NhQU2bim1CAyHHF7 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-NhQU2bim1CAyHHF7 .marker.cross{stroke:#333333;}#mermaid-svg-NhQU2bim1CAyHHF7 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-NhQU2bim1CAyHHF7 p{margin:0;}#mermaid-svg-NhQU2bim1CAyHHF7 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-NhQU2bim1CAyHHF7 .cluster-label text{fill:#333;}#mermaid-svg-NhQU2bim1CAyHHF7 .cluster-label span{color:#333;}#mermaid-svg-NhQU2bim1CAyHHF7 .cluster-label span p{background-color:transparent;}#mermaid-svg-NhQU2bim1CAyHHF7 .label text,#mermaid-svg-NhQU2bim1CAyHHF7 span{fill:#333;color:#333;}#mermaid-svg-NhQU2bim1CAyHHF7 .node rect,#mermaid-svg-NhQU2bim1CAyHHF7 .node circle,#mermaid-svg-NhQU2bim1CAyHHF7 .node ellipse,#mermaid-svg-NhQU2bim1CAyHHF7 .node polygon,#mermaid-svg-NhQU2bim1CAyHHF7 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-NhQU2bim1CAyHHF7 .rough-node .label text,#mermaid-svg-NhQU2bim1CAyHHF7 .node .label text,#mermaid-svg-NhQU2bim1CAyHHF7 .image-shape .label,#mermaid-svg-NhQU2bim1CAyHHF7 .icon-shape .label{text-anchor:middle;}#mermaid-svg-NhQU2bim1CAyHHF7 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-NhQU2bim1CAyHHF7 .rough-node .label,#mermaid-svg-NhQU2bim1CAyHHF7 .node .label,#mermaid-svg-NhQU2bim1CAyHHF7 .image-shape .label,#mermaid-svg-NhQU2bim1CAyHHF7 .icon-shape .label{text-align:center;}#mermaid-svg-NhQU2bim1CAyHHF7 .node.clickable{cursor:pointer;}#mermaid-svg-NhQU2bim1CAyHHF7 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-NhQU2bim1CAyHHF7 .arrowheadPath{fill:#333333;}#mermaid-svg-NhQU2bim1CAyHHF7 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-NhQU2bim1CAyHHF7 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-NhQU2bim1CAyHHF7 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NhQU2bim1CAyHHF7 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-NhQU2bim1CAyHHF7 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NhQU2bim1CAyHHF7 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-NhQU2bim1CAyHHF7 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-NhQU2bim1CAyHHF7 .cluster text{fill:#333;}#mermaid-svg-NhQU2bim1CAyHHF7 .cluster span{color:#333;}#mermaid-svg-NhQU2bim1CAyHHF7 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-NhQU2bim1CAyHHF7 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-NhQU2bim1CAyHHF7 rect.text{fill:none;stroke-width:0;}#mermaid-svg-NhQU2bim1CAyHHF7 .icon-shape,#mermaid-svg-NhQU2bim1CAyHHF7 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NhQU2bim1CAyHHF7 .icon-shape p,#mermaid-svg-NhQU2bim1CAyHHF7 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-NhQU2bim1CAyHHF7 .icon-shape .label rect,#mermaid-svg-NhQU2bim1CAyHHF7 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NhQU2bim1CAyHHF7 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-NhQU2bim1CAyHHF7 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-NhQU2bim1CAyHHF7 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 第①层 物理基础设施:服务器 / 存储 / 网络(第2篇)
第②层 操作系统:Linux、进程/内存/文件(第3篇)
第③层 虚拟化/IaaS:KVM、ESXi、OpenStack、热迁移(第3篇)
第④层 容器/编排:Docker、K8s、Helm(第4篇)
第⑤层 PaaS/云原生:微服务、Mesh、DevOps、可观测、Serverless(第5篇)
第⑥层 应用与最佳实践:云上部署、IaC、GitOps(第5篇)

现在应该能回答最初的三个困惑:

  1. 每个技术在体系哪一环 → 用六层地图定位;
  2. 每个环节解决什么问题 → 性能、可靠、隔离、弹性、交付、可观测;
  3. 哪些是同类技术 → 按"计算/存储/网络、虚拟化、运行时、编排、CI/CD、监控"等类别归类。

最后的核心思维:

  • 云计算的本质是资源池化 + 弹性 + 按需服务;
  • 云原生的本质是让应用充分利用云的能力(容器、微服务、不可变基础设施、声明式 API、自动化);
  • 技术会持续迭代,但**"分层、抽象、解耦、自动化"**的思想贯穿始终,掌握了这套思想,遇到任何新技术都能快速定位它的位置。

完成了云计算与云原生的知识体系搭建。接下来,去动手实践吧------真正的理解,来自把这些技术跑起来的过程。

相关推荐
进击的荆棘1 小时前
Linux系统——进程信号
linux·运维·服务器·信号
康实训1 小时前
智慧运动康养实训室助力老年运动康复教学落地
大数据·人工智能
孔令飞1 小时前
AI 时代岗位调研分析:调研了近3000份AI岗位描述,分享下调研结果
云原生·go·ai编程
艾伦_耶格宇1 小时前
【Linux】linux内核升级
linux·运维·服务器
Michelle80231 小时前
第1周——认清考试与IDLE生存指南
运维·服务器
DYWorker0011 小时前
第 1-2 课:进程与调度:CPU 空出来时,内核选谁?
linux
玩美数据1 小时前
全球数据分析服务竞争态势与战略机遇深度解读
大数据·人工智能
AI领域分享1 小时前
批量做漫剧视频选什么工具?知漫剧多集任务实测
大数据·人工智能·音视频
Vitaliy Kostrov(柯维远)1 小时前
Multi-CDN 决策闭环:QoE、成本、安全与内容正确性如何进入同一个策略引擎?
安全·网络安全·云计算·音视频·负载均衡·cdn