Web 框架的本质
🎯 核心問题
代碼写好了,怎么讓全世界的人都能访問? 這就像問:你是想開一家路邊小摊,還是經營一家跨国連鎖餐厅?後端架構的選择,决定了你的"餐厅"能服務多少顧客。
1. 為什么要了解架構演進?
想象一下,你正在規划一次長途旅行。你可以選择骑自行車、開私家車、坐高鐵,或者乘飛機。每種方式都有其適用的場景:自行車適合短距離且想锻炼身體的情况,飛機则適合跨越大陸的長途旅行。
後端架構的選择也是如此。
從互聯網诞生到現在,後端架構經歷了多次重大變革。每一次變革都不是為了"追新潮",而是為了解决当時面臨的特定問题:
| 年代 | 核心問题 | 架構演進 |
|---|---|---|
| 1990s | 如何把網站跑起來 | 物理服務器 |
| 2000s | 代碼越來越亂怎么維護 | 單體架構 + MVC |
| 2010s | 系统太大怎么擴展和協作 | 微服務 + 容器化 |
| 2020s | 如何降低運維成本和複雜性 | Serverless + 云原生 |
📊 從表格中你能看到什么?
讓我们逐行解讀這张表:
1990s → 2000s:從"能跑就行"到"需要維護"。網站從静態頁面變成動態應用,代碼量激增,需要更好的組织方式。
2000s → 2010s:從"單機"到"分布式"。用户量爆炸式增長,單台服務器扛不住了,需要拆分系统,水平擴展。
2010s → 2020s:從"自己運維"到"云服務"。容器和微服務虽然強大,但運維成本太高,Serverless 讓開發者只關注業務邏輯。
核心启示:架構演進不是技術選型的游戏,而是解决實际問题的過程。每个階段都有其適用的場景,没有"最好的架構",只有"最適合的架構"。
了解架構演進的意義在于:
- 避免重複造輪子:很多"新"概念其實早在几十年前就有雛形,了解歷史能讓你站在巨人的肩膀上
- 做出合理的技術選型:没有最好的架構,只有最適合当前階段的架構
- 理解技術背後的權衡:每一次架構演進都是在開發效率、系统性能、運維複雜度之間做取舍
- 预判技術趨勢:歷史總是押韵的,理解過去的演進規律有助于把握未來方向
Home kitchen
🍽️ Restaurant scenario
One cook works in a small kitchen and personally buys ingredients, washes, cuts, cooks, and serves. When customers increase, everyone has to queue.
💻 Backend mapping
One physical server handles every request: receiving HTTP requests, reading files, executing CGI scripts, and returning responses. CPU and memory are limited, so extra requests queue up.
⚡ Core pain points
- Single-machine bottleneck: too many customers overwhelm the cook
- Vertical scaling is expensive: buying a bigger machine is like buying a bigger kitchen
- Single point of failure: if the cook is unavailable, the restaurant closes
2. 物理服務器時代 (1990s)
2.1 什么是物理服務器?
在互聯網刚起步時,後端就是一台放在機房裡的物理服務器(一台真實的電脑)。
💡 通俗解釋
物理服務器就像你家裡的台式機,但它:
- 7×24小時不關機
- 放在專門的數據中心(有空調、UPS電源、消防系统)
- 有更快的網絡带宽(企業级光纤)
- 有固定的公網IP地址(全世界都能访問)
這就好比你家 vs 餐厅:你家只是偶尔做飯,餐厅则是專業厨房,全天候營業,設備更專業。
2.2 核心特點
- 單機部署:所有應用運行在一台物理機上
- 手動運維:需要人工上架、布线、安装系统
- 垂直擴展:性能不够時只能買更強的機器
🔧 垂直擴展 vs 水平擴展
垂直擴展(Scale Up):升级單台服務器的配置(更多CPU、更大內存、更快硬盘)。
水平擴展(Scale Out):增加更多服務器,讓它们一起工作。
比喻:
- 垂直擴展:把小餐厅改成大餐厅,装修更豪华,但只有一个厨师
- 水平擴展:開連鎖店,每个店規模不大,但有100家分店
優缺點:
- 垂直擴展简單,但有上限(顶级服務器很贵,且有限制)
- 水平擴展理论上无限,但需要解决數據一致性問题
2.3 痛點
- 慢:每次改代碼都要手動上傳,然後重启服務器
- 贵:擴容只能買更大的機器(垂直擴展)
- 難擴展:一台機器顶住所有請求,CPU满載時就只能排队
2.4 物理服務器時代的優缺點
| 維度 | 評价 |
|---|---|
| 優點 | 完全掌控硬件,性能可预測;没有虚擬化開銷;數據物理隔離,安全性高 |
| 缺點 | 采購周期長(數周);前期投入大(CapEx);资源利用率低;擴容困難 |
| 適用場景 | 金融核心系统、政府涉密系统、對數據主權有嚴格要求的場景 |
💡 CapEx vs OpEx
CapEx(Capital Expenditure):资本性支出,一次性投入大量资金購買硬件。
OpEx(Operating Expenditure):運營性支出,按使用量付費(如云服務器)。
比喻:
- CapEx:買房,一次性付几百万,之後每月只需交物業費
- OpEx:租房,每月交房租,不用一次性掏大钱
云時代的启示:Serverless 和云服務讓更多公司從 CapEx 轉向 OpEx,降低創業門槛。
3. 單體架構時代 (2000s)
3.1 什么是單體架構?
隨着框架的出現(Rails / Django / Spring),大家把所有功能都塞進一个應用裡。
💡 通俗解釋
單體架構(Monolith)就像一个超级商場:
- 服装區、食品區、電器區都在同一栋楼裡
- 所有员工在一个管理系统裡工作
- 如果整栋楼停電,所有區域都停止營業
對比微服務就像商業街:每家店独立運營,一家店關門不影響其他店。
3.2 核心特點
- 單一代碼庫:所有功能模塊在同一个项目中
- 共享數據庫:所有模塊共用同一个數據庫
- 统一部署:整个應用作為一个整體打包部署
3.3 優點
- 開發简單:一个项目搞定所有功能
- 部署方便:把一个大包扔到服務器上就行
- 調試容易:本地启動就能調試所有功能
3.4 痛點:雪崩效應
想象一下,如果"切菜"的师傅不小心切到了手(代碼出了Bug),整个後厨都要停下來處理傷口,導致所有客人都吃不上飯。
這就是單體架構最大的風險:隔離性差。
🚨 真實的雪崩案例
某電商公司雙十一大促:
- 订單服務因為某个商品的价格計算錯误,抛出异常
- 异常没有被正确捕獲,導致线程池耗尽
- 所有後續請求(包括商品浏览、搜索、用户登錄)都被阻塞
- 整个網站彻底瘫痪,持續1小時
如果用微服務:
- 订單服務挂了,但商品浏览、搜索、用户登錄仍然可用
- 用户至少可以继續浏览商品,損失降到最低
3.5 單體架構的優缺點與適用場景
| 維度 | 評价 |
|---|---|
| 優點 | 開發简單,无需考虑分布式複雜性;調試方便,本地启動即可調試全功能;部署简單,一个包即可運行;事務管理容易,單機數據庫即可保證ACID |
| 缺點 | 代碼耦合度高,隨着業務增長代碼膨胀;技術栈單一,難以局部升级;擴展困難,只能整體擴容;故障隔離差,一个模塊故障影響全局;团队協作效率低,多人改同一套代碼 |
| 適用場景 | 初創公司MVP验證、小型团队(<10人)、業務相對简單、對交付速度要求高于擴展性的場景 |
| 不適用場景 | 大型团队并行開發、需要频繁發布不同模塊、某些模塊需要独立擴容的場景 |
🎯 初學者建议
如果你正在學習後端開發,強烈建议從單體架構開始:
- 先學會走路:理解HTTP、數據庫、基本的MVC架構
- 再考虑跑步:当项目真的遇到擴展性問题,再考虑微服務
- 避免過度設計:很多公司的"微服務"其實是"分布式單體",更難維護
學習路径:
- 階段1:用 Spring Boot / Django / Rails 写一个完整的單體應用
- 階段2:遇到性能瓶颈時,尝試拆分出1-2个服務
- 階段3:当团队規模>50人,系统真的複雜了,再全面微服務化
3.6 單體架構的技術栈
| 語言/框架 | 特點 | 代表企業 |
|---|---|---|
| Java + Spring | 企業级開發首選,生態完善 | 阿裡巴巴、京東 |
| PHP + Laravel/ThinkPHP | 快速開發,適合中小型项目 | 早期 Facebook、微博 |
| Python + Django/Flask | 開發效率高,適合快速原型 | Instagram、Pinterest |
| Ruby on Rails | 约定優于配置,初創公司最爱 | GitHub、Twitter(早期) |
| Node.js + Express | 前後端统一語言,I/O密集型場景 | Netflix、Uber |
4. 容器化與微服務 (2010s)
4.1 為什么需要微服務?
單體架構的痛點在2010年代集中爆發:
- 代碼太庞大:一个项目几百万行代碼,新人入职要花一个月才能看懂
- 部署太慢:構建一次要30分鐘,發布一次要小心翼翼
- 協作太難:100个開發者改同一个项目,代碼衝突每天發生
- 擴展太贵:只需要擴展"聊天服務",却要複制整个應用
微服務的核心思想:把大應用拆成多个小服務,每个服務:
- 独立開發、独立部署
- 有自己的數據庫
- 通過API通信
Traditional deployment
Docker containers
💡 Docker是什么?
Docker就像是"集装箱":
- 每个集装箱裡有独立的货物(代碼 + 依賴庫 + 運行環境)
- 无论運到哪裡(哪台服務器),打開集装箱就能直接開工
- 不用擔心"我這台機器没有Python 3.9"、"那个機器缺少某个庫"
比喻:
- 没有 Docker:每次搬家,要把家具、電器、衣服一件件搬上卡車,到了新家再一件件摆好
- 有 Docker:所有東西打包進集装箱,卡車直接運走,到了新家放下就能用
核心价值:"一次構建,到處運行"。
4.2 技術栈時間线
4.3 微服務架構
為了解决單體的問题,我们把大厨房拆成了很多个小厨房(服務):
- 專門负责用户的服務
- 專門负责订單的服務
- 專門负责支付的服務
🏭 Microservices Architecture Demo
Observe how independent services collaborate and communicate
Service-to-service communication flow
4.4 Kubernetes 編排
当集装箱數量到達成百上千,就需要一个"港口調度系统":
- Kubernetes (K8s):负责把容器安排到合適的機器上(調度、擴缩容、滚動更新)
- Service Mesh:负责服務之間的交通規则(熔断、限流、重試、可观測)
☸️ Kubernetes Orchestration Demo
Observe how K8s schedules containers, balances load, and recovers from failures
💡 Kubernetes core concepts
- Pod: The smallest deployment unit. A Pod can contain one or more containers.
- Deployment: Manages Pod replica count and rolling updates.
- Service: Provides stable network access and load balancing.
- Scheduler: Automatically schedules Pods to suitable nodes based on resource needs and policies.
💡 什么是"編排"?
編排(Orchestration)是指自動管理大量容器的系统。
比喻:
- 没有 K8s:你手動管理100个容器,哪个挂了要手動重启,哪个流量大了要手動加機器
- 有 K8s:你告诉它"我要這个服務一直有10个實例運行",它會自動完成:
- 哪台服務器资源充足,就把容器調度到那裡
- 容器挂了,自動重启
- 流量大了,自動擴容到20个實例
- 更新代碼時,滚動更新(先停1个舊實例,启動1个新實例,逐个替换)
關鍵點:微服務不是"拆開就好",真正的難點在于治理和運維。
4.5 微服務與容器化的優缺點
| 維度 | 評价 |
|---|---|
| 優點 | 服務独立部署,技術栈可异構;故障隔離,單个服務崩溃不影響全局;按需擴展,热點服務單独擴容;团队協作友好,不同团队负责不同服務;代碼庫更小,易于理解和維護 |
| 缺點 | 分布式複雜性高(網絡延遲、分布式事務、服務發現);運維成本高,需要專業的DevOps团队;調試困難,問题可能需要跨多个服務追蹤;數據一致性難以保證;部署和監控基础設施要求複雜 |
| 適用場景 | 大型团队(>50人)、業務複雜需要分模塊独立演進、某些模塊需要独立擴容、需要多語言技術栈、對可用性要求高的系统 |
| 不適用場景 | 小型团队、業務简單、流量小且穩定、没有專業運維团队的情况 |
⚠️ 微服務的陷阱
陷阱1:分布式單體
拆了10个微服務,但它们之間紧密耦合:
- 服務A調用服務B,服務B調用服務C,服務C又調用服務A
- 改一个功能,要同時改5个服務
- 部署時,必须按顺序依次部署,否则系统报錯
這比單體更糟糕:你擁有了單體的複雜性,又没有享受到微服務的独立部署好處。
陷阱2:過度拆分
把只有100行代碼的功能也拆成一个独立服務:
- 10个服務,每个只有100行代碼
- 服務間通信的開銷(網絡序列化/反序列化)比實际業務邏輯還重
- 運維成本爆炸:要部署、監控、日志收集10个服務
正确做法:從功能內聚的角度拆分,一个微服務應該是一个完整的業務能力(如"订單服務",而不是"订單創建服務"、"订單查询服務")。
4.6 微服務技術栈
| 類別 | 技術/工具 | 作用 |
|---|---|---|
| 容器化 | Docker, containerd | 應用打包與隔離 |
| 編排調度 | Kubernetes, Docker Swarm | 容器管理與自動擴缩容 |
| 服務發現 | Consul, etcd, ZooKeeper | 服務注册與發現 |
| API網關 | Kong, Zuul, Envoy | 统一入口、路由、限流 |
| 配置中心 | Apollo, Nacos, Spring Cloud Config | 集中配置管理 |
| 監控告警 | Prometheus, Grafana, ELK | 指標監控與日志分析 |
| 鏈路追蹤 | Jaeger, Zipkin, SkyWalking | 分布式請求追蹤 |
| 服務網格 | Istio, Linkerd | 流量治理與安全 |
5. Serverless 與云原生時代 (2020s+)
5.1 為什么需要 Serverless?
微服務虽然好,但維護几十个小厨房還是很累。你需要擔心:
- 厨房够不够大?(服務器擴容)
- 停電了怎么辦?(高可用)
- 容器太多怎么管?(運維成本)
⚡ Serverless Architecture Demo
Observe on-demand function execution and automatic scaling
💡 Serverless core traits
- On-demand execution: Functions run only when invoked, so idle functions do not create runtime cost.
- Automatic scaling: Scale automatically from zero to thousands of instances without manual intervention.
- Cold start: The first call after a long idle period may have extra latency and may need warm-up strategies.
- Event driven: Respond to HTTP requests, message queues, scheduled tasks, and other event sources.
💡 Serverless 不是真的"没有服務器"
Serverless的意思是"你不需要管理服務器",而不是真的没有服務器。
比喻:
- 物理服務器時代:你買地、盖房、装修、僱厨师、買食材...全部自己來
- 云服務器時代:你租一个已經装修好的餐厅,但自己僱厨师、管理運營
- Serverless時代:你只需要設計菜單,云端有共享厨房,有專業厨师,你下單他们做,按次付費
核心變化:
- 以前:買服務器 → 配環境 → 部署代碼 → 監控 → 擴容 → 維護
- 現在:写代碼 → 上傳 → 按使用量付費
就像外卖:你不需要厨房,只需要設計菜單,有人帮你做。
5.2 什么是 Serverless?
Serverless = FaaS + BaaS
FaaS(Function as a Service,函數即服務):
- 你只写函數(如"用户注册時發送欢迎郵件")
- 云厂商负责運行這个函數,自動擴缩容
- 典型代表:AWS Lambda、阿裡云函數計算
BaaS(Backend as a Service,後端即服務):
- 登錄 → Auth0 / Supabase Auth
- 支付 → Stripe
- 數據庫 → Supabase / Firebase / DynamoDB
- 消息 → Kafka / SQS
🎯 Serverless 適用場景
最佳場景:
- 潮汐流量:外卖軟件,中午流量大,半夜没人。Serverless會自動在中午分配1000台機器,半夜缩减到0台
- 事件驅動:"用户上傳图片後,自動压缩图片"
- 快速验證:小团队、MVP、黑客松项目
不適合場景:
- 長時間運行的任務:视频轉碼(可能跑1小時,函數最大執行時間通常只有15分鐘)
- 需要低延遲的應用:高频交易(冷启動延遲可能几十毫秒到几秒)
- 需要精细控制底層:操作系统內核調優、GPU直接访問
5.3 Serverless 與云原生的優缺點
| 維度 | 評价 |
|---|---|
| 優點 | 零運維成本,開發者只需關注業務代碼;自動擴缩容,完美應對流量峰值;按需付費,无流量時成本接近零;快速上线,几分鐘即可部署全球;高可用內置,云服務自動處理故障轉移 |
| 缺點 | 冷启動延遲(几百毫秒到數秒);運行時長限制(通常5-15分鐘);調試困難,本地難以完全模擬云環境;供應商鎖定風險;不適合長時間運行或計算密集型任務;成本在高频持續流量下可能反超傳统方案 |
| 適用場景 | 事件驅動處理(图片處理、消息通知);潮汐流量應用(活動頁、促銷);快速原型验證和MVP;低频API或後台任務;无專职運維团队的小团队 |
| 不適用場景 | 需要持續低延遲的應用;長時間計算任務;對冷启動敏感的場景(高频交易);需要精细控制底層基础設施的場景 |
💰 成本對比:何時Serverless更贵?
場景1:低频访問
- 傳统服務器:每月$20(不管有没有人访問)
- Serverless:100万次請求 × $0.0002/次 = $20(僅在有流量時付費)
- 結论:低频場景,Serverless更省钱
場景2:高频持續访問
- 傳统服務器:每月$20
- Serverless:1億次請求 × $0.0002/次 = $20,000
- 結论:高频持續場景,傳统服務器更省钱
場景3:潮汐流量
- 傳统服務器:為了應對峰值,需要$100/月的服務器(平時资源利用率只有10%)
- Serverless:峰值時$20,平時几乎$0
- 結论:潮汐流量場景,Serverless節省成本
启示:不要盲目上Serverless,要根據實际流量特征做成本測算。
5.4 Serverless 技術栈與平台
| 類別 | 技術/平台 | 特點 |
|---|---|---|
| FaaS平台 | AWS Lambda | 最早的FaaS服務,生態最成熟 |
| Azure Functions | 微軟云集成度高,.NET友好 | |
| Google Cloud Functions | 與GCP服務深度集成 | |
| 阿裡云函數計算 | 国內生態完善,冷启動優化好 | |
| 騰讯云云函數 | 與微信生態整合 | |
| Vercel/Netlify Functions | 前端開發者友好,邊缘部署 | |
| BaaS服務 | Firebase | Google的移動端後端方案 |
| Supabase | PostgreSQL的Firebase開源替代 | |
| AWS Amplify | AWS的移動和Web應用開發平台 | |
| 部署工具 | Serverless Framework | 多云部署,社區活躍 |
| Terraform | 基础設施即代碼 | |
| Pulumi | 用編程語言定義基础設施 |
6. 各架構階段對比與選型指南
6.1 架構演進全景對比
Monolith (2000s)
🏗️ Architecture traits
- Single codebase and unified stack
- Shared database and transactional consistency
- Unified deployment and whole-system release
- In-process communication without network overhead
✅ Advantages
- Simple development and onboarding
- Convenient local testing
- Simple deployment as one package
❌ Pain points
- Tight coupling makes small changes risky
- Single stack makes new technology hard to introduce
- Large teams become hard to coordinate
🔧 Typical technologies
| 維度 | 物理服務器 | 單體架構 | 微服務+容器 | Serverless |
|---|---|---|---|---|
| 团队規模 | 1-5人 | 5-50人 | 50-500人 | 1-20人 |
| 部署複雜度 | 极高 | 低 | 极高 | 极低 |
| 運維成本 | 高 | 中 | 很高 | 低 |
| 擴展性 | 差 | 垂直擴展有限 | 水平擴展優秀 | 自動擴展 |
| 技術栈灵活性 | 无 | 單一 | 多样化 | 受限 |
| 冷启動 | 无 | 无 | 容器启動時間 | 有延遲 |
| 適用場景 | 遺留系统、特殊合規要求 | 初創公司、業務简單 | 大型互聯網公司、複雜業務 | 快速验證、事件驅動 |
6.2 技術選型决策树
開始選型
│
├─ 团队有專業運維人员?
│ ├─ 是 → 考虑微服務或物理機
│ └─ 否 → 继續判断
│
├─ 需要快速上线验證想法?
│ ├─ 是 → Serverless 或單體
│ └─ 否 → 继續判断
│
├─ 团队規模 > 50人?
│ ├─ 是 → 考虑微服務
│ └─ 否 → 继續判断
│
├─ 流量有明顯峰谷特征?
│ ├─ 是 → Serverless
│ └─ 否 → 單體架構(推荐初創)
│
└─ 特殊要求(合規、遺留系统)?
└─ 是 → 物理服務器🎯 初學者選型建议
如果你是个開發者或小团队:
- 階段0 (學習):本地跑單體應用,理解HTTP、數據庫、基本架構
- 階段1 (MVP):部署單體應用到云服務器(如阿裡云ECS、AWS EC2)
- 階段2 (增長):当团队>10人、業務變複雜,考虑拆分出1-2个微服務
- 階段3 (成熟):当团队>50人、流量百万级,全面微服務化
關鍵原则:不要一開始就上微服務,那是"過早優化"。讓架構隨業務成長而演進。
6.3 不同場景下的推荐架構
場景一:独立開發者/兼职项目
- 推荐架構:Serverless (Vercel/Netlify) 或 單體應用
- 理由:几乎零運維成本,按需付費,快速上线
- 示例技術栈:Next.js + Vercel + Supabase
場景二:初創公司MVP验證
- 推荐架構:單體架構 + 云服務器
- 理由:開發速度快,团队可以專注于業務邏輯而非基础設施
- 示例技術栈:Spring Boot / Django / Rails + RDS + ECS
場景三:成長型公司(10-50人团队)
- 推荐架構:模塊化單體 或 輕量级微服務
- 理由:開始面臨代碼耦合問题,但還不需要完整的微服務複雜度
- 示例技術栈:Spring Cloud / Go Micro + Kubernetes
場景四:大型互聯網公司
- 推荐架構:微服務 + 服務網格 + 中台架構
- 理由:团队規模大,業務複雜,需要独立的發布節奏和技術栈
- 示例技術栈:自研RPC框架 + Istio + 自建PaaS平台
場景五:事件驅動/潮汐流量應用
- 推荐架構:Serverless + 事件總线
- 理由:流量波動大,需要极致的成本優化和自動擴缩容
- 示例技術栈:AWS Lambda + API Gateway + EventBridge
7. 總結與學習路线
7.1 核心要點
後端架構的演進,本质上是在做加法和减法:
| 時代 | 架構 | 開發者要做的事 | 運維要做的事 |
|---|---|---|---|
| 物理時代 | 單機 | 写脚本、手動部署 | 維護機房與硬件 |
| 單體時代 | 一整塊 | 写所有業務邏輯 | 維護几台大服務器 |
| 微服務時代 | 拆分 | 關注單一業務 | 維護K8s集群(很累!) |
| Serverless | 函數 | 只写核心函數 | 喝茶(云厂商全包了) |
關鍵洞察:
- 架構演進不是"新技術取代舊技術",而是適用場景的變化
- 没有銀弹,每个架構都有其適用的邊界
- 選择架構要考虑:团队規模、業務複雜度、流量特征、運維能力
7.2 學習路线建议
根據你的职業階段,推荐以下學習路径:
階段一:打好基础(0-1年)
目標:理解後端核心概念,能独立開發單體應用
- 掌握一門後端語言(Java/Python/Go任選其一)
- 學習HTTP協议和RESTful API設計
- 掌握關系型數據庫(MySQL/PostgreSQL)
- 了解緩存基础(Redis)
- 學習Git和基础Linux命令
- 實踐项目:用單體架構完成一个CRUD應用(如博客系统、待辦事项)
階段二:擴展能力(1-3年)
目標:理解分布式系统,能參與微服務開發
- 深入學習微服務架構和拆分策略
- 掌握Docker和Kubernetes基础
- 學習消息队列(Kafka/RabbitMQ)
- 了解分布式事務和一致性
- 掌握監控和日志(Prometheus/ELK)
- 實踐项目:将單體應用拆分為3-5个微服務,使用Docker部署
階段三:專業深化(3-5年)
目標:能設計大型系统,具備技術選型能力
- 深入理解云原生架構(Service Mesh、Serverless)
- 掌握容量規划和性能調優
- 了解多活架構和灾備設計
- 學習DDD(领域驅動設計)
- 培養技術判断力和架構思維
- 實踐项目:設計一个支持百万级用户的系统架構,包含高可用、弹性伸缩等方案
7.3 持續學習资源推荐
書籍:
- 《設計數據密集型應用》(DDIA)- 分布式系统必讀
- 《云原生模式》
- 《微服務設計》
- 《领域驅動設計》
在线资源:
- AWS/Azure/阿裡云官方架構文檔
- CNCF(云原生計算基金會)项目文檔
- 各大公司技術博客(Netflix Tech Blog、阿裡技術公众号等)
8. 名词速查表(Glossary)
| 名词 | 全称 | 解釋 |
|---|---|---|
| Backend | - | 服務器端系统,负责處理業務邏輯、數據存儲和對外接口 |
| CGI | Common Gateway Interface | 早期動態網頁技術,通過脚本處理請求并返回結果 |
| Monolith | - | 單體架構,把所有業務邏輯打包在同一个應用中 |
| Microservices | - | 微服務架構,把業務拆分成多个独立服務 |
| Container | - | 容器化技術,把應用和依賴打包成可移植單元 |
| K8s | Kubernetes | 容器編排平台,用于調度、擴缩容和治理容器 |
| Service Mesh | - | 服務網格,负责微服務間通信治理、观測與安全 |
| Serverless | - | 无服務計算,開發者只写函數,平台自動運行與擴缩容 |
| BaaS | Backend as a Service | 即插即用的後端云服務(認證、數據庫、支付等) |
| CI/CD | Continuous Integration / Delivery | 持續集成與持續交付,自動化測試與部署流程 |
| Observability | - | 可观測性,利用日志/指標/追蹤理解系统運行狀態 |