×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
高性能之道: SRE视角下的运维架构实践

高性能之道: SRE视角下的运维架构实践

1星价 ¥73.2 (6.2折)
2星价¥73.2 定价¥118.0
暂无评论
图文详情
  • ISBN:9787121454585
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:384
  • 出版时间:2023-06-01
  • 条形码:9787121454585 ; 978-7-121-45458-5

本书特色

适读人群 :本书适合互联网行业内的运维人员、SRE和DevOps工程师、架构师、技术团队负责人及关注用户体验的相关开发者阅读,也适合掌握了一定的SRE方法论但在实践中无从下手的读者阅读。本书亮点和创新技术实践思路√ SRE性能优化漏斗优化法则:全书用十几个章节介绍相关技术实践,体现了整个法则的收益。√ 标准和规范治理平台的设计思路:是解决技术体系各项规范落地难、长期治理效果差的闭环解决方案。√ HTTP故障降级理论和实践:从电商平台业务中抽象出降级模型,提出了创新的故障降级解决方案,相关思路不局限于解决电商平台业务问题,还可以扩展到其他一些领域(前提是运维人员深刻理解业务)。√ 云原生可观测性开源工具Kindling的介绍及实践价值:针对目前云原生下海量日志分析难、定位问题难等进行的优秀实践。√ 全视角解读运维架构建设中的各种矛盾和破解思路。

内容简介

本书从实践出发,包括了作者参与并主导的3家电商互联网公司架构从0到1的构建经历,从多个角度讲解稳定、性能、效率、成本四大职责落地经验,并结合Mikey金字塔进行了部分创新,很多内容都可以直接复用于实际工作。本书分为7篇,分别是开端篇、监控篇、故障篇、容量篇、全局视角篇、性能篇和扩展篇。 本书适合互联网行业内的运维人员、SRE和DevOps工程师、架构师、技术团队负责人及关注用户体验的相关开发者阅读,也适合掌握了一定的SRE方法论但在实践中无从下手的读者阅读。

目录

开端篇 弱化边界感

第1章 引言3

1.1运维架构和SRE3

1.2理解业务,技术为业务服务5

1.3不设边界6

1.4SRE金字塔6

1.5总结7

第2章 重视测试环境和预发布环境8

2.1提效和维稳的**道门槛——测试环境9

2.1.1低级错误9

2.1.2提效分析10

2.2“守门员”——预发布环境11

2.2.1低级错误11

2.2.2提效分析12

2.3两大环境问题根本原因溯源12

2.4微拍堂测试环境治理思路介绍13

2.5总结17

监控篇 底层逻辑的艺术

第3章 浅谈监控系统设计21

3.1梳理监控体系21

3.2梳理监控指标22

3.3变更监控25

3.4准实时系统监控25

3.5短时进程追踪工具27

3.6全链路监控27

3.7商业监控平台的选用建议28

3.8监控方式:白盒监控与黑盒监控29

3.9从监控数据中总结规律30

3.10黄金指标30

3.11总结31

第4章 云原生可观测性开源工具——Kindling32

4.1行业现状32

4.2Kindling解决方案——关联内核可观测性数据的Trace34

4.3Kindling探针的架构设计理念37

4.4Kindling探针架构38

4.4.1内核态程序:drivers38

4.4.2用户态C/C++程序:kindling-probe38

4.4.3用户态Go程序:kindling-collector39

4.4.4程序间通信方式40

4.5在线Demo介绍41

4.6案例分享42

4.6.1安装43

4.6.2功能介绍44

4.6.3稳定性价值47

4.7总结48

第5章 高阶实战——打造可持续维护的闭环流程49

5.1案例:动态观测SQL质量流程设计50

5.1.1分析规范难以落地的原因50

5.1.2监督与管控流程设计51

5.1.3通知和统计57

5.2案例:WebP格式图片的规范和落地实践57

5.2.1规范无法持续推广57

5.2.2成本和用户体验上的双赢58

5.2.3计划实施60

5.2.4管控机制60

5.2.5采集数据信息和数据加工处理60

5.2.6巡检平台之规范化监督61

5.3案例:管道通信规范化实践62

5.3.1我们每天都在使用管道62

5.3.2管道示例场景及性能说明64

5.3.3如何规范管道使用场景66

5.4标准和规范治理平台67

5.4.1现状68

5.4.2设计思路68

5.5总结72

第6章 挖掘Nginx的监控价值73

6.1URI指纹服务设计73

6.2Nginx日志分析指南76

6.2.1参数白名单76

