雲原生 DevOps 指南 (Deployment and Operations for Software Engineers)

LenBass,JohnKlein 張海龍//杜萬//王曉楓

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

商品描述

隨著雲服務、虛擬機、微服務的發展和普及,現在的軟件開發任務對程序員的要求越來越高,
除了會寫代碼,懂業務規則,程序員還必須清楚自己的代碼是如何部署到雲端或虛擬機上的,
以及如何借助微服務縮短髮布週期,提高部署效率。
換句話說,現在的程序員必須掌握一定的DevOps知識。
本書是全面系統地講解了現代軟件開發涉及的部署與運維基礎知識
(包括虛擬化、雲、容器、平台安全、微服務、系統配置、佈署流水線、災難恢復等)、
流程、常用工具,幫助讀者快速勝任軟件開發工作

作者簡介

LenBass

澳大利亞國家信息通信技術研究院(NICTA)的高級主任研究員。
在此之前,他在卡內基·梅隆大學軟件工程研究所(SEI)工作了二十五年。
著有獲獎圖書《軟件構架實踐》。

目錄大綱

譯序 III n
前言 VII n
n
第一部分 概述 1 n
第1章 虛擬化 4 n
1.1共享與隔離 5 n
1.2 虛擬機 9 n
1.3 虛擬機鏡像 13 n
1.4 容器 15 n
1.5 總結 18 n
1.6 練習 18 n
1.7 討論 19 n

第2章 網絡 20 n
2.1 簡介 20 n
2.2 IP地址 23 n
2.2.1 分配IP地址 24 n
2.2.2 消息傳遞 27 n
2.2.3 互聯網協議 28 n
2.3 DNS 32 n
2.3.1 主機名結構 33 n
2.3.2 存活時間 34 n
2.3.3 使用DNS來處理過載和故障問題 35 n
2.4 端口 36 n
2.5 TCP 38 n
2.6 IP子網 40 n
2.6.1 搭建結構化網絡 41 n
2.6.2 隧道 44 n
2.7 虛擬機和容器網絡 45 n
2.8 總結 48 n
2.9 練習 49 n
2.10 討論 49 n

第3章 雲 51 n
3.1 結構 52 n
3.2 雲故障 58 n
3.3 擴展服務容量及可用性 60 n
3.3.1 負載均衡器是如何工作的 61 n
3.3.2 檢測和管理服務實例故障 63 n
3.3.3 狀態管理 66 n
3.4 分佈式協同 70 n
3.4.1 分佈式系統中的時間協同 70 n
3.4.2 通過網絡實現時間同步 71 n
3.4.3 數據 72 n
3.5 彈性伸縮 76 n
3.6 總結 80 n
3.7 練習 81 n
3.8 討論 81 n

第4章 容器管理 83 n
4.1 容器和虛擬機 84 n
4.2 容器的可移植性 86 n
4.3 容器鏡像倉庫 86 n
4.4 容器集群 87 n
4.4.1 集群編排 90 n
4.4.2 容器伸縮 91 n
4.5 無服務器架構 92 n
4.6 容器技術的發展 94 n
4.7 總結 95 n
4.8 練習 96 n
4.9 討論 96 n

第5章 基礎設施的安全性 97 n
5.1 安全工作的分類 98 n
5.2 防護:密碼學 99 n
5.3 防護:密鑰交換 103 n
5.4 防護:認證 105 n
5.5 防護:公鑰基礎設施和證書 108 n
5.6 防護:傳輸層安全性 109 n
5.7 防護:安全的Shell 112 n
5.8 防護:安全文件傳輸 114 n
5.9 檢測:入侵檢測 115 n
5.10 總結 117 n
5.11 練習 117 n
5.12 討論 118 n
n

