预购商品
书目分类
特别推荐
雲原生之路,漫漫而修遠,因為雲在發展,應用也在發展。如何讓應用充分利用雲的特性煥發全新面貌,這是每個雲原生應用架構領域的人應該思考的問題。 本書分為兩篇,從技術演進講起,讓你充分瞭解系統資源、應用架構和軟體工程的發展歷程,從而擁有技術角度的全域視野;然後介紹雲原生應用的最佳實踐,手把手教你設計一個雲原生應用。 本書適合雲原生應用開發人員、架構師、雲計算從業者閱讀,部分章節對產品團隊、運維人員亦有一定的參考價值。
技術演進篇 第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 雲平臺組織架構 37 3.2.5 OpenStack 39 3.2.6 雲平臺部署架構 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 平臺架構 306 16.5.1 運維資料平臺 306 16.5.2 智能化運維 306 最佳實踐篇 第4部分 架構、應用落地與中台構建 310 第17章 雲原生架構 311 17.1 雲原生的定義 311 17.1.1 12因數應用 311 17.1.2 雲原生架構的特徵 313 17.1.3 CNCF對雲原生的定義 314 17.1.4 本書對雲原生的定義 315 17.2 關鍵技術 318 17.2.1 不可變基礎設施(容器) 318 17.2.2 聲明式編排(Kubernetes) 319 17.2.3 微服務架構(解耦性) 320 17.2.4 動態賦能(服務網格) 320 17.2.5 適應度函數(引導性) 320 17.2.6 領域驅動建模(統一模型) 321 17.2.7 CI/CD/CO 321 17.3 雲原生應用的實現過程 322 第18章 應用落地最佳實踐 323 18.1 雲原生化條件 323 18.1.1 團隊能力建設 323 18.1.2 推薦引入雲原生化的場景 324 18.1.3 不推薦引入雲原生化的場景 326 18.2 演進式的流程 327 18.3 應用改造模式 328 18.3.1 雙胞胎模式 328 18.3.2 絞殺者模式 328 18.3.3 修繕者模式 329 18.4 應用拆分原則 330 18.4.1 按業務能力拆分 330 18.4.2 按DDD子領域拆分 330 18.4.3 其他原則 332 18.5 API設計與治理 333 18.5.1 前後端分離 334 18.5.2 規範化API 334 18.5.3 並行或非同步調用 336 18.5.4 業務聚合 336 18.6 應用狀態分離 337 18.6.1 統一配置管理 338 18.6.2 將冷資料存儲在資料庫中 338 18.6.3 緩存熱數據 339 18.6.4 靜態資源物件存儲 340 18.7 應用容器化 340 18.8 非侵入式監控接入 345 18.9 流水線建設 347 18.10 架構 347 第19章 中台構建 350 19.1 中台簡介 350 19.1.1 中台的由來 351 19.1.2 中台與雲原生應用 351 19.1.3 中台架構 352 19.1.4 中台與微服務應用 353 19.2 中台核心功能 355 19.3 中台分類 355 19.3.1 技術中台 355 19.3.2 數據中台 356 19.3.3 業務中台 356 19.4 中台的優點 357 19.5 中台對組織架構的挑戰 357 19.5.1 高層的支持 357 19.5.2 參與人員的理念相同 358 19.5.3 中台價值的量化 358 19.5.4 PaaS/SaaS與中台 358 19.6 中台落地過程 359
賀阮 攻讀博士期間的主要研究方向是雲計算安全。畢業之後一直深耕於雲計算領域,工作內容涉及虛擬化內核、容器、調度、安全、微服務、應用架構、軟體設計開發等,工作崗位覆蓋科研、開發、產品架構、售前解決方案、售中售後支持等。曾先後任OpenStack基金會董事、ISO/IEC JTC1/SC38和ISO/IEC JTC1/SC27標樣委員會委員、聯合國國際電信聯盟(ITU)雲計算安全性群組副報告人,以及多個雲計算學術會議、期刊編輯等職位,從各個維度見證了雲計算行業的發展。 史冰迪 2015年畢業于中央財經大學電腦科學與技術專業,同年進入中國軟體與技術服務股份有限公司,從事政務資訊化相關工作。先後任軟體系統研發工程師、需求經理、軟體專案經理和集成專案大項目經理等多個職位,參與過軟體系統開發生命週期全流程相關工作。2020年進入中國資訊通信研究院從事政務資訊化專案管理工作,從另一個方向繼續在政務資訊化方向發力,不斷努力將電子政務、數位政府等工作與各類新技術結合。
客服公告
热门活动
订阅电子报