6.2.2URI的响应时间和HTTP状态监控77

6.2.3URI响应字节数波动分析77

6.2.4查询URL请求的项目79

6.2.5注意HTTPS的透传80

6.2.6利用Nginx完成动态全链路比例调整81

6.3总结82

故障篇 故障的生命周期

第7章 事前治理的方法论85

7.1从故障中总结经验85

7.2从系统资源层面和日志中巡检异常86

7.3从标准和规范中寻找闭环之路86

7.4从业务中挖掘基础服务的使用问题87

7.5技术风险防控运营成本87

7.6总结88

第8章 变更管控设计思路89

8.1变更管控89

8.1.1变更对象89

8.1.2变更发布90

8.1.3变更可灰度91

8.1.4变更可回滚92

8.1.5变更可监控92

8.1.6配置项变更92

8.1.7变更管控思路92

8.2JumpServer使用的艺术及工单交互96

8.3变更三板斧:运维团队的可监控、可灰度、可回滚实践98

8.3.1案例:云服务器资源伸缩稳定性98

8.3.2案例:CDNOpenResty的变更策略102

8.4总结106

第9章 轮值的设计思路107

9.1值班模式探究108

9.1.1让开发人员参与其中108

9.1.2制定KPI109

9.1.3值班人员的边界探讨110

9.2值班机器人111

9.3提升值班价值——SRE需求池设计112

9.3.1结合日常巡检与非值班时间112

9.3.2在烦琐的工作中收集需求112

9.4总结113

第10章 故障演练与应急预案114

10.1故障演练缘由114

10.1.1更好地面对系统规模增长带来的复杂性115

10.1.2提升故障的排查速度115

10.1.3验证应急预案的正确性115

10.1.4验证基础设施的稳定性116

10.1.5验证监控感知能力116

10.1.6验证应急流程的顺畅度116

10.2故障演练流程116

10.2.1故障演练场景关键要素116

10.2.2故障演练预期117

10.3应急预案119

10.3.1应急场景标准化120

10.3.2梳理应急预案清单120

10.4总结121

第11章 应急响应流程实践122

11.1收拢故障上报来源122

11.1.1从技术体系内部发现122

11.1.2从技术体系外部发现123

11.2建立应急小组123

11.2.1人多力量弱123

11.2.2稳定性接口人和岗位权限123

11.2.3完善客诉标准化术语124

11.3故障噪点治理124

11.3.1报警治理124

11.3.2设计外部反馈阈值125

11.3.3收集第三方抖动事件125

11.4控制应急节奏126

11.4.1舍小保大126

11.4.2“优先止血”,后续定位根本原因127

11.4.3及时同步信息,减少信息差127

11.5应急“止血”的常见操作127

11.5.1代码回滚127

11.5.2重启128

11.5.3时序监控下的限流、熔断、扩容129

11.5.4业务降级130

11.5.5阻断慢查询131

11.5.6网络与运营商131

11.5.7重识监控132

11.6总结132

第12章 静态容灾降级系统133

12.1荆棘之路134

12.2设计之路136

12.3架构流程图138

12.3.1反向代理系统138

12.3.2日志分析系统138

12.3.3后台系统——利用URI指纹服务138

12.3.4爬虫系统139

12.3.5容灾的缓存系统140

12.3.6基于时间的版本用途140

12.3.7异地容灾141

12.4核心代码解说142

12.4.1Ngx_Lua应用142

12.4.2爬虫和日志分析系统的关系143

12.4.3完全容灾和部分容灾功能144

12.5静态容灾的智能关闭方案145

12.5.1从日志分析系统复制请求145

12.5.2利用GoReplay复制流量145

12.5.3利用Nginx的mirror镜像功能146

12.5.4灰度验证容灾系统缓存——闭环设计147

12.6替换爬虫的新思路148

12.7总结148

第13章 基于OpenResty的动态限流设计思路150

13.1常见反向代理限流方案缺点分析150

13.2动态限流设计思路151

13.3多维度限流154

13.4智能感知响应能力动态控速设计方案157

13.5屏蔽慢请求带来的服务阻塞159

13.6总结160

第14章 故障复盘161

14.1复盘前161

14.2复盘中161

14.3复盘后164

14.4自省164

14.5跨部门分享165

14.6故障库165

14.7总结165

容量篇 性能与成本间的平衡

第15章 成本优化169

15.1成本优化事前准备169

15.1.1目标的制定和价值体现170

15.1.2IT成本与人力成本的权衡170

15.1.3提升对系统的理解171

