站點可靠性工程(SRE)實戰 Practical Site Reliability Engineering: Automate the process of designing, developing, and delivering highly reliable apps and services with SRE

Pethuru Raj Chelliah,Shreyash Naithani,Shailender Singh 譯 陳英鋒

  • 站點可靠性工程(SRE)實戰-preview-1
  • 站點可靠性工程(SRE)實戰-preview-2
站點可靠性工程(SRE)實戰-preview-1

買這商品的人也買了...

商品描述

本書介紹了在應用程序和微服務的開發、交付以及部署過程中用到的知識和工具,並借助於大量的示例和截圖詳細地呈現了與站點可靠性工程(SRE)相關的所有內容。

本書總計12章,分別介紹了SRE的現狀、微服務架構和容器、微服務彈性模式、DevOps即服務、容器集群和編排平臺、架構模式與設計模式、可靠性實施技術、實現可靠系統的做法、服務彈性、容器/Kubernetes和Istio監控、確保和增強IT可靠性的後期活動,以及服務網格和容器編排平臺等內容。

本書適合對容器、微服務、Kubernetes、Istio等運維技術感興趣的軟件開發運維(DevOps)人員、系統工程師、IT性能專家閱讀。本書可幫助他們瞭解SRE是如何有助於自動化和加速應用程序/服務的設計、開發、調試和部署的。

作者簡介

佩图鲁·拉吉·切利亚(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等工具。

 

目錄大綱

第 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

12.8 總結 266