注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件工程及軟件方法學基礎設施即代碼 云服務器管理

基礎設施即代碼 云服務器管理

基礎設施即代碼 云服務器管理

定 價:¥89.00

作 者: [美] 基夫·莫里斯(Kief Morris) 著,金明,錢偉,馬博文,黃博文,禚嫻靜 譯
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

ISBN: 9787115490636 出版時間: 2018-09-01 包裝: 平裝
開本: 16開 頁數(shù): 240 字數(shù):  

內(nèi)容簡介

  本書旨在解釋如何利用“云時代”基礎設施即代碼的方法來管理IT基礎設施。主要內(nèi)容包括:組織在采用新一代基礎設施技術時經(jīng)常掉進的陷阱以及避免這些陷阱的核心原則和基礎設施即代碼的關鍵實踐;動態(tài)基礎設施平臺的性能和服務模型;提供、確認核心基礎設施資源的工具;規(guī)定服務器、構建服務器模板和更新運行服務器的實踐和模型。

作者簡介

  【作者簡介】基夫·莫里斯(Kief Morris)是ThoughtWorks歐洲區(qū)持續(xù)交付和DevOps帶頭人,致力于幫助客戶尋找建立和管理基礎設施運維工作的更有效方法;擁有近20年設計、構建和運行自動化IT服務器基礎設施的經(jīng)驗。【譯者簡介】金明益輔金服CTO,ThoughtWorks前咨詢師,ScaleWorks云創(chuàng)始人及架構師。擁有超過十年的互聯(lián)網(wǎng)產(chǎn)品以及云計算的研發(fā)管理經(jīng)驗,為國內(nèi)外多家銀行、華為、中興等大中型企業(yè)提供了技術變革的咨詢服務,并多次在國內(nèi)外軟件大會上做主題演講。譯有《敏捷軟件開發(fā)實踐》《項目百態(tài)》等書。錢偉千米網(wǎng)內(nèi)部敏捷教練,在通信行業(yè)有十年研發(fā)、售后、交付經(jīng)驗,兩年IT咨詢經(jīng)驗,深信“只要姿勢對,敏捷治百病”。馬博文ThoughtWorks前咨詢師,AWS助理架構師。擁有多年Web開發(fā)和DevOps經(jīng)驗,熟悉持續(xù)交付、微服務。曾參與翻譯《Scala編程實戰(zhàn)》《DevOps實踐》和《DevOps實踐指南》,是西安DevOps Meetup活動的發(fā)起人。黃博文阿里巴巴技術專家,多年一線開發(fā)老兵,在持續(xù)集成、持續(xù)部署等DevOps領域擁有豐富的經(jīng)驗。曾在國內(nèi)外多家企業(yè)從事過技術教練以及技術咨詢工作,擅長敏捷工作方式。擁有AWS解決方案架構師,譯有《面向對象的思考過程》。禚嫻靜ThoughtWorks咨詢師,擁有多年企業(yè)和互聯(lián)網(wǎng)應用的一線開發(fā)經(jīng)驗,參與和主導過多個大型敏捷項目的技術交付、遺留系統(tǒng)重構和微服務架構轉型。曾參與翻譯《遺留系統(tǒng)重建實戰(zhàn)》,享受跳躍的代碼和專注帶來的樂趣。

圖書目錄