15.1.4评估优化前后的数据统计及业务影响171

15.1.5从用户体验看待成本优化173

15.1.6梳理业务和资源的关系173

15.2公有云基础资源优化实践174

15.2.1成本管理白皮书174

15.2.2合理化资源使用率177

15.2.3自建产品和云产品的使用场景优化178

15.2.4基于业务场景的成本控制179

15.3总结180

第16章 智能伸缩平台181

16.1弹性伸缩平台关键路径盘点181

16.2基础设施建设182

16.2.1基于Pod的HPA传统模式182

16.2.2基于Cluster-Autoscaler的Node伸缩184

16.3基于业务场景的实战189

16.3.1定时伸缩189

16.3.2基于预测的弹性伸缩191

16.4风险控制体系199

16.4.1动态限流触发规则199

16.4.2扩容节点失败和业务降级200

16.5总结200

第17章 容量规划201

17.1容量规划现状201

17.2容量规划建设思路202

17.2.1建设核心202

17.2.2建设思路203

17.3应用系统容量规划说明204

17.4基于巡检模式的容量评估流程205

17.4.1对流量来源的梳理205

17.4.2对容量对象的梳理206

17.4.3收集日常关键性数据207

17.5对容量规划关注点的梳理210

17.5.1压力测试210

17.5.2业务放量212

17.5.3大促活动213

17.5.4秒杀业务214

17.5.5关注运营活动计划214

17.5.6尖刺限流215

17.6总结215

第18章 编程能力216

18.1养成写伪代码的习惯216

18.2养成管理代码的习惯217

18.3编程能力分级218

18.4编程能力更深层的价值探讨219

18.4.1如何看待PHP短连接问题219

18.4.2理解Redis和Memcached在业务场景上的区别220

18.4.3进程、线程、协程在Linux系统中的表现221

18.4.4探究阻塞和非阻塞、异步和同步在系统中的表现223

18.4.5共享内存224

18.4.6尝试一些导致进程崩溃的操作224

18.4.7学习秒杀系统的业务架构225

18.4.8给自己的代码做闭环实践226

18.4.9参与业务开发日常226

18.5熟悉编程语言特性226

18.6通过系统分析倒推应用配置问题227

18.6.1通过access函数发现PHP性能问题227

18.6.2Java连接池失效228

18.7总结229

全局视角篇 运维破圈

第19章 开启测试视角233

19.1测试人员的职责边界233

19.2压力测试234

19.2.1压测黑名单思维235

19.2.2压测利器Wrk235

19.2.3流量镜像工具GoReplay235

19.3自动化测试监控平台设计237

19.3.1“牵一发而动全身”的迭代238

19.3.2OpenDiffy介绍238

19.3.3变更管控的支撑系统OpenDiffy+GoReplay239

19.4破坏性测试探究239

19.5从前端的体验“找碴儿”240

19.5.1基于浏览器特性的服务优化240

19.5.2从图片加载中寻找优化方法241

19.5.3数据埋点的发送频率242

19.5.4域名的使用限制243

19.5.5请求重复性243

19.5.6PageSpeedInsights分析页面的加载243

19.5.7定期的内耗分析245

19.6总结245

第20章 开启用户视角246

20.1内外兼顾246

20.1.1内部用户247

20.1.2外部用户248

20.2建立反馈机制249

20.2.1优化客服反馈机制249

20.2.2与客服合作的案例分享249

20.2.3奖励机制250

20.2.4关注舆情250

20.3产品体验——谷歌SRE的高阶思维251

20.3.1不仅仅是体验251

20.3.2交互烦琐252

20.3.3无人问津252

20.3.4ROI252

20.4防御体系的“误伤”指南253

20.4.1WAF“误伤”253

20.4.2内部风控“误伤”254

20.5关注客户端环境254

20.5.1客户端机型配置254

20.5.2网络255

20.6总结255

第21章 开启前端和App开发人员视角256

21.1概述256

21.2为什么要解决性能问题257

21.3缓存257

21.3.1强缓存257

21.3.2协商缓存259

21.4网络请求261

21.4.1HTTP/2.0261

21.4.2DNS预解析262

21.4.3预先建立连接262

21.4.4服务器应该避免过多重定向263

21.5客户端计算263

21.6预加载265

21.7梳理技术风险265

21.7.1请求阻塞式串行加载266

21.7.2埋点发送过于频繁266

21.7.3弱网下的资源加载降级266

21.7.4拨测266

21.8总结267

第22章 DNS应用场景实践268

22.1利用DNS完成故障转移268

22.2使用HTTPDNS提升访问稳定性271

22.3提升测试、A/B测试等环境的切换效率273

22.4域名反向解析用途实践273

22.5内部DNS系统高可用实践274

22.5.1两次DNS故障275

22.5.2问题和思考276

22.5.3改进措施278

22.5.4配置及验证279

22.5.5监控283

22.6总结284

性能篇 SRE进阶之路

第23章 高并发网关价值探究287

23.1通用功能介绍287

23.2网关中的聚合模式288

23.2.1Lura启示录289

23.2.2APISIX中的batch-requests插件289

23.2.3从GraphQL发现的技术实践思路291

23.3兼顾缓存的网关设计思路293

23.3.1APISIX的proxy-cache插件293

23.3.2利用聚合拼接缓存资源293

23.3.3鉴权和缓存剥离294

23.4总结295

第24章 高性能Varnish缓存系统296

24.1HTTP缓存对后端服务的价值分析296

24.2CDN缓存和Varnish缓存的共存模式298

24.3安装Varnish和所需模块299

24.4配置文件概览300

24.5稳定性建设所依赖的功能300

24.5.1神圣模式300

24.5.2宽限模式——异步缓存更新302

24.5.3更安稳的软清除303

24.6*佳实践304

24.6.1动态缓存时间配置304

24.6.2热Key及秒杀系统的缓存实践305

24.6.3后端服务故障转移306

24.6.4高并发下Varnish启动参数优化307

24.6.5Varnish配置模板优化实践307

24.6.6测试环境缓存系统的干扰事件309

24.7总结309

第25章 SRE漏斗优化法则310

25.1SRE性能优化之漏斗优化法则311

25.2漏斗优化法则的技术栈梳理312

25.2.1减少访问量312

25.2.2减少返回的数据313

25.2.3减少交互次数313

25.2.4降低CPU、内存使用率314

25.2.5提升资源利用率314

25.3总结315

第26章 awesome性能分析工具316

26.1站在巨人的肩膀上工作316

26.1.1系统性能分析常见清单317

26.1.2bcc-tools工具清单319

26.1.3火焰图320

26.2Netdata320

26.3总结321

第27章 性能优化实践锦集322

27.1TIME_WAIT优化方案扩展322

27.2利用Ngx_Lua缩短请求链路323

27.3eBPF在Kubernetes上的应用325

27.3.1kubectl-trace325

27.3.2使用前提325

27.3.3使用优点325

27.3.4使用场景326

27.3.5安装326

27.4善用CDN327

27.4.1静态加速327

27.4.2动态加速328

27.4.3缓存过期保护策略328

27.5记一次中台服务优化实战329

27.5.1寻找优化目标330

27.5.2抽丝剥茧——尝试优化方案331

27.5.3使用gopprof火焰图发现端倪333

27.5.4回顾复盘337

27.6总结337

扩展篇 在团队间搭建桥梁

第28章 业务开发人员视角下的技术风险341

28.1了解业务开发人员342

28.1.1工作内容342

28.1.2废弃十年如一日343

28.1.3重构并非易事343

28.1.4发布前的检查清单344

28.1.5站在巨人的肩膀上编程344

28.1.6拒绝伪需求345

28.2大淘客之旅346

28.2.1对话高层,达成共识346

28.2.2对话业务线负责人347

28.2.3重识目标,各个击破347

28.2.4技术氛围和激励政策348

28.2.5“曲线救国”的技术路线348

28.3总结351

第29章 SRE视角全篇总结352

29.1齐心协力353

29.1.1关键要素353

29.1.2华山论剑353

29.2竞品分析——*后1公里355

29.3故障降级系统——来自监控的沟通艺术355

29.3.1抽象业务形态355

29.3.2抽象监控触发条件357

29.3.3收拢零散性的自愈任务357

29.4重识CMDB价值357

29.5总结358

展开全部

作者简介

本书主要作者王力,资深技术老兵,《Nginx实战:基于Lua语言的配置、开发与架构详解》和《高性能之道:SRE视角下的运维架构实践》作者。15年互联网从业经验,其中有9年电商互联网开发和运维经验,这期间担任过微拍堂运维专家、阿里技术专家、折800运维架构师等,并有5年主导电商大促活动保障的落地经验,推进过折800、微拍堂两家电商平台运维架构从0到1的建设,精通服务的稳定性建设,精通高并发场景下的性能优化和中间件开发,擅长通过架构设计来优化系统复杂度、降本增效。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航