会员   密码 您忘记密码了吗?
1,574,159 本书已上架      购物流程 | 常见问题 | 联系我们 | 关于我们 | 用户协议

有店 App


当前分类

商品分类

浏览历史

当前位置: 首页 > 简体书 > 基礎設施即代碼:雲伺服器管理
基礎設施即代碼:雲伺服器管理
上一张
下一张
prev next

基礎設施即代碼:雲伺服器管理

作者: (美)基夫•莫里斯
出版社: 人民郵電出版社
出版日期: 2018-09-01
商品库存: 点击查询库存
以上库存为海外库存属流动性。
可选择“空运”或“海运”配送,空运费每件商品是RM14。
配送时间:空运约8~12个工作天,海运约30个工作天。
(以上预计配送时间不包括出版社库存不足需调货及尚未出版的新品)
定价:   NT534.00
市场价格: RM96.00
本店售价: RM85.44
促销价: RM84.48
剩余时间: 请稍等, 正在载入中...
购买数量:
collect Add to cart Add booking
详细介绍 商品属性 商品标记
內容簡介

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


作者介紹

基夫·莫里斯(Kief Morris)是ThoughtWorks歐洲區持續交付和DevOps帶頭人,致力於説明客戶尋找建立和管理基礎設施運維工作的更有效方法;擁有近20年設計、構建和運行自動化IT伺服器基礎設施的經驗。


目錄

第 一部分 基礎
第 1章 挑戰與原則 3
1.1 為什麼採用基礎設施即代碼 3
1.2 什麼是基礎設施即代碼 4
1.3 動態基礎設施的挑戰 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 系統能夠輕鬆複製 8
1.4.2 系統是用完可扔的 9
1.4.3 系統是一致的 10
1.4.4 過程是可重複的 10
1.4.5 設計經常變更 10
1.5 實踐 11
1.5.1 使用定義檔 11
1.5.2 自文檔化的系統和流程 11
1.5.3 一切版本化 12
1.5.4 持續測試系統和流程 13
1.5.5 小的變更,而不是批量變更 13
1.5.6 讓服務持續可用 13
1.6 反脆弱性:超越“穩健性” 14
1.7 結語 15
1.8 下一步 15
第 2章 動態基礎設施平臺 16
2.1 什麼是動態基礎設施平臺 16
2.2 對動態基礎設施平臺的要求 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 網路資源 22
2.4 動態基礎設施平臺的類型 23
2.4.1 公有IaaS雲 23
2.4.2 社區IaaS雲 23
2.4.3 私有IaaS雲 23
2.4.4 反模式:手搖雲 24
2.4.5 混合雲服務 24
2.4.6 裸機雲 24
2.5 如何選擇動態基礎設施平臺 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 需求:支持無人值守的執行 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 創建伺服器的工具 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 支援外部配置的工具優先 60
5.1.2 假定基礎設施是動態的工具優先 61
5.1.3 具有雲相容許可的產品優先 61
5.1.4 支援松耦合的產品優先 62
5.2 團隊之間共用服務 62
5.3 監控:告警、指標和日誌 63
5.3.1 告警:出現問題時告訴我 64
5.3.2 指標:收集和分析資料 65
5.3.3 日誌聚合和分析 65
5.4 發現服務 66
5.4.1 伺服器端的服務發現模式 67
5.4.2 用戶端的服務發現模式 67
5.5 分散式進程管理 67
5.5.1 使用伺服器角色編排進程 67
5.5.2 使用容器編排進程 67
5.5.3 調度短期任務 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 創建伺服器的模式 80
6.2.1 反模式:手動製作伺服器 80
6.2.2 實踐:將伺服器創建參數放在腳本中 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 創建時置備伺服器 87
7.2.2 在範本中置備 88
7.2.3 平衡範本和創建之間的置備工作 88
7.3 構建伺服器範本的流程 89
7.4 原始鏡像 90
7.4.1 反模式:熱複製伺服器範本 90
7.4.2 基於作業系統安裝鏡像烘焙範本 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 持續配置同步 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 持續部署的模式與實踐 102
8.3.1 模式:無主要伺服器的配置管理 102
8.3.2 實踐:應用Cron 103
8.3.3 持續同步流 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 實踐:使用測試驅動開發來驅動良好的設計 110
8.6 結語 110
第9章 定義基礎設施的模式 111
9.1 環境 112
9.1.1 反模式:手動製作的基礎設施 112
9.1.2 定義基礎設施棧即代碼 112
9.1.3 反模式:每個環境單獨的定義檔 114
9.1.4 模式:可重用的定義檔 114
9.1.5 實踐:測試並推進棧定義 115
9.1.6 自服務的環境 116
9.2 組織基礎設施 116
9.2.1 反模式:單體棧 116
9.2.2 遷移基礎設施時避免“直接遷移” 118
9.2.3 將應用程式環境分到不同的棧中 118
9.2.4 管理棧之間的配置參數 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 系統品質 132
10.1.1 低品質的系統很難變更 132
10.1.2 高品質的系統能更容易、更安全地變更 132
10.1.3 基於代碼的基礎設施品質 133
10.1.4 快速回饋 133
10.2 基礎設施管理的版本控制系統 133
10.3 持續集成 134
10.3.1 持續測試分支不是持續集成 134
10.3.2 誰破壞了構建 136
10.3.3 忽略失敗的測試 137
10.3.4 針對基礎設施的持續集成 137
10.4 持續交付 137
10.4.1 集成階段的問題 137
10.4.2 部署流水線和變更流水線 138
10.4.3 持續交付不是持續部署 139
10.5 代碼品質 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 實踐:僅實現需要的層級 148
11.2.4 實踐:經常刪減測試套件 148
11.2.5 實踐:持續評審測試的有效性 148
11.3 實現均衡的測試套件 149
11.3.1 低層級測試 150
11.3.2 中間層級測試 151
11.3.3 高層級測試 154
11.3.4 測試運維品質 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 品質分析師的價值 162
11.5.5 測試驅動開發 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 儘早獲得類生產環境 168
12.3 基本流水線設計 169
12.3.1 本地開發階段 169
12.3.2 構建階段 169
12.3.3 發佈配置製品 170
12.3.4 自動化測試階段 171
12.3.5 手動驗證階段 172
12.3.6 上線 173
12.3.7 流水線的節奏 173
12.4 使用流水線的實踐 174
12.4.1 實踐:證明每個變更都對生產準備就緒 174
12.4.2 實踐:每個變更都始於流水線起點 175
12.4.3 實踐:出現錯誤時停止流水線 175
12.5 擴展流水線到更複雜的系統 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 提供預發佈的庫構建 183
12.6.4 為消費者提供服務的測試實例 184
12.6.5 將服務的測試實例用作消費者185
12.7 管理元件間介面的實踐 186
12.7.1 實踐:保證介面的向後相容性 186
12.7.2 實踐:從發佈解耦部署 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章 動態基礎設施的連續性 203
14.1 服務連續性 204
14.1.1 真實可用性 204
14.1.2 用動態伺服器池做恢復 205
14.1.3 為動態基礎設施設計軟體 206
14.1.4 為連續性劃分系統 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 有數據的零停機變更 213
14.3 數據連續性 214
14.3.1 冗餘地複製資料 214
14.3.2 重新生成資料 215
14.3.3 委託資料持久化 215
14.3.4 備份到持久存儲 215
14.4 災難恢復 216
14.4.1 持續的災難恢復 217
14.4.2 災備計畫:為災難做計畫 218
14.4.3 實踐:優先重建而不是冷備份 218
14.4.4 通過流水線持續監控 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 在實戰中學習 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 持續變更管理的治理 237
15.4.1 提供穩固的構建單元 237
15.4.2 在流水線中證明運維就緒 238
15.4.3 共用運維品質的所有權 238
15.4.4 審查和審計自動化流程 238
15.4.5 優化發現和修復問題的時間 239
15.5 結語:永無止境 239
關於作者 240
關於封面 240