书籍详情
站点可靠性工程(SRE)实战
作者:佩图鲁·拉吉·切利亚,什里亚什·奈塔尼 著,陈英锋 译
出版社:人民邮电出版社
出版时间:2022-02-01
ISBN:9787115584069
定价:¥79.90
购买这本书可以去
内容简介
本书介绍了在应用程序和微服务的开发、交付以及部署过程中用到的知识和工具,并借助于大量的示例和截图详细地呈现了与站点可靠性工程(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章 解密站点可靠性工程范式\t1
1.1 设置实用SRE的环境\t2
1.1.1 下一代软件系统的特征\t2
1.1.2 下一代硬件系统的特征\t2
1.1.3 向混合IT和分布式计算转型\t3
1.1.4 展望数字时代\t3
1.1.5 云服务范式\t4
1.1.6 不断增长的软件渗透和参与\t6
1.2 投身于SRE学科\t7
1.3 对高可靠性平台和基础设施的需求\t9
1.4 响应式系统\t18
1.4.1 响应式系统是高度可靠的\t20
1.4.2 响应式系统的弹性\t20
1.5 高度可靠的IT基础架构\t20
1.6 SRE领域的活力\t23
1.6.1 SRE的重要性\t24
1.6.2 站点可靠性工程师经常使用的工具集\t26
1.7 总结\t27
第 2章 微服务架构和容器\t28
2.1 什么是微服务\t28
2.2 微服务设计原则\t28
2.3 部署微服务\t30
2.3.1 基于容器平台的部署工具\t30
2.3.2 代码作为功能部署\t31
2.3.3 基于虚拟化的平台部署\t32
2.4 微服务部署的实际示例\t32
2.4.1 使用Kubernetes的容器平台部署示例\t32
2.4.2 代码作为功能部署\t36
2.4.3 使用Jenkins或TeamCity进行基于虚拟平台的部署\t40
2.5 使用Spring Boot和RESTful框架的微服务\t40
2.6 Jersey框架\t41
2.7 表述性状态转移(REST)\t43
2.7.1 部署Spring Boot应用程序\t50
2.7.2 监控微服务\t51
2.7.3 用于监控微服务的工具\t53
2.8 关于微服务的重要事实\t54
2.8.1 当前市场中的微服务\t54
2.8.2 何时停止微服务的设计\t55
2.8.3 是否可以使用微服务格式将团队划分为小型或微型团队\t55
2.9 总结\t56
第3章 微服务弹性模式\t57
3.1 微服务和容器简介\t58
3.2 IT可靠性挑战和解决方案\t60
3.3 弹性和可靠性的前景和潜力\t63
3.3.1 MSA是前进的方向\t63
3.3.2 集成平台是时刻保持弹性的需求\t65
3.4 总结\t82
第4章 DevOps即服务\t83
4.1 什么是DaaS\t83
4.1.1 选择工具并不容易\t84
4.1.2 DaaS下的服务类型\t86
4.1.3 配置自动警报\t89
4.1.4 集中式日志管理\t90
4.1.5 基础设施安全\t91
4.1.6 持续的流程和基础设施开发\t92
4.1.7 CI和CD\t93
4.2 与开发和质量检查团队合作\t101
4.2.1 开发人员在DevOps中的作用\t102
4.2.2 QA团队在DevOps中的作用\t102
4.3 总结\t103
第5章 容器集群和编排平台\t104
5.1 弹性微服务\t104
5.2 应用和数据卷容器\t105
5.3 集群和管理容器\t107
5.4 容器编排和管理\t112
5.5 总结\t120
第6章 架构模式与设计模式\t121
6.1 架构模式\t121
6.2 设计模式\t122
6.2.1 安全设计模式\t126
6.2.2 弹性设计模式\t127
6.2.3 可扩展性设计模式\t128
6.2.4 性能设计模式\t129
6.2.5 可用性设计原则\t130
6.2.6 可靠性设计原则\t131
6.2.7 断路器设计模式\t131
6.3 总结\t135
第7章 可靠性实施技术\t136
7.1 Ballerina编程\t136
7.1.1 hello程序示例\t138
7.1.2 Twitter集成的简单示例\t139
7.1.3 Kubernetes部署代码\t140
7.1.4 断路器代码示例\t142
7.1.5 Ballerina数据类型\t145
7.1.6 控制逻辑表达式\t145
7.1.7 Ballerina的基石\t146
7.1.8 Ballerina命令备忘单\t149
7.2 可靠性\t149
7.3 Rust编程\t149
7.3.1 安装Rust\t150
7.3.2 Rust编程的概念\t150
7.3.3 Rust编程的未来\t154
7.4 总结\t154
第8章 实现可靠系统的最佳做法\t155
8.1 可靠的IT系统:新兴特征和 提示\t156
8.2 用于可靠软件的MSA\t156
8.3 服务网格解决方案\t158
8.4 微服务设计:最佳做法\t158
8.4.1 事件驱动微服务的相关性\t158
8.4.2 为什么要异步通信\t159
8.4.3 为什么采用事件驱动的微服务\t160
8.5 事件驱动微服务的异步消息传递模式\t161
8.6 EDA在产生响应式应用程序中的作用\t165
8.7 可靠的IT基础设施\t168
8.7.1 高可用性\t168
8.7.2 自动缩放\t170
8.8 基础架构即代码\t170
8.8.1 不变的基础设施\t171
8.8.2 无状态应用程序\t171
8.8.3 避免级联故障\t172
8.9 总结\t176
第9章 服务弹性\t177
9.1 容器化范式\t177
9.2 解密微服务架构\t179
9.3 Kubernetes在容器时代的作用日益增长\t180
9.4 服务网格的概念\t182
9.5 为什么服务网格至关重要\t187
9.6 服务网格架构\t188
9.6.1 监控服务网格\t189
9.6.2 服务网格部署模式\t190
9.7 总结\t194
第 10章 容器、Kubernetes和Istio监控\t196
10.1 Prometheus\t197
10.1.1 Prometheus的架构\t198
10.1.2 配置Prometheus\t199
10.1.3 在Prometheus中配置警报\t202
10.2 Grafana\t203
10.2.1 配置Grafana\t204
10.2.2 在Grafana中配置警报\t208
10.3 总结\t211
第 11章 确保和增强IT可靠性的后期活动\t212
11.1 现代IT基础设施\t213
11.2 监控云、集群和容器\t215
11.3 监控云基础架构和应用程序\t217
11.4 监控工具功能\t219
11.5 预测和规范分析\t221
11.6 日志分析\t223
11.6.1 开源日志分析平台\t224
11.6.2 基于云的日志分析平台\t226
11.6.3 支持AI的日志分析平台\t227
11.6.4 Loom\t228
11.6.5 企业级别的日志分析平台\t228
11.6.6 日志分析平台的关键功能\t229
11.6.7 集中式日志管理工具\t229
11.7 IT运营分析\t230
11.8 IT性能和可扩展性分析\t231
11.9 IT安全分析\t232
11.10 根本原因分析的重要性\t232
11.11 总结\t234
第 12章 服务网格和容器编排平台\t235
12.1 关于数字化转型\t236
12.2 数字化时代的云原生应用程序和支持云的应用程序\t236
12.3 服务网格解决方案\t237
12.3.1 Linkerd\t239
12.3.2 Istio\t239
12.4 微服务API网关\t244
12.4.1 API网关对以微服务为中心的应用程序的好处\t245
12.4.2 API网关的安全功能\t247
12.4.3 API网关和服务网格的作用\t248
12.4.4 API管理套件\t249
12.5 确保容器化云环境的可靠性\t249
12.6 通往容器化云环境的“旅程”\t250
12.7 用于容器化云的Kubernetes平台日益坚固\t251
12.7.1 Kubernetes架构:工作方式\t252
12.7.2 安装Kubernetes平台\t256
12.7.3 安装Kubernetes客户端\t259
12.7.4 在Kubernetes上安装Istio\t261
12.8 总结\t266
1.1 设置实用SRE的环境\t2
1.1.1 下一代软件系统的特征\t2
1.1.2 下一代硬件系统的特征\t2
1.1.3 向混合IT和分布式计算转型\t3
1.1.4 展望数字时代\t3
1.1.5 云服务范式\t4
1.1.6 不断增长的软件渗透和参与\t6
1.2 投身于SRE学科\t7
1.3 对高可靠性平台和基础设施的需求\t9
1.4 响应式系统\t18
1.4.1 响应式系统是高度可靠的\t20
1.4.2 响应式系统的弹性\t20
1.5 高度可靠的IT基础架构\t20
1.6 SRE领域的活力\t23
1.6.1 SRE的重要性\t24
1.6.2 站点可靠性工程师经常使用的工具集\t26
1.7 总结\t27
第 2章 微服务架构和容器\t28
2.1 什么是微服务\t28
2.2 微服务设计原则\t28
2.3 部署微服务\t30
2.3.1 基于容器平台的部署工具\t30
2.3.2 代码作为功能部署\t31
2.3.3 基于虚拟化的平台部署\t32
2.4 微服务部署的实际示例\t32
2.4.1 使用Kubernetes的容器平台部署示例\t32
2.4.2 代码作为功能部署\t36
2.4.3 使用Jenkins或TeamCity进行基于虚拟平台的部署\t40
2.5 使用Spring Boot和RESTful框架的微服务\t40
2.6 Jersey框架\t41
2.7 表述性状态转移(REST)\t43
2.7.1 部署Spring Boot应用程序\t50
2.7.2 监控微服务\t51
2.7.3 用于监控微服务的工具\t53
2.8 关于微服务的重要事实\t54
2.8.1 当前市场中的微服务\t54
2.8.2 何时停止微服务的设计\t55
2.8.3 是否可以使用微服务格式将团队划分为小型或微型团队\t55
2.9 总结\t56
第3章 微服务弹性模式\t57
3.1 微服务和容器简介\t58
3.2 IT可靠性挑战和解决方案\t60
3.3 弹性和可靠性的前景和潜力\t63
3.3.1 MSA是前进的方向\t63
3.3.2 集成平台是时刻保持弹性的需求\t65
3.4 总结\t82
第4章 DevOps即服务\t83
4.1 什么是DaaS\t83
4.1.1 选择工具并不容易\t84
4.1.2 DaaS下的服务类型\t86
4.1.3 配置自动警报\t89
4.1.4 集中式日志管理\t90
4.1.5 基础设施安全\t91
4.1.6 持续的流程和基础设施开发\t92
4.1.7 CI和CD\t93
4.2 与开发和质量检查团队合作\t101
4.2.1 开发人员在DevOps中的作用\t102
4.2.2 QA团队在DevOps中的作用\t102
4.3 总结\t103
第5章 容器集群和编排平台\t104
5.1 弹性微服务\t104
5.2 应用和数据卷容器\t105
5.3 集群和管理容器\t107
5.4 容器编排和管理\t112
5.5 总结\t120
第6章 架构模式与设计模式\t121
6.1 架构模式\t121
6.2 设计模式\t122
6.2.1 安全设计模式\t126
6.2.2 弹性设计模式\t127
6.2.3 可扩展性设计模式\t128
6.2.4 性能设计模式\t129
6.2.5 可用性设计原则\t130
6.2.6 可靠性设计原则\t131
6.2.7 断路器设计模式\t131
6.3 总结\t135
第7章 可靠性实施技术\t136
7.1 Ballerina编程\t136
7.1.1 hello程序示例\t138
7.1.2 Twitter集成的简单示例\t139
7.1.3 Kubernetes部署代码\t140
7.1.4 断路器代码示例\t142
7.1.5 Ballerina数据类型\t145
7.1.6 控制逻辑表达式\t145
7.1.7 Ballerina的基石\t146
7.1.8 Ballerina命令备忘单\t149
7.2 可靠性\t149
7.3 Rust编程\t149
7.3.1 安装Rust\t150
7.3.2 Rust编程的概念\t150
7.3.3 Rust编程的未来\t154
7.4 总结\t154
第8章 实现可靠系统的最佳做法\t155
8.1 可靠的IT系统:新兴特征和 提示\t156
8.2 用于可靠软件的MSA\t156
8.3 服务网格解决方案\t158
8.4 微服务设计:最佳做法\t158
8.4.1 事件驱动微服务的相关性\t158
8.4.2 为什么要异步通信\t159
8.4.3 为什么采用事件驱动的微服务\t160
8.5 事件驱动微服务的异步消息传递模式\t161
8.6 EDA在产生响应式应用程序中的作用\t165
8.7 可靠的IT基础设施\t168
8.7.1 高可用性\t168
8.7.2 自动缩放\t170
8.8 基础架构即代码\t170
8.8.1 不变的基础设施\t171
8.8.2 无状态应用程序\t171
8.8.3 避免级联故障\t172
8.9 总结\t176
第9章 服务弹性\t177
9.1 容器化范式\t177
9.2 解密微服务架构\t179
9.3 Kubernetes在容器时代的作用日益增长\t180
9.4 服务网格的概念\t182
9.5 为什么服务网格至关重要\t187
9.6 服务网格架构\t188
9.6.1 监控服务网格\t189
9.6.2 服务网格部署模式\t190
9.7 总结\t194
第 10章 容器、Kubernetes和Istio监控\t196
10.1 Prometheus\t197
10.1.1 Prometheus的架构\t198
10.1.2 配置Prometheus\t199
10.1.3 在Prometheus中配置警报\t202
10.2 Grafana\t203
10.2.1 配置Grafana\t204
10.2.2 在Grafana中配置警报\t208
10.3 总结\t211
第 11章 确保和增强IT可靠性的后期活动\t212
11.1 现代IT基础设施\t213
11.2 监控云、集群和容器\t215
11.3 监控云基础架构和应用程序\t217
11.4 监控工具功能\t219
11.5 预测和规范分析\t221
11.6 日志分析\t223
11.6.1 开源日志分析平台\t224
11.6.2 基于云的日志分析平台\t226
11.6.3 支持AI的日志分析平台\t227
11.6.4 Loom\t228
11.6.5 企业级别的日志分析平台\t228
11.6.6 日志分析平台的关键功能\t229
11.6.7 集中式日志管理工具\t229
11.7 IT运营分析\t230
11.8 IT性能和可扩展性分析\t231
11.9 IT安全分析\t232
11.10 根本原因分析的重要性\t232
11.11 总结\t234
第 12章 服务网格和容器编排平台\t235
12.1 关于数字化转型\t236
12.2 数字化时代的云原生应用程序和支持云的应用程序\t236
12.3 服务网格解决方案\t237
12.3.1 Linkerd\t239
12.3.2 Istio\t239
12.4 微服务API网关\t244
12.4.1 API网关对以微服务为中心的应用程序的好处\t245
12.4.2 API网关的安全功能\t247
12.4.3 API网关和服务网格的作用\t248
12.4.4 API管理套件\t249
12.5 确保容器化云环境的可靠性\t249
12.6 通往容器化云环境的“旅程”\t250
12.7 用于容器化云的Kubernetes平台日益坚固\t251
12.7.1 Kubernetes架构:工作方式\t252
12.7.2 安装Kubernetes平台\t256
12.7.3 安装Kubernetes客户端\t259
12.7.4 在Kubernetes上安装Istio\t261
12.8 总结\t266
猜您喜欢