第 一部分 基礎
第 1章 挑戰(zhàn)與原則 3
1.1 為什么采用基礎設施即代碼 3
1.2 什么是基礎設施即代碼 4
1.3 動態(tài)基礎設施的挑戰(zhàn) 5
1.3.1 服務器蔓延 5
1.3.2 配置漂移 6
1.3.3 雪花服務器 6
1.3.4 脆弱的基礎設施 7
1.3.5 自動化恐懼癥 7
1.3.6 侵蝕 8
1.4 基礎設施即代碼的原則 8
1.4.1 系統(tǒng)能夠輕松復制 8
1.4.2 系統(tǒng)是用完可扔的 9
1.4.3 系統(tǒng)是一致的 10
1.4.4 過程是可重復的 10
1.4.5 設計經(jīng)常變更 10
1.5 實踐 11
1.5.1 使用定義文件 11
1.5.2 自文檔化的系統(tǒng)和流程 11
1.5.3 一切版本化 12
1.5.4 持續(xù)測試系統(tǒng)和流程 13
1.5.5 小的變更,而不是批量變更 13
1.5.6 讓服務持續(xù)可用 13
1.6 反脆弱性:超越“穩(wěn)健性” 14
1.7 結語 15
1.8 下一步 15
第 2章 動態(tài)基礎設施平臺 16
2.1 什么是動態(tài)基礎設施平臺 16
2.2 對動態(tài)基礎設施平臺的要求 17
2.2.1 可編程 17
2.2.2 按需獲取 19
2.2.3 自服務 19
2.3 平臺提供的基礎設施資源 19
2.3.1 計算資源 20
2.3.2 存儲資源 20
2.3.3 網(wǎng)絡資源 22
2.4 動態(tài)基礎設施平臺的類型 23
2.4.1 公有IaaS云 23
2.4.2 社區(qū)IaaS云 23
2.4.3 私有IaaS云 23
2.4.4 反模式:手搖云 24
2.4.5 混合云服務 24
2.4.6 裸機云 24
2.5 如何選擇動態(tài)基礎設施平臺 25
2.5.1 公有還是私有 25
2.5.2 云的可移植性 27
2.6 與云和虛擬化的“機械通感” 29
2.7 結語 30
第3章 基礎設施定義工具 31
3.1 選擇基礎設施即代碼的工具 31
3.1.1 需求:腳本接口 32
3.1.2 需求:無人值守的命令行工具 32
3.1.3 需求:支持無人值守的執(zhí)行 33
3.1.4 需求:外部化配置 34
3.2 配置定義文件 36
3.3 使用基礎設施定義工具 37
3.3.1 用過程化腳本置備基礎設施 38
3.3.2 聲明式定義基礎設施 40
3.3.3 使用基礎設施定義工具 41
3.3.4 配置服務器 41
3.4 配置注冊表 42
3.4.1 輕量級配置注冊表 42
3.4.2 配置注冊表是CMDB嗎 43
3.4.3 CMDB的審計與修復反模式 44
3.4.4 CMDB的基礎設施即代碼方式 44
3.5 結語 44
第4章 服務器配置工具 45
4.1 自動化服務器管理的目標 45
4.2 具有不同的服務器管理功能的工具 46
4.2.1 創(chuàng)建服務器的工具 46
4.2.2 配置服務器的工具 47
4.2.3 打包服務器模板的工具 48
4.2.4 在服務器上運行命令的工具 49
4.2.5 從中央注冊中心獲取配置 50
4.3 服務器變更管理模型 51
4.3.1 臨時變更管理 51
4.3.2 配置同步 51
4.3.3 不可變的基礎設施 51
4.3.4 容器化服務 52
4.4 容器 52
4.4.1 以容器方式和非容器方式管理Ruby應用程序 53
4.4.2 容器是虛擬機嗎 54
4.4.3 使用容器而不是虛擬機 55
4.4.4 運行容器 56
4.4.5 安全和容器 56
4.5 結語 58
第5 基礎服務概述 59
5.1 基礎設施服務和工具的考慮 59
5.1.1 支持外部配置的工具優(yōu)先 60
5.1.2 假定基礎設施是動態(tài)的工具優(yōu)先 61
5.1.3 具有云兼容許可的產(chǎn)品優(yōu)先 61
5.1.4 支持松耦合的產(chǎn)品優(yōu)先 62
5.2 團隊之間共享服務 62
5.3 監(jiān)控:告警、指標和日志 63
5.3.1 告警:出現(xiàn)問題時告訴我 64
5.3.2 指標:收集和分析數(shù)據(jù) 65
5.3.3 日志聚合和分析 65
5.4 發(fā)現(xiàn)服務 66
5.4.1 服務器端的服務發(fā)現(xiàn)模式 67
5.4.2 客戶端的服務發(fā)現(xiàn)模式 67
5.5 分布式進程管理 67
5.5.1 使用服務器角色編排進程 67
5.5.2 使用容器編排進程 67
5.5.3 調(diào)度短期任務 68
5.5.4 容器編排工具 68
5.6 軟件部署 68
5.6.1 部署流水線軟件 68
5.6.2 打包軟件 69
5.7 結語 70
第二部分 模式
第6章 置備服務器的模式 73
6.1 服務器置備 74
6.1.1 服務器的生命周期 74
6.1.2 服務器都承載了什么 77
6.1.3 服務器上東西的類型 77
6.1.4 服務器角色 79
6.2 創(chuàng)建服務器的模式 80
6.2.1 反模式:手動制作服務器 80
6.2.2 實踐:將服務器創(chuàng)建參數(shù)放在腳本中 81
6.2.3 反模式:熱克隆服務器 82
6.2.4 模式:服務器模板 82
6.2.5 反模式:雪花工廠 82
6.3 引導新服務器的模式 83
6.3.1 推送引導 83
6.3.2 拉取引導 84
6.3.3 實踐:對每個新服務器實例進行冒煙測試 84
6.4 結語 85
第7章 管理服務器模板的模式 86
7.1 供應模板:不能讓別人來做嗎 86
7.2 使用模板置備服務器 87
7.2.1 創(chuàng)建時置備服務器 87
7.2.2 在模板中置備 88
7.2.3 平衡模板和創(chuàng)建之間的置備工作 88
7.3 構建服務器模板的流程 89
7.4 原始鏡像 90
7.4.1 反模式:熱復制服務器模板 90
7.4.2 基于操作系統(tǒng)安裝鏡像烘焙模板 91
7.4.3 基于供應鏡像烘焙模板 91
7.4.4 基于Unikernel構建模板 92
7.4.5 在不啟動服務器的情況下自定義服務器模板 92
7.5 更新服務器模板 92
7.5.1 重新烘烤模板 93
7.5.2 烘焙新模板 93
7.5.3 版本控制服務器模板 93
7.6 構建基于角色的模板 95
7.6.1 模式:分層模板 95
7.6.2 共享模板的基礎腳本 96
7.7 自動化服務器模板管理 96
7.7.1 在烘焙前自定義服務器 96
7.7.2 實踐:自動測試服務器模板 97
7.8 結語 97
第8章 服務器更新與變更模式 98
8.1 服務器變更管理模型 99
8.1.1 臨時性變更管理 99
8.1.2 持續(xù)配置同步 99
8.1.3 不可變服務器 99
8.1.4 容器化服務器 100
8.2 通用模式和實踐 100
8.2.1 實踐:最小化服務器模板 101
8.2.2 實踐:當服務器模板變更時更換服務器 101
8.2.3 模式:鳳凰服務器 101
8.3 持續(xù)部署的模式與實踐 102
8.3.1 模式:無主服務器的配置管理 102
8.3.2 實踐:應用Cron 103
8.3.3 持續(xù)同步流 104
8.3.4 未配置領域 104
8.4 不可變服務器的模式與實踐 106
8.4.1 服務器鏡像作為制品 106
8.4.2 使用不可變服務器簡化確認管理工具 106
8.4.3 不可變服務器流程 107
8.4.4 使用不可變服務器引導配置 108
8.4.5 事務性服務器更新 109
8.5 管理配置定義的實踐 109
8.5.1 實踐:保持配置定義最小化 109
8.5.2 組織定義 110
8.5.3 實踐:使用測試驅動開發(fā)來驅動良好的設計 110
8.6 結語 110
第9章 定義基礎設施的模式 111
9.1 環(huán)境 112
9.1.1 反模式:手動制作的基礎設施 112
9.1.2 定義基礎設施棧即代碼 112
9.1.3 反模式:每個環(huán)境單獨的定義文件 114
9.1.4 模式:可重用的定義文件 114
9.1.5 實踐:測試并推進棧定義 115
9.1.6 自服務的環(huán)境 116
9.2 組織基礎設施 116
9.2.1 反模式:單體?!?16
9.2.2 遷移基礎設施時避免“直接遷移” 118
9.2.3 將應用程序環(huán)境分到不同的棧中 118
9.2.4 管理棧之間的配置參數(shù) 119
9.2.5 共享基礎設施元素 120
9.2.6 實踐:應用程序代碼和基礎設施代碼一起管理 122
9.2.7 共享定義的方法 123
9.2.8 實踐:基礎設施設計要與變更范圍匹配 124
9.2.9 示例:微服務的基礎設施設計 125
9.3 運行定義工具 128
9.4 結語 128
第三部分 實踐
第 10章 基礎設施的軟件工程實踐 131
10.1 系統(tǒng)質(zhì)量 132
10.1.1 低質(zhì)量的系統(tǒng)很難變更 132
10.1.2 高質(zhì)量的系統(tǒng)能更容易、更安全地變更 132
10.1.3 基于代碼的基礎設施質(zhì)量 133
10.1.4 快速反饋 133
10.2 基礎設施管理的版本控制系統(tǒng) 133
10.3 持續(xù)集成 134
10.3.1 持續(xù)測試分支不是持續(xù)集成 134
10.3.2 誰破壞了構建 136
10.3.3 忽略失敗的測試 137
10.3.4 針對基礎設施的持續(xù)集成 137
10.4 持續(xù)交付 137
10.4.1 集成階段的問題 137
10.4.2 部署流水線和變更流水線 138
10.4.3 持續(xù)交付不是持續(xù)部署 139
10.5 代碼質(zhì)量 140
10.5.1 整潔代碼 140
10.5.2 實踐:管理技術債務 140
10.6 管理重大的基礎設施變更 141
10.7 結語 142
第 11章 測試基礎設施變更 143
11.1 敏捷測試方法 144
11.1.1 自動化測試提供快速反饋 144
11.1.2 有機地構建一個測試套件 145
11.2 構建測試套件:測試金字塔 145
11.2.1 避免失衡的測試套件 146
11.2.2 實踐:盡可能在最低層級進行測試 147
11.2.3 實踐:僅實現(xiàn)需要的層級 148
11.2.4 實踐:經(jīng)常刪減測試套件 148
11.2.5 實踐:持續(xù)評審測試的有效性 148
11.3 實現(xiàn)均衡的測試套件 149
11.3.1 低層級測試 150
11.3.2 中間層級測試 151
11.3.3 高層級測試 154
11.3.4 測試運維質(zhì)量 155
11.4 管理測試代碼 156
11.4.1 實踐:將測試代碼與所測代碼放在一起 156
11.4.2 反模式:反射測試 156
11.4.3 隔離組件進行測試的技巧 157
11.4.4 重構組件以便隔離 158
11.4.5 管理外部依賴 158
11.4.6 測試設置 159
11.5 測試的角色和工作流 161
11.5.1 原則:人們應該為所構建的東西編寫測試 161
11.5.2 編寫測試的習慣 162
11.5.3 原則:每個人都應該能夠使用測試工具 162
11.5.4 質(zhì)量分析師的價值 162
11.5.5 測試驅動開發(fā) 163
11.6 結語 164
第 12章 基礎設施的變更管理流水線 165
12.1 變更管理流水線的好處 166
12.2 設計流水線的準則 166
12.2.1 確保每個階段的一致性 167
12.2.2 對于每個變更都立即得到反饋 167
12.2.3 在手動階段之前運行自動階段 168
12.2.4 盡早獲得類生產(chǎn)環(huán)境 168
12.3 基本流水線設計 169
12.3.1 本地開發(fā)階段 169
12.3.2 構建階段 169
12.3.3 發(fā)布配置制品 170
12.3.4 自動化測試階段 171
12.3.5 手動驗證階段 172
12.3.6 上線 173
12.3.7 流水線的節(jié)奏 173
12.4 使用流水線的實踐 174
12.4.1 實踐:證明每個變更都對生產(chǎn)準備就緒 174
12.4.2 實踐:每個變更都始于流水線起點 175
12.4.3 實踐:出現(xiàn)錯誤時停止流水線 175
12.5 擴展流水線到更復雜的系統(tǒng) 175
12.5.1 模式:扇入型流水線 176
12.5.2 實踐:保持較短的流水線 179
12.5.3 實踐:解耦流水線 179
12.5.4 集成模型 180
12.6 處理組件之間依賴的技巧 181
12.6.1 模式:庫依賴 181
12.6.2 模式:自置備的服務實例 183
12.6.3 提供預發(fā)布的庫構建 183
12.6.4 為消費者提供服務的測試實例 184
12.6.5 將服務的測試實例用作消費者185
12.7 管理組件間接口的實踐 186
12.7.1 實踐:保證接口的向后兼容性 186
12.7.2 實踐:從發(fā)布解耦部署 186
12.7.3 實踐:使用版本相容 187
12.7.4 實踐:提供測試替身 187
12.7.5 實踐:用契約測試來測試提供者 188
12.7.6 實踐:用參考消費者來測試 188
12.7.7 實踐:提供者接口的冒煙測試 188
12.7.8 實踐:運行消費者驅動契約測試 188
12.8 結語 189
第 13章 基礎設施團隊的工作流 190
13.1 任何可以自動化的都要自動化 190
13.1.1 手動變更 191
13.1.2 臨時的自動化 191
13.1.3 自主的自動化 192
13.1.4 自主的自動化工作流 193
13.2 使用本地沙箱 194
13.2.1 使用本地虛擬化做沙箱 194
13.2.2 具有本地測試的工作流示例 196
13.2.3 使用虛擬化平臺做沙箱 197
13.3 代碼庫組織模式 197
13.3.1 反模式:基于分支的代碼庫 198
13.3.2 模式:每個組件一個主干 199
13.3.3 模式:單一主干 199
13.4 工作流的效率 199
13.4.1 加快變更 199
13.4.2 代碼評審 200
13.4.3 將治理融入工作流 200
13.5 結語 202
第 14章 動態(tài)基礎設施的連續(xù)性 203
14.1 服務連續(xù)性 204
14.1.1 真實可用性 204
14.1.2 用動態(tài)服務器池做恢復 205
14.1.3 為動態(tài)基礎設施設計軟件 206
14.1.4 為連續(xù)性劃分系統(tǒng) 208
14.2 零停機變更 208
14.2.1 模式:藍綠替換 209
14.2.2 模式:鳳凰替換 209
14.2.3 實踐:縮小替換的范圍 210
14.2.4 模式:金絲雀替換 211
14.2.5 為零停機替換路由流量 212
14.2.6 有數(shù)據(jù)的零停機變更 213
14.3 數(shù)據(jù)連續(xù)性 214
14.3.1 冗余地復制數(shù)據(jù) 214
14.3.2 重新生成數(shù)據(jù) 215
14.3.3 委托數(shù)據(jù)持久化 215
14.3.4 備份到持久存儲 215
14.4 災難恢復 216
14.4.1 持續(xù)的災難恢復 217
14.4.2 災備計劃:為災難做計劃 218
14.4.3 實踐:優(yōu)先重建而不是冷備份 218
14.4.4 通過流水線持續(xù)監(jiān)控 219
14.5 安全 220
14.5.1 自動掩蓋危害 220
14.5.2 以可靠的更新作為防護 221
14.5.3 包的來源 221
14.5.4 自動加固 222
14.5.5 流水線中安全驗證的自動化 223
14.5.6 變更流水線的漏洞 223
14.5.7 管理云賬號的安全風險 224
14.6 結語 225
第 15章 基礎設施即代碼的組織要求 226
15.1 演進式架構 226
15.1.1 在實戰(zhàn)中學習 228
15.1.2 從先驅者流水線開始 228
15.2 度量有效性 229
15.2.1 首先對期望的結果達成一致 229
15.2.2 選擇有助于團隊的度量指標 230
15.2.3 跟蹤和改善周期時間 230
15.2.4 使用看板可視化工作 232
15.2.5 回顧會議及事后分析 233
15.3 組織授權用戶 233
15.3.1 劃分功能模型的陷阱 233
15.3.2 采取自服務模型 235
15.3.3 承擔全部責任:誰構建,誰運行 235
15.3.4 組織跨職能團隊 236
15.4 持續(xù)變更管理的治理 237
15.4.1 提供穩(wěn)固的構建單元 237
15.4.2 在流水線中證明運維就緒 238
15.4.3 共享運維質(zhì)量的所有權 238
15.4.4 審查和審計自動化流程 238
15.4.5 優(yōu)化發(fā)現(xiàn)和修復問題的時間 239
15.5 結語:永無止境 239
關于作者 240
關于封面 240

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號