第二部分介紹 119 n
第6章 微服務 122 n
6.1 微服務架構的定義 124 n
6.2 微服務和團隊 126 n
6.3 微服務質量 127 n
6.3.1 可用性 128 n
6.3.2 版本兼容性 130 n
6.3.3 可維護性 132 n
6.3.4 性能 133 n
6.3.5 可重用性 135 n
6.3.6 可伸縮性 137 n
6.3.7 安全性 138 n
6.4 服務等級目標 140 n
6.5 微服務環境 141 n
6.5.1 微服務發現 142 n
6.5.2 在分佈式系統中發出請求 143 n
6.5.3 結構化請求和響應數據 147 n
6.5.4 服務網格 150 n
6.5.5 微服務和容器 153 n
6.5.6 為部署而設計 154 n
6.5.7 預防故障 155 n
6.6 總結 156 n
6.7 練習 157 n
6.8 討論 158 n

第7章 管理系統配置 158 n
7.1 版本控制 160 n
7.2 配置管理工具 163 n
7.3 配置參數 167 n
7.4 管理機密 169 n
7.5 總結 171 n
7.6 練習 172 n
7.7 討論 172 n

第8章 部署流水線 172 n
8.1 部署流水線概覽 174 n
8.2 環境 176 n
8.2.1 環境的要求 177 n
8.2.2 環境的生命週期 180 n
8.2.3 環境生命週期管理的權衡 182 n
8.2.4 不同類型的部署流水線和環境 183 n
8.3 開發環境 184 n
8.3.1 構建 184 n
8.3.2 測試 185 n
8.3.3 製品 186 n
8.3.4 發布 186 n
8.3.5 銷毀 186 n
8.4 集成環境 187 n
8.4.1 構建 188 n
8.4.2 測試 188 n
8.4.3 製品 189 n
8.4.4 發布 190 n
8.4.5 銷毀 190 n
8.5 預發環境 190 n
8.5.1 構建 191 n
8.5.2 測試 191 n
8.5.3 部署到生產環境 195 n
8.5.4 銷毀 196 n
8.6 部署策略 196 n
8.6.1 全量部署策略 198 n
8.6.2 灰度發布 204 n
8.6.3 回滾 205 n
8.7 總結 206 n
8.8 練習 207 n
8.9 討論 208 n

第9章 發布以後 209 n
9.1 誰開發,誰運維 210 n
9.2 日誌 211 n
指標 216 n
9.3 隔離/定位問題 219 n
9.4 生產環境測試 220 n
9.5 給安全漏洞打補丁 222 n
9.6 總結 223 n
9.7 練習 224 n
9.8 討論 224 n

第10章 災難恢復 225 n
10.1 災難恢復計劃 226 n
10.1.1 RPO和RTO 227 n
10.1.2 應用優先級 228 n
10.1.3 數據中心 229 n
10.2 2~4級應用程序的數據管理策略 233 n
10.3 1級應用程序數據管理 235 n
10.4 大數據 237 n
10.5 備份數據中心的軟件 237 n
10.5.1 2~4級應用程序 238 n
10.5.2 1級應用程序 239 n
10.5.3 其他數據和軟件 239 n
10.6 故障轉移 240 n
10.6.1 手動故障轉移 240 n
10.6.2 自動化故障轉移 241 n
10.6.3 測試故障轉移過程 242 n
10.7 總結 243 n
10.8 練習 244 n
10.9 討論 244 n
n

第11章 安全開發 245 n
11.1 識別並保護重要數據和資源 246 n
11.2 管理訪問服務的憑據 250 n
11.3 管理個人憑據 254 n
11.4 軟件供應鍊和軟件保障 256 n
11.5 缺陷和漏洞 258 n
11.6 安全漏洞的發現和打補丁修復 261 n
11.7 總結 263 n
11.8 練習 264 n
11.9 討論 264 n

第12章 寫在*後 265 n
12.1 部署和運維的重要性 265 n
12.2 衡量DevOps的有效性 267 n
12.3 站點可靠性工程 269 n
12.4 移動和IoT設備 271 n
12.5 顛覆性技術 272