站點(diǎn)可靠性工程(SRE)實(shí)戰(zhàn)
定 價(jià):79.9 元
叢書名:DevOps
- 作者:[印] 佩圖魯·拉吉·切利亞(Pethuru Raj Chelliah) 什里亞什·奈塔尼(Shreyash Naithani) 肖倫德·辛格(Shailender Singh)
- 出版時(shí)間:2022/2/1
- ISBN:9787115584069
- 出 版 社:人民郵電出版社
- 中圖法分類:TP393.092
- 頁碼:266
- 紙張:
- 版次:01
- 開本:16開
本書介紹了在應(yīng)用程序和微服務(wù)的開發(fā)、交付以及部署過程中用到的知識和工具,并借助于大量的示例和截圖詳細(xì)地呈現(xiàn)了與站點(diǎn)可靠性工程(SRE)相關(guān)的所有內(nèi)容。
本書總計(jì)12章,分別介紹了SRE的現(xiàn)狀、微服務(wù)架構(gòu)和容器、微服務(wù)彈性模式、DevOps即服務(wù)、容器集群和編排平臺、架構(gòu)模式與設(shè)計(jì)模式、可靠性實(shí)施技術(shù)、實(shí)現(xiàn)可靠系統(tǒng)的做法、服務(wù)彈性、容器/Kubernetes和Istio監(jiān)控、確保和增強(qiáng)IT可靠性的后期活動(dòng),以及服務(wù)網(wǎng)格和容器編排平臺等內(nèi)容。
本書適合對容器、微服務(wù)、Kubernetes、Istio等運(yùn)維技術(shù)感興趣的軟件開發(fā)運(yùn)維(DevOps)人員、系統(tǒng)工程師、IT性能專家閱讀。本書可幫助他們了解SRE是如何有助于自動(dòng)化和加速應(yīng)用程序/服務(wù)的設(shè)計(jì)、開發(fā)、調(diào)試和部署的。
站點(diǎn)可靠性工程(SRE)被譽(yù)為建立和確保下一代高質(zhì)量軟件解決方案的理想范式。
本書從介紹SRE范式以及高可靠IT平臺和基礎(chǔ)設(shè)施的需求開始,介紹了使用Spring Boot和RESTful框架開發(fā)微服務(wù)的方法,以及通過GitHub進(jìn)行部署、容器化和Docker容器等內(nèi)容;然后介紹了設(shè)置和維護(hù)容器化云環(huán)境的方法,以及各種架構(gòu)模式、設(shè)計(jì)模式,以及可靠性的實(shí)現(xiàn)技術(shù)(比如響應(yīng)式編程)和語言(比如Ballerina和Rust);末尾介紹了各種服務(wù)網(wǎng)格解決方案(比如Istio和Linkerd),以及與服務(wù)彈性測試實(shí)踐、API 網(wǎng)關(guān)和邊緣/霧計(jì)算相關(guān)的內(nèi)容。
本書內(nèi)容:
實(shí)現(xiàn)SRE目標(biāo)的方式;
與支持Docker的容器化相關(guān)的概念;
利用企業(yè)DevOps功能和微服務(wù)架構(gòu)(MSA)的方式;
服務(wù)網(wǎng)格的概念和框架(比如Istio和Linkerd);
與性能和彈性相關(guān)的做法;
軟件可靠性預(yù)測方法以及模式的啟用;
Kubernetes在容器和編排方面的作用;
端到端的軟件工程在容器化世界中的實(shí)現(xiàn)。
本書特色:
構(gòu)建并運(yùn)行高度可靠、可擴(kuò)展的安全軟件;
以一種簡化且流水化的方式探索抽象的SRE;
通過SRE 來增強(qiáng)云環(huán)境的可靠性。
佩圖魯·拉吉·切利亞(Pethuru Raj Chelliah),在印度移動(dòng)數(shù)字服務(wù)提供商Reliance Jio Infocomm(RJIL)公司(位于班加羅爾)的站點(diǎn)可靠性工程卓越中心擔(dān)任首席架構(gòu)師。在此之前,他在IBM印度公司的全球云卓越中心(位于班加羅爾)工作了4年,當(dāng)時(shí)的身份是云基礎(chǔ)設(shè)施架構(gòu)師。他還曾經(jīng)長期擔(dān)任Wipro咨詢服務(wù)部門的企業(yè)架構(gòu)顧問并持有TOGAF認(rèn)證,以及在Robert Bosch公司(位于班加羅爾)的企業(yè)研究部門擔(dān)任首席架構(gòu)師。他擁有17年以上的IT從業(yè)經(jīng)驗(yàn)。
什里亞什·奈塔尼(Shreyash Naithani),目前是微軟研發(fā)部的一名站點(diǎn)可靠性工程師。在加入微軟之前,他曾在初創(chuàng)公司和中等規(guī)模的公司工作過。他從印度旁遮普技術(shù)大學(xué)獲得計(jì)算機(jī)科學(xué)專業(yè)的本科文憑,并從印度班加羅爾的計(jì)算發(fā)展中心獲得了碩士文憑。他還曾經(jīng)有過短暫的DevOps工程師(Python/C#語言相關(guān))、工具開發(fā)人員、站點(diǎn)/服務(wù)可靠性工程師以及UNIX系統(tǒng)管理員的從業(yè)經(jīng)歷。在閑暇時(shí)間,他喜歡旅游和看電視劇。
肖倫德·辛格(Shailender Singh),首席站點(diǎn)可靠性工程師和解決方案架構(gòu)師,擁有約11年的IT從業(yè)經(jīng)驗(yàn),并擁有信息技術(shù)和計(jì)算機(jī)應(yīng)用兩個(gè)專業(yè)的碩士學(xué)位。他曾擔(dān)任過Linux平臺下的C語言開發(fā)人員,并幾乎接觸過從混合云到云托管環(huán)境在內(nèi)的所有基礎(chǔ)設(shè)施技術(shù)。在過去,他曾與麥肯錫、惠普、HCL、Revionics和Avalara等公司合作過,當(dāng)前他傾向于使用AWS、Kubernetes、Terraform、Packer、Jenkins、Ansible和OpenShift等工具。
第 1章 解密站點(diǎn)可靠性工程范式 1
1.1 設(shè)置實(shí)用SRE的環(huán)境 2
1.1.1 下一代軟件系統(tǒng)的特征 2
1.1.2 下一代硬件系統(tǒng)的特征 2
1.1.3 向混合IT和分布式計(jì)算轉(zhuǎn)型 3
1.1.4 展望數(shù)字時(shí)代 3
1.1.5 云服務(wù)范式 4
1.1.6 不斷增長的軟件滲透和參與 6
1.2 投身于SRE學(xué)科 7
1.3 對高可靠性平臺和基礎(chǔ)設(shè)施的需求 9
1.4 響應(yīng)式系統(tǒng) 18
1.4.1 響應(yīng)式系統(tǒng)是高度可靠的 20
1.4.2 響應(yīng)式系統(tǒng)的彈性 20
1.5 高度可靠的IT基礎(chǔ)架構(gòu) 20
1.6 SRE領(lǐng)域的活力 23
1.6.1 SRE的重要性 24
1.6.2 站點(diǎn)可靠性工程師經(jīng)常使用的工具集 26
1.7 總結(jié) 27
第 2章 微服務(wù)架構(gòu)和容器 28
2.1 什么是微服務(wù) 28
2.2 微服務(wù)設(shè)計(jì)原則 28
2.3 部署微服務(wù) 30
2.3.1 基于容器平臺的部署工具 30
2.3.2 代碼作為功能部署 31
2.3.3 基于虛擬化的平臺部署 32
2.4 微服務(wù)部署的實(shí)際示例 32
2.4.1 使用Kubernetes的容器平臺部署示例 32
2.4.2 代碼作為功能部署 36
2.4.3 使用Jenkins或TeamCity進(jìn)行基于虛擬平臺的部署 40
2.5 使用Spring Boot和RESTful框架的微服務(wù) 40
2.6 Jersey框架 41
2.7 表述性狀態(tài)轉(zhuǎn)移(REST) 43
2.7.1 部署Spring Boot應(yīng)用程序 50
2.7.2 監(jiān)控微服務(wù) 51
2.7.3 用于監(jiān)控微服務(wù)的工具 53
2.8 關(guān)于微服務(wù)的重要事實(shí) 54
2.8.1 當(dāng)前市場中的微服務(wù) 54
2.8.2 何時(shí)停止微服務(wù)的設(shè)計(jì) 55
2.8.3 是否可以使用微服務(wù)格式將團(tuán)隊(duì)劃分為小型或微型團(tuán)隊(duì) 55
2.9 總結(jié) 56
第3章 微服務(wù)彈性模式 57
3.1 微服務(wù)和容器簡介 58
3.2 IT可靠性挑戰(zhàn)和解決方案 60
3.3 彈性和可靠性的前景和潛力 63
3.3.1 MSA是前進(jìn)的方向 63
3.3.2 集成平臺是時(shí)刻保持彈性的需求 65
3.4 總結(jié) 82
第4章 DevOps即服務(wù) 83
4.1 什么是DaaS 83
4.1.1 選擇工具并不容易 84
4.1.2 DaaS下的服務(wù)類型 86
4.1.3 配置自動(dòng)警報(bào) 89
4.1.4 集中式日志管理 90
4.1.5 基礎(chǔ)設(shè)施安全 91
4.1.6 持續(xù)的流程和基礎(chǔ)設(shè)施開發(fā) 92
4.1.7 CI和CD 93
4.2 與開發(fā)和質(zhì)量檢查團(tuán)隊(duì)合作 101
4.2.1 開發(fā)人員在DevOps中的作用 102
4.2.2 QA團(tuán)隊(duì)在DevOps中的作用 102
4.3 總結(jié) 103
第5章 容器集群和編排平臺 104
5.1 彈性微服務(wù) 104
5.2 應(yīng)用和數(shù)據(jù)卷容器 105
5.3 集群和管理容器 107
5.4 容器編排和管理 112
5.5 總結(jié) 120
第6章 架構(gòu)模式與設(shè)計(jì)模式 121
6.1 架構(gòu)模式 121
6.2 設(shè)計(jì)模式 122
6.2.1 安全設(shè)計(jì)模式 126
6.2.2 彈性設(shè)計(jì)模式 127
6.2.3 可擴(kuò)展性設(shè)計(jì)模式 128
6.2.4 性能設(shè)計(jì)模式 129
6.2.5 可用性設(shè)計(jì)原則 130
6.2.6 可靠性設(shè)計(jì)原則 131
6.2.7 斷路器設(shè)計(jì)模式 131
6.3 總結(jié) 135
第7章 可靠性實(shí)施技術(shù) 136
7.1 Ballerina編程 136
7.1.1 hello程序示例 138
7.1.2 Twitter集成的簡單示例 139
7.1.3 Kubernetes部署代碼 140
7.1.4 斷路器代碼示例 142
7.1.5 Ballerina數(shù)據(jù)類型 145
7.1.6 控制邏輯表達(dá)式 145
7.1.7 Ballerina的基石 146
7.1.8 Ballerina命令備忘單 149
7.2 可靠性 149
7.3 Rust編程 149
7.3.1 安裝Rust 150
7.3.2 Rust編程的概念 150
7.3.3 Rust編程的未來 154
7.4 總結(jié) 154
第8章 實(shí)現(xiàn)可靠系統(tǒng)的最佳做法 155
8.1 可靠的IT系統(tǒng):新興特征和 提示 156
8.2 用于可靠軟件的MSA 156
8.3 服務(wù)網(wǎng)格解決方案 158
8.4 微服務(wù)設(shè)計(jì):最佳做法 158
8.4.1 事件驅(qū)動(dòng)微服務(wù)的相關(guān)性 158
8.4.2 為什么要異步通信 159
8.4.3 為什么采用事件驅(qū)動(dòng)的微服務(wù) 160
8.5 事件驅(qū)動(dòng)微服務(wù)的異步消息傳遞模式 161
8.6 EDA在產(chǎn)生響應(yīng)式應(yīng)用程序中的作用 165
8.7 可靠的IT基礎(chǔ)設(shè)施 168
8.7.1 高可用性 168
8.7.2 自動(dòng)縮放 170
8.8 基礎(chǔ)架構(gòu)即代碼 170
8.8.1 不變的基礎(chǔ)設(shè)施 171
8.8.2 無狀態(tài)應(yīng)用程序 171
8.8.3 避免級聯(lián)故障 172
8.9 總結(jié) 176
第9章 服務(wù)彈性 177
9.1 容器化范式 177
9.2 解密微服務(wù)架構(gòu) 179
9.3 Kubernetes在容器時(shí)代的作用日益增長 180
9.4 服務(wù)網(wǎng)格的概念 182
9.5 為什么服務(wù)網(wǎng)格至關(guān)重要 187
9.6 服務(wù)網(wǎng)格架構(gòu) 188
9.6.1 監(jiān)控服務(wù)網(wǎng)格 189
9.6.2 服務(wù)網(wǎng)格部署模式 190
9.7 總結(jié) 194
第 10章 容器、Kubernetes和Istio監(jiān)控 196
10.1 Prometheus 197
10.1.1 Prometheus的架構(gòu) 198
10.1.2 配置Prometheus 199
10.1.3 在Prometheus中配置警報(bào) 202
10.2 Grafana 203
10.2.1 配置Grafana 204
10.2.2 在Grafana中配置警報(bào) 208
10.3 總結(jié) 211
第 11章 確保和增強(qiáng)IT可靠性的后期活動(dòng) 212
11.1 現(xiàn)代IT基礎(chǔ)設(shè)施 213
11.2 監(jiān)控云、集群和容器 215
11.3 監(jiān)控云基礎(chǔ)架構(gòu)和應(yīng)用程序 217
11.4 監(jiān)控工具功能 219
11.5 預(yù)測和規(guī)范分析 221
11.6 日志分析 223
11.6.1 開源日志分析平臺 224
11.6.2 基于云的日志分析平臺 226
11.6.3 支持AI的日志分析平臺 227
11.6.4 Loom 228
11.6.5 企業(yè)級別的日志分析平臺 228
11.6.6 日志分析平臺的關(guān)鍵功能 229
11.6.7 集中式日志管理工具 229
11.7 IT運(yùn)營分析 230
11.8 IT性能和可擴(kuò)展性分析 231
11.9 IT安全分析 232
11.10 根本原因分析的重要性 232
11.11 總結(jié) 234
第 12章 服務(wù)網(wǎng)格和容器編排平臺 235
12.1 關(guān)于數(shù)字化轉(zhuǎn)型 236
12.2 數(shù)字化時(shí)代的云原生應(yīng)用程序和支持云的應(yīng)用程序 236
12.3 服務(wù)網(wǎng)格解決方案 237
12.3.1 Linkerd 239
12.3.2 Istio 239
12.4 微服務(wù)API網(wǎng)關(guān) 244
12.4.1 API網(wǎng)關(guān)對以微服務(wù)為中心的應(yīng)用程序的好處 245
12.4.2 API網(wǎng)關(guān)的安全功能 247
12.4.3 API網(wǎng)關(guān)和服務(wù)網(wǎng)格的作用 248
12.4.4 API管理套件 249
12.5 確保容器化云環(huán)境的可靠性 249
12.6 通往容器化云環(huán)境的“旅程” 250
12.7 用于容器化云的Kubernetes平臺日益堅(jiān)固 251
12.7.1 Kubernetes架構(gòu):工作方式 252
12.7.2 安裝Kubernetes平臺 256
12.7.3 安裝Kubernetes客戶端 259
12.7.4 在Kubernetes上安裝Istio 261
12.8 總結(jié) 266