本書介紹了關(guān)于應(yīng)用程序服務(wù)質(zhì)量、云模型以及虛擬化架構(gòu)缺陷的基礎(chǔ)內(nèi)容,系統(tǒng)地分析了應(yīng)用程序服務(wù)由于云架構(gòu)缺陷受到的影響,為云計算應(yīng)用以及尚在開發(fā)過程中的應(yīng)用提供了技術(shù)和策略方面的建議,優(yōu)化其提供優(yōu)質(zhì)服務(wù)的能力。本書適合從事云計算、云應(yīng)用設(shè)計以及軟件工程行業(yè)的人士閱讀,也適合作為相關(guān)專業(yè)的師生的參考書。
目前的云應(yīng)用程序,小到智能手機的APP,大到大數(shù)據(jù)整體運算解決方案,應(yīng)用程序之間的競爭,已經(jīng)從數(shù)量性、功能性的競爭逐漸向服務(wù)質(zhì)量的競爭過渡。人們都希望通過云計算架構(gòu)交付給用戶的軟件應(yīng)用和服務(wù),應(yīng)當(dāng)具有與在傳統(tǒng)本地硬件配置上運行時相同級別的服務(wù)質(zhì)量、可靠性和可用性。但由于云計算架構(gòu)基于虛擬化的計算、內(nèi)存、存儲和網(wǎng)絡(luò)資源,從而引入了許多潛在的服務(wù)缺陷風(fēng)險。因此,基于云的應(yīng)用程序開發(fā)人員應(yīng)當(dāng)學(xué)會如何消除這些缺陷,才能將可以接受的服務(wù)交付給終端用戶。本書包含了三個部分:
第I部分:配置。介紹了關(guān)于云應(yīng)用程序服務(wù)質(zhì)量、云模型以及虛擬化架構(gòu)缺陷的基礎(chǔ)內(nèi)容。
第II部分:分析。系統(tǒng)地分析了云應(yīng)用程序服務(wù)由于云架構(gòu)缺陷受到的影響。
第III部分:建議。為已經(jīng)完成或尚在開發(fā)過程中的云應(yīng)用提供了技術(shù)和策略方面的建議,以減輕或消除服務(wù)質(zhì)量上的風(fēng)險和缺陷。
目錄
關(guān)于作者
譯者序
1 概述
1.1 入門
1.2 目標(biāo)讀者
1.3 本書組織結(jié)構(gòu)
I 配置
2.應(yīng)用程序服務(wù)質(zhì)量
2.1 簡單應(yīng)用程序模型
2.2 服務(wù)邊界
2.3 質(zhì)量和性能的關(guān)鍵指標(biāo)
2.4 關(guān)鍵應(yīng)用特征
2.4.1 服務(wù)急迫性
2.4.2 應(yīng)用程序交互性
2.4.3 網(wǎng)絡(luò)傳輸缺陷的耐受性
2.5 應(yīng)用程序服務(wù)質(zhì)量指標(biāo)
2.5.1 服務(wù)可用性
2.5.2 服務(wù)延遲
2.5.3 服務(wù)可靠性
2.5.4 服務(wù)可訪問性
2.5.5 服務(wù)可維持性
2.5.6 服務(wù)吞吐量
2.5.7 服務(wù)時間戳精度
2.5.8 特定應(yīng)用程序的服務(wù)質(zhì)量度量
2.6 技術(shù)服務(wù)與支持服務(wù)
2.6.1 技術(shù)服務(wù)質(zhì)量
2.6.2 支持服務(wù)質(zhì)量
2.7 安全事項
3 云模型
3.1 云計算中的角色
3.2 云服務(wù)模型
3.3 云的基本特征
3.3.1 按需自助服務(wù)
3.3.2 廣泛的網(wǎng)絡(luò)訪問
3.3.3 資源池
3.3.4 快速彈性
3.3.5 度量服務(wù)
3.4 簡化云架構(gòu)
3.4.1 應(yīng)用軟件
3.4.2 虛擬機服務(wù)器
3.4.3 虛擬機服務(wù)器控制器
3.4.4 云操作支持系統(tǒng)
3.4.5 云技術(shù)組件“即服務(wù)”
3.5 彈性度量
3.5.1 密度
3.5.2 配置間隔
3.5.3 釋放間隔
3.5.4 向內(nèi)和向外擴展
3.5.5 向上和向下擴展
3.5.6 敏捷性
3.5.7 轉(zhuǎn)換速率和線性度
3.5.8 彈性加速
3.6 空間和區(qū)域
3.7 云意識
4 虛擬化架構(gòu)缺陷
4.1 服務(wù)延遲、虛擬化和云
4.1.1 虛擬化和云導(dǎo)致的延遲變化
4.1.2 虛擬化開銷
4.1.3 增加架構(gòu)性能的可變性
4.2 虛擬機故障
4.3 無法交付的虛擬機配置容量
4.4 交付退化的虛擬機容量
4.5 尾部延遲
4.6 時鐘事件抖動
4.7 時鐘漂移
4.8 失敗或緩慢的虛擬機實例分配和啟動
4.9 虛擬化架構(gòu)缺陷展望
II 分析
5 應(yīng)用程序冗余和云計算
5.1 故障,可用性和簡單建構(gòu)
5.2 通過虛擬化改進軟件修復(fù)時間
5.3 通過虛擬化改進架構(gòu)修復(fù)時間
5.3.1 理解硬件修復(fù)
5.3.2 虛擬機修復(fù)即服務(wù)
5.3.3 討論
5.4 冗余和可恢復(fù)性
5.4.1 通過虛擬化改進恢復(fù)時間
5.5 順序冗余和并發(fā)冗余
5.5.1 混合并發(fā)策略
5.6 虛擬化缺陷對應(yīng)用服務(wù)的影響
5.6.1 簡單架構(gòu)的服務(wù)影響
5.6.2 順序冗余架構(gòu)的服務(wù)影響
5.6.3 并發(fā)冗余架構(gòu)的服務(wù)影響
5.6.4 混合并發(fā)架構(gòu)的服務(wù)影響
5.7 數(shù)據(jù)冗余
5.7.1 數(shù)據(jù)存儲策略
5.7.2 數(shù)據(jù)一致性策略
5.7.3 數(shù)據(jù)架構(gòu)注意事項
5.8 討論
5.8.1 服務(wù)質(zhì)量的影響
5.8.2 并發(fā)控制
5.8.3 資源使用
5.8.4 簡易性
5.8.5 其他注意事項
6 負(fù)載分配與均衡
6.1 負(fù)載分配機制
6.2 負(fù)載分配策略
6.3 代理負(fù)載均衡器
6.4 非代理負(fù)載分配
6.5 負(fù)載分配的層次結(jié)構(gòu)
6.6 基于云的負(fù)載均衡所面臨的挑戰(zhàn)
6.7 負(fù)載均衡在支持冗余方面的作用
6.8 負(fù)載均衡與可用區(qū)域
6.9 工作負(fù)載服務(wù)度量
6.10 操作注意事項
6.10.1 負(fù)載均衡與彈性
6.10.2 負(fù)載均衡與過載
6.10.3 負(fù)載均衡與發(fā)布管理
6.11 負(fù)載均衡與應(yīng)用程序服務(wù)質(zhì)量
6.11.1 服務(wù)可用性
6.11.2 服務(wù)延遲
6.11.3 服務(wù)可靠性
6.11.4 服務(wù)可訪問性
6.11.5 服務(wù)可維持性
6.11.6 服務(wù)吞吐量
6.11.7 服務(wù)時間戳精度
7 故障容器
7.1 故障容器
7.1.1 故障級聯(lián)
7.1.2 故障容器與恢復(fù)
7.1.3 故障容器與虛擬化
7.2 故障點
7.2.1 單點故障
7.2.2 單點故障與虛擬化
7.2.3 關(guān)聯(lián)性和反關(guān)聯(lián)性考慮
7.2.4 在云計算中確保無SPOF
7.2.5 無SPOF和應(yīng)用程序數(shù)據(jù)
7.3 **共存解決方案
7.3.1 **共存解決方案的風(fēng)險
7.4 多租戶與解決方案容器
8 容量管理
8.1 工作負(fù)載變化
8.2 傳統(tǒng)容量管理
8.3 傳統(tǒng)過載控制
8.4 容量管理與虛擬化
8.5 云容量管理
8.6 彈性存儲注意事項
8.7 彈性和過載
8.8 操作注意事項
8.9 負(fù)載拉鋸
8.10 一般彈性風(fēng)險
8.11 彈性故障場景
8.11.1 彈性增長故障場景
8.11.1 彈性逆增長故障場景
9 發(fā)布管理
9.1 相關(guān)術(shù)語
9.2 傳統(tǒng)的軟件升級策略
9.2.1 軟件升級需求
9.2.2 維護窗口
9.2.3 應(yīng)用升級的客戶端注意事項
9.2.4 傳統(tǒng)的離線軟件升級
9.2.5 傳統(tǒng)的在線軟件升級
9.2.6 討論
9.3 支持云的軟件升級策略
9.3.1 I型云支持升級策略:街區(qū)聚會
9.3.2 II型云支持升級策略:每車一司機
9.3.3 討論
9.4 數(shù)據(jù)管理
9.5 軟件升級中的服務(wù)編排角色
9.5.1 解決方案級軟件升級
9.6 結(jié)論
10 端到端考慮因素
10.1 端到端服務(wù)環(huán)境
10.2 三層端到端服務(wù)模型
10.2.1 通過三層模型估算服務(wù)缺陷
10.2.2 端到端服務(wù)可用性
10.2.3 端到端服務(wù)延遲
10.2.4 端到端服務(wù)可靠性
10.2.5 端到端服務(wù)可訪問性
10.2.6 端到端服務(wù)可維持性
10.2.7 端到端服務(wù)吞吐量
10.2.8 端到端服務(wù)時間戳精度
10.2.9 現(xiàn)實檢查
10.3 分布式和集中式的云數(shù)據(jù)中心
10.3.1 集中式云數(shù)據(jù)中心
10.3.2 分布式云數(shù)據(jù)中心
10.3.3 服務(wù)可用性考慮
10.3.4 服務(wù)延遲考慮
10.3.5 服務(wù)可靠性考慮
10.3.6 服務(wù)可訪問性考慮
10.3.7 服務(wù)可維持性考慮
10.3.8 資源分配考慮
10.4 多層解決方案架構(gòu)
10.5 災(zāi)難恢復(fù)與地理冗余
10.5.1 災(zāi)難恢復(fù)目標(biāo)
10.5.2 地理冗余架構(gòu)
10.5.3 服務(wù)質(zhì)量考慮
10.5.4 恢復(fù)點考慮
10.5.5 地理冗余和可用區(qū)域減輕災(zāi)難的影響
III 建議
11 服務(wù)質(zhì)量問責(zé)
11.1 傳統(tǒng)的問責(zé)
11.2 云服務(wù)交付路徑
11.3 云問責(zé)
11.4 問責(zé)案例研究
11.4.1 問責(zé)和技術(shù)組件
11.4.2 問責(zé)和彈性
11.5 服務(wù)質(zhì)量差距模型
11.5.1 應(yīng)用程序面向資源服務(wù)差距分析
11.5.2 應(yīng)用程序面向用戶服務(wù)差距分析
11.6 服務(wù)水平協(xié)議
12 服務(wù)可用性度量
12.1 服務(wù)度量概述
12.2 傳統(tǒng)服務(wù)可用性度量
12.3 服務(wù)可用性度量演化
12.3.1 應(yīng)用演化分析
12.3.2 技術(shù)組件
12.3.3 存儲即服務(wù)的使用
12.4 硬件可靠性度量演化
12.4.1 虛擬機故障生命周期
12.5 彈性服務(wù)可用性度量演化
12.6 發(fā)布管理服務(wù)可用性度量演化
12.7 服務(wù)度量展望
13 應(yīng)用程序服務(wù)質(zhì)量需求
13.1 服務(wù)可用性需求
13.2 服務(wù)延遲需求
13.3 服務(wù)可靠性需求
13.4 服務(wù)可訪問性需求
13.5 服務(wù)可維持性需求
13.6 服務(wù)吞吐量需求
13.7 時間戳精度需求
13.8 彈性需求
13.9 發(fā)布管理需求
13.10 災(zāi)難恢復(fù)需求
14 虛擬化架構(gòu)度量與管理
14.1 架構(gòu)服務(wù)質(zhì)量度量的業(yè)務(wù)環(huán)境
14.2 云消費者度量選項
14.3 缺陷度量策略
14.3.1 虛擬機故障度量
14.3.2 無法交付的虛擬機配置容量度量
14.3.3 交付退化的虛擬機容量度量
14.3.4 尾部延遲度量
14.3.5 時鐘事件抖動度量
14.3.6 時鐘漂移度量
14.3.7失敗或緩慢的虛擬機實例分配和啟動度量
14.3.8 度量總結(jié)
14.4 管理虛擬化架構(gòu)缺陷
14.4.1 *小化應(yīng)用程序?qū)軜?gòu)缺陷的敏感度
14.4.2 虛擬機級擁塞檢測與控制
14.4.3 分配更多虛擬資源容量
14.4.4 終止性能欠佳的虛擬機實例
14.4.5 接受性能退化
14.4.6 積極主動的供應(yīng)商管理
14.4.7 重新設(shè)定*終用戶服務(wù)質(zhì)量期望
14.4.8 SLA注意事項
14.4.9 更換云服務(wù)提供商
15 基于云的應(yīng)用程序分析
15.1可靠性框圖和參照分析
15.2 IaaS缺陷影響分析
15.3 PaaS故障影響分析
15.4 工作負(fù)載分配分析
15.4.1 服務(wù)質(zhì)量分析
15.4.2 過載控制分析
15.5 反相關(guān)性分析
15.6 彈性分析
15.6.1 服務(wù)容量增長場景
15.6.2 服務(wù)容量增長操作分析
15.6.3 服務(wù)容量逆增長操作分析
15.6.4 存儲容量增長場景
15.6.5 在線存儲容量增長操作分析
15.6.6 在線存儲容量逆增長操作分析
15.7 發(fā)布管理影響效應(yīng)分析
15.7.1 服務(wù)可用性影響
15.7.2 服務(wù)可靠性影響
15.7.3 服務(wù)可訪問性影響
15.7.4 服務(wù)可維持性影響
15.7.5 服務(wù)吞吐量影響
15.8 恢復(fù)點目標(biāo)分析
15.9 恢復(fù)時間目標(biāo)分析
16 測試注意事項
16.1 測試環(huán)境
16.2 測試策略
16.2.1 云測試平臺
16.2.2 用于測試的容量
16.2.3 統(tǒng)計置信度
16.2.4 服務(wù)中斷時間
16.3 模擬架構(gòu)缺陷
16.4 測試計劃
16.4.1服務(wù)可靠性和延遲測試
16.4.2 架構(gòu)缺陷測試
16.4.3 健壯性測試
16.4.4 持久性/穩(wěn)定性測試
16.4.5 應(yīng)用程序彈性測試
16.4.6 升級測試
16.4.7 災(zāi)難恢復(fù)測試
16.4.8 極限共存測試
16.4.9 PaaS技術(shù)組件測試
16.4.10 自動回歸則測試
16.4.11 構(gòu)造發(fā)布測試
17 關(guān)鍵點連接與總結(jié)
17.1 應(yīng)用程序服務(wù)質(zhì)量所面臨的挑戰(zhàn)
17.2 冗余和健壯性
17.3 可伸縮性設(shè)計
17.4 可擴展性設(shè)計
17.5 故障設(shè)計
17.6 規(guī)劃注意事項
17.7 傳統(tǒng)應(yīng)用的演化
17.7.1階段0:傳統(tǒng)應(yīng)用
17.7.2 階段I:虛擬化架構(gòu)上的高服務(wù)質(zhì)量
17.7.3 階段II:手動應(yīng)用彈性
17.7.4 階段III:自動發(fā)布管理
17.7.5 階段IV:自動應(yīng)用彈性
17.7.6 階段V:虛擬機遷移
17.8 結(jié)束語