《站點可靠性工程SRE實戰》是2022年人民郵電出版社出版的圖書。
基本介紹
- 中文名:站點可靠性工程SRE實戰
- 作者:[印]佩圖魯·拉吉·切利亞,[印]什里亞什·奈塔尼,[印]肖倫德·辛格
- 類別:開發項目管理
- 出版社:人民郵電出版社
- 出版時間:2022年
- 開本:128 開
- 裝幀:平裝-膠訂
- ISBN:9787115584069
內容簡介,圖書目錄,作者簡介,
內容簡介
本書介紹了在應用程式和微服務的開發、交付以及部署過程中用到的知識和工具,並藉助於大量的示例和截圖詳細地呈現了與站點可靠性工程(SRE)相關的所有內容。
本書總計12章,分別介紹了SRE的現狀、微服務架構和容器、微服務彈性模式、DevOps即服務、容器集群和編排平台、架構模式與設計模式、可靠性實施技術、實現可靠系統的做法、服務彈性、容器/Kubernetes和Istio監控、確保和增強IT可靠性的後期活動,以及服務格線和容器編排平台等內容。
本書適合對容器、微服務、Kubernetes、Istio等運維技術感興趣的軟體開發運維(DevOps)人員、系統工程師、IT性能專家閱讀。本書可幫助他們了解SRE是如何有助於自動化和加速應用程式/服務的設計、開發、調試和部署的。
圖書目錄
第 1章 解密站點可靠性工程範式 1
1.1 設定實用SRE的環境 2
1.1.1 下一代軟體系統的特徵 2
1.1.2 下一代硬體系統的特徵 2
1.1.3 向混合IT和分散式計算轉型 3
1.1.4 展望數字時代 3
1.1.5 雲服務範式 4
1.1.6 不斷增長的軟體滲透和參與 6
1.2 投身於SRE學科 7
1.3 對高可靠性平台和基礎設施的需求 9
1.4 回響式系統 18
1.4.1 回響式系統是高度可靠的 20
1.4.2 回響式系統的彈性 20
1.5 高度可靠的IT基礎架構 20
1.6 SRE領域的活力 23
1.6.1 SRE的重要性 24
1.6.2 站點可靠性工程師經常使用的工具集 26
1.7 總結 27
第 2章 微服務架構和容器 28
2.1 什麼是微服務 28
2.2 微服務設計原則 28
2.3 部署微服務 30
2.3.1 基於容器平台的部署工具 30
2.3.2 代碼作為功能部署 31
2.3.3 基於虛擬化的平台部署 32
2.4 微服務部署的實際示例 32
2.4.1 使用Kubernetes的容器平台部署示例 32
2.4.2 代碼作為功能部署 36
2.4.3 使用Jenkins或TeamCity進行基於虛擬平台的部署 40
2.5 使用Spring Boot和RESTful框架的微服務 40
2.6 Jersey框架 41
2.7 表述性狀態轉移(REST) 43
2.7.1 部署Spring Boot應用程式 50
2.7.2 監控微服務 51
2.7.3 用於監控微服務的工具 53
2.8 關於微服務的重要事實 54
2.8.1 當前市場中的微服務 54
2.8.2 何時停止微服務的設計 55
2.8.3 是否可以使用微服務格式將團隊劃分為小型或微型團隊 55
2.9 總結 56
第3章 微服務彈性模式 57
3.1 微服務和容器簡介 58
3.2 IT可靠性挑戰和解決方案 60
3.3 彈性和可靠性的前景和潛力 63
3.3.1 MSA是前進的方向 63
3.3.2 集成平台是時刻保持彈性的需求 65
3.4 總結 82
第4章 DevOps即服務 83
4.1 什麼是DaaS 83
4.1.1 選擇工具並不容易 84
4.1.2 DaaS下的服務類型 86
4.1.3 配置自動警報 89
4.1.4 集中式日誌管理 90
4.1.5 基礎設施安全 91
4.1.6 持續的流程和基礎設施開發 92
4.1.7 CI和CD 93
4.2 與開發和質量檢查團隊合作 101
4.2.1 開發人員在DevOps中的作用 102
4.2.2 QA團隊在DevOps中的作用 102
4.3 總結 103
第5章 容器集群和編排平台 104
5.1 彈性微服務 104
5.2 套用和數據卷容器 105
5.3 集群和管理容器 107
5.4 容器編排和管理 112
5.5 總結 120
第6章 架構模式與設計模式 121
6.1 架構模式 121
6.2 設計模式 122
6.2.1 安全設計模式 126
6.2.2 彈性設計模式 127
6.2.3 可擴展性設計模式 128
6.2.4 性能設計模式 129
6.2.5 可用性設計原則 130
6.2.6 可靠性設計原則 131
6.2.7 斷路器設計模式 131
6.3 總結 135
第7章 可靠性實施技術 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數據類型 145
7.1.6 控制邏輯表達式 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 總結 154
第8章 實現可靠系統的做法 155
8.1 可靠的IT系統:新興特徵和 提示 156
8.2 用於可靠軟體的MSA 156
8.3 服務格線解決方案 158
8.4 微服務設計:做法 158
8.4.1 事件驅動微服務的相關性 158
8.4.2 為什麼要異步通信 159
8.4.3 為什麼採用事件驅動的微服務 160
8.5 事件驅動微服務的異步訊息傳遞模式 161
8.6 EDA在產生回響式應用程式中的作用 165
8.7 可靠的IT基礎設施 168
8.7.1 高可用性 168
8.7.2 自動縮放 170
8.8 基礎架構即代碼 170
8.8.1 不變的基礎設施 171
8.8.2 無狀態應用程式 171
8.8.3 避免級聯故障 172
8.9 總結 176
第9章 服務彈性 177
9.1 容器化範式 177
9.2 解密微服務架構 179
9.3 Kubernetes在容器時代的作用日益增長 180
9.4 服務格線的概念 182
9.5 為什麼服務格線至關重要 187
9.6 服務格線架構 188
9.6.1 監控服務格線 189
9.6.2 服務格線部署模式 190
9.7 總結 194
第 10章 容器、Kubernetes和Istio監控 196
10.1 Prometheus 197
10.1.1 Prometheus的架構 198
10.1.2 配置Prometheus 199
10.1.3 在Prometheus中配置警報 202
10.2 Grafana 203
10.2.1 配置Grafana 204
10.2.2 在Grafana中配置警報 208
10.3 總結 211
第 11章 確保和增強IT可靠性的後期活動 212
11.1 現代IT基礎設施 213
11.2 監控雲、集群和容器 215
11.3 監控雲基礎架構和應用程式 217
11.4 監控工具功能 219
11.5 預測和規範分析 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 企業級別的日誌分析平台 228
11.6.6 日誌分析平台的關鍵功能 229
11.6.7 集中式日誌管理工具 229
11.7 IT運營分析 230
11.8 IT性能和可擴展性分析 231
11.9 IT安全分析 232
11.10 根本原因分析的重要性 232
11.11 總結 234
第 12章 服務格線和容器編排平台 235
12.1 關於數位化轉型 236
12.2 數位化時代的雲原生應用程式和支持雲的應用程式 236
12.3 服務格線解決方案 237
12.3.1 Linkerd 239
12.3.2 Istio 239
12.4 微服務API網關 244
12.4.1 API網關對以微服務為中心的應用程式的好處 245
12.4.2 API網關的安全功能 247
12.4.3 API網關和服務格線的作用 248
12.4.4 API管理套件 249
12.5 確保容器化雲環境的可靠性 249
12.6 通往容器化雲環境的“旅程” 250
12.7 用於容器化雲的Kubernetes平台日益堅固 251
12.7.1 Kubernetes架構:工作方式 252
12.7.2 安裝Kubernetes平台 256
12.7.3 安裝Kubernetes客戶端 259
12.7.4 在Kubernetes上安裝Istio 261
作者簡介
佩圖魯·拉吉·切利亞(Pethuru Raj Chelliah),在印度移動數字服務提供商Reliance Jio Infocomm(RJIL)公司(位於班加羅爾)的站點可靠性工程卓越中心擔任首席架構師。在此之前,他在IBM印度公司的全球雲卓越中心(位於班加羅爾)工作了4年,當時的身份是雲基礎設施架構師。他還曾經長期擔任Wipro諮詢服務部門的企業架構顧問並持有TOGAF認證,以及在Robert Bosch公司(位於班加羅爾)的企業研究部門擔任首席架構師。他擁有17年以上的IT從業經驗。 什里亞什·奈塔尼(Shreyash Naithani),目前是微軟研發部的一名站點可靠性工程師。在加入微軟之前,他曾在初創公司和中等規模的公司工作過。他從印度旁遮普技術大學獲得計算機科學專業的本科文憑,並從印度班加羅爾的計算發展中心獲得了碩士文憑。他還曾經有過短暫的DevOps工程師(Python/C#語言相關)、工具開發人員、站點/服務可靠性工程師以及UNIX系統管理員的從業經歷。在閒暇時間,他喜歡旅遊和看電視劇。 肖倫德·辛格(Shailender Singh),首席站點可靠性工程師和解決方案架構師,擁有約11年的IT從業經驗,並擁有信息技術和計算機套用兩個專業的碩士學位。他曾擔任過Linux平台下的C語言開發人員,並幾乎接觸過從混合雲到雲託管環境在內的所有基礎設施技術。在過去,他曾與麥肯錫、惠普、HCL、Revionics和Avalara等公司合作過,當前他傾向於使用AWS、Kubernetes、Terraform、Packer、Jenkins、Ansible和OpenShift等工具。