雲原生架構:從技術演進到最佳實踐

賀阮,史冰迪

  • 出版商: 電子工業
  • 出版日期: 2021-10-01
  • 定價: $606
  • 售價: 7.9$479
  • 貴賓價: 7.5$455
  • 語言: 簡體中文
  • 頁數: 388
  • 裝訂: 平裝
  • ISBN: 7121421275
  • ISBN-13: 9787121421273
  • 相關分類: 軟體工程雲端運算
  • 立即出貨

買這商品的人也買了...

商品描述

雲原生之路,漫漫而修遠,因為雲在發展,應用也在發展。如何讓應用充分利用雲的特性煥發全新面貌,這是每個雲原生應用架構領域的人應該思考的問題。 本書分為兩篇,從技術演進講起,讓讀者充分瞭解系統資源、應用架構和軟件工程的發展歷程,從而擁有技術角度的全局視野;然後介紹雲原生應用的最佳實踐,手把手教你設計一個雲原生應用。 本書適合雲原生應用開發人員、架構師、雲計算從業者閱讀,部分章節對產品團隊、運維人員亦有一定的參考價值。

作者簡介

賀阮,攻讀博士期間的主要研究方向是雲計算安全。
畢業之後一直深耕於雲計算領域,工作內容涉及虛擬化內核、容器、調度、安全、微服務、應用架構、軟件設計開發等,工作崗位覆蓋科研、開發、產品架構、售前解決方案、售中售後支持等。
曾先後任OpenStack基金會董事、ISO/IEC JTC1/SC38和ISO/IEC JTC1/SC27標樣委員會委員、聯合國國際電信聯盟(ITU)雲計算安全組副報告人,以及多個雲計算學術會議、期刊編輯等職位,從各個維度見證了雲計算行業的發展

目錄大綱

技術演進篇
第1部分  系統資源 2
第1章  操作系統 3
1.1  操作系統簡介 3
1.1.1  主要功能 4
1.1.2  系統結構 5
1.2  CPU指令集原理 6
1.2.1  特權指令集和非特權指令集 6
1.2.2  保護模式及內核態、用戶態 7
1.2.3  指令工作流程 8
1.3  內核 9
1.3.1  組成模塊化 9
1.3.2  單內核 9
1.3.3  微內核 10
1.3.4  外內核 11

第2章  虛擬化 13
2.1  虛擬化概述 13
2.1.1  直接使用物理設備 13
2.1.2  虛擬化原理 14
2.2  虛擬化指令集 16
2.2.1  敏感指令集 17
2.2.2  虛擬化指令集的工作模式 17
2.3  虛擬化類型 20
2.3.1  全虛擬化 20
2.3.2  類虛擬化 21
2.3.3  硬件輔助虛擬化 22
2.4  虛擬化架構 24
2.4.1  裸金屬架構 24
2.4.2  宿主模式架構 25
2.5  常見的虛擬化產品 25
2.5.1  VMware 25
2.5.2  Xen 26
2.5.3  KVM 26
2.5.4  QEMU 27
2.5.5  NEMU 28
2.5.6  Firecracker 28
2.5.7  VirtualBox 28
2.5.8  Libvirt 29
2.5.9  Vagrant 30

第3章  雲計算 32
3.1  雲計算概述 32
3.1.1  虛擬化的不足 32
3.1.2  雲計算的特點 33
3.2  IaaS 34
3.2.1  雲的部署模式 34
3.2.2  IaaS的主要功能 36
3.2.3  IaaS架構 36
3.2.4  雲ping台組織架構 37
3.2.5  OpenStack 39
3.2.6  雲ping台部署架構 41
3.3  PaaS 42
3.3.1  簡介 43
3.3.2  核心功能 45
3.3.3  微軟Azure 47
3.3.4  PaaS的優缺點 48
3.4  SaaS 49

第4章  容器 53
4.1  容器簡介 53
4.1.1  容器技術的優缺點 53
4.1.2  大事記 54
4.2  基本技術 55
4.2.1  namespace 56
4.2.2  cgroup 59
4.2.3  rootfs 60
4.3  Docker 61
4.3.1  容器運行時 61
4.3.2  鏡像 63
4.3.3  Docker總結 64
4.4  內核容器技術 64
4.4.1  Kata 64
4.4.2  Firecracker 65
4.4.3  gVisor 66
4.4.4  Unikernel 67
4.5  容器與虛擬機 68
4.6  容器與PaaS 69

第5章  容器編排 70
5.1  容器編排簡介 70
5.1.1  大事記 70
5.1.2  Swarm與Kubernetes之爭 71
5.1.3  容器編排工具的核心功能 73
5.2  Kubernetes 74
5.2.1  設計理念與特性 74
5.2.2  運行架構 76
5.2.4  API對象 80
5.3  容器編排與PaaS 90
5.4  Kubernetes企業級實戰:OpenShift 91
5.5  實現有狀態應用和無狀態應用 91
5.5.1  無狀態應用與有狀態應用 92
5.5.2  從無狀態應用到Severless 92
5.5.3  Kubernetes對有狀態應用的管理 92
5.5.4  容器編排的#終目標 93

第2部分  應用架構 95
第6章  應用架構概述 96
6.1  架構與框架的區別 97
6.2  狹義的和廣義的應用架構 97
6.2.1  狹義的應用架構 97
6.2.2  廣義的應用架構 98
6.3  應用架構的定義 98
6.4  應用架構的目標 99

第7章  主流架構 101
7.1  “4+1”架構視圖 101
7.1.1  邏輯視圖 102
7.1.2  開發視圖 102
7.1.3  進程視圖 102
7.1.4  物理視圖 103
7.1.5  場景視圖 103
7.2  ArchiMate 104
7.2.1  ArchiMate概述 104
7.2.2  業務層 106
7.2.3  應用層 106
7.2.4  技術層 107
7.3  TOGAF框架 109

第8章  架構詳解 114
8.1  業務架構 114
8.1.1  業務場景 114
8.1.2  業務用例 115
8.1.3  業務實體 115
8.1.4  業務流程 116
8.2  應用架構 116
8.2.1  功能架構 117
8.2.2  數據架構 121
8.2.3  實現架構 124
8.3  基礎架構 131
8.3.1  物理架構 131
8.3.2  運行架構 131

第9章  典型的應用架構模式 133
9.1  單體架構 133
9.1.1  單體架構的特點 133
9.1.2  功能架構 134
9.1.3  單體應用的數據優化 136
9.1.4  單體架構的優缺點 142
9.2  基於組件的架構 143
9.2.1  特性 144
9.2.2  微內核架構 145
9.2.3  兩種基於組件的應用開發、運行框架 145
9.2.4  組件設計原則 146
9.3  分佈式與SOA 148
9.3.1  分佈式 148
9.3.2  SOA 150

第10章  微服務架構 160
10.1  微服務架構簡介 160
10.1.1  微服務與應用 161
10.1.2  微服務架構與SOA 162
10.1.3  微服務架構與容器編排 162
10.1.4  微服務架構與組織架構 163
10.2  採用微服務架構的優勢與難點 163
10.3  微服務架構詳解 165
10.3.1  功能架構 165
10.3.2  實現架構 166
10.3.3  部署單元 167
10.4  設計原則 167
10.4.1  服務註冊中心 167
10.4.2  API網關 168
10.4.3  跨服務通信 169
10.4.4  API設計 170
10.4.5  數據一致性處理 172

第11章  微服務框架 181
11.1  微服務架構與微服務框架 181
11.2  核心功能 182
11.2.1  服務註冊發現 182
11.2.2  服務負載路由 183
11.2.3  統一配置 184
11.2.4  服務編排與彈性伸縮 184
11.2.5  流量管控 185
11.2.6  可觀察運維 186
11.3  框架分類 188
11.3.1  業務處理框架 188
11.3.2  SDK框架 189
11.3.3  服務網格 190

第3部分  軟件工程 195
第12章  應用設計 196
12.1  明確願景 196
12.1.1  目標對象 197
12.1.2  度量價值 197
12.1.3  詳細描述 198
12.1.4  上下文圖 198
12.2  明確組織架構 200
12.3  頂層業務建模 201
12.3.1  概述 201
12.3.2  業務領域 202
12.3.3  業務場景 205
12.4  應用需求分析 209
12.4.1  概述 209
12.4.2  識別角色 210
12.4.3  業務實體 210
12.4.4  業務流程 212
12.5  應用設計建模 214
12.5.1  概述 214
12.5.2  圈定微服務 215
12.5.3  應用架構設計 216
12.6  領域驅動建模 218
12.6.1  分佈式應用建模的痛點 219
12.6.2  DDD概述 219
12.6.3  DDD的優勢 220
12.6.4  基本概念 221
12.6.5  實施步驟 229
12.6.6  DDD與應用設計 238

第13章  軟件開發 240
13.1  瀑布模型 240
13.2  敏捷開發模型 242
13.2.1  敏捷宣言 243
13.2.2  Scrum 244
13.2.3  極限編程方法 245

第14章  開發運維一體化:DevOps 248
14.1  精益思想 248
14.1.1  起源 248
14.1.2  精益生產 249
14.1.3  精益原則 250
14.1.4  精益軟件開發 251
14.1.5  價值探索 253
14.1.6  IT價值流 253
14.1.7  精益和敏捷 255
14.2  持續集成 255
14.2.1  原則 255
14.2.2  步驟 256
14.3  持續交付與持續部署 258
14.3.1  持續交付 258
14.3.2  持續部署 259
14.3.3  特性發布 263
14.4  DevOps與CI/CD 269
14.4.1  定義 270
14.4.2  原則與推廣 271
14.4.3  三步工作法 272
14.5  測試 275
14.5.1  概述 275
14.5.2  功能性測試 277
14.5.3  非功能性測試 281
14.6  DevOps與敏捷開發、Kubernetes、微服務、應用架構模式的關係 283

第15章  SRE運維 286
15.1  SRE運維簡介 286
15.1.1  SLA 287
15.1.2  運維的發展階段 288
15.1.3  架構層次 288
15.2  監控 289
15.2.1  監控概述 289
15.2.2  多層監控 291
15.2.3  告警 292
15.3  日誌 293
15.3.1  日誌系統架構 293
15.3.2  日誌的採集、匯總與展示 294
15.4  故障排查 295
15.4.1  具體步驟 295
15.4.2  監控檢查 296
15.5  作業運行 296

第16章  數字化運營 298
16.1  數字化運營概述 298
16.1.1  運營數據 298
16.1.2  角色分類 299
16.1.3  用戶畫像 299
16.2  數據處理 300
16.2.1  數據採集 300
16.2.2  數據建模 301
16.2.3  數據分析 301
16.2.4  指標分析 302
16.3  反饋流程 303
16.4  驗證模式 304
16.4.1  A/B測試 304
16.4.2  灰度發布 305
16.5  ping台架構 306
16.5.1  運維數據ping台 306
16.5.2  智能化運維 306