本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
1-【经典】DevOps领域经典重磅升级,原版Amazon 4.7星好评
2-【靠谱】DevOps先驱Gene Kim、持续交付之父Jez Humble领衔作品
3-【专业】国内DevOps资深实践者翻译,一线专家联袂推荐
4-【实战】汇聚全球一线DevOps落地案例(40个大案例)
5-【系统】IT名作《凤凰项目》实战篇,数字化转型三剑客读本
6-【落地】打造敏捷、可靠、安全、高效的技术型组织
本书是软件开发与运维领域经典参考书新升级版,由DevOps领域几位先驱撰写。第2版根据新研究和best practice更新了内容,增加了大量新案例,方便大家在各行各业落地DevOps实践。
本书内容分为六部分,围绕“DevOps三要义”(流动、反馈、持续学习与探索)探讨DevOps的理论、原则和落地实践。第一部分介绍DevOps理论基础和关键主题,第二部分介绍如何寻找切入点并启动转型,第三部分介绍如何通过构建部署流水线来加速流动,第四部分讨论如何通过建立有效的生产环境监控发现和解决问题,第五部分探讨如何通过建立公正的文化促进持续学习与探索,第六部分介绍将安全与合规活动集成到日常工作。
本书适合所有互联网企业和传统企业从业者阅读。
【作者简介】
Gene Kim - DevOps先驱
热销书作者、研究员、首席技术官、IT Revolution创始人、DevOps企业峰会创始人,专注于研究大型复杂组织的技术转型。著有风靡全球的《凤凰项目》《独角兽项目》。
Jez Humble - 持续交付之父
Google Cloud SRE、加州大学伯克利分校讲师、热销书作者,著有Jolt大奖获奖图书《持续交付》。
Patrick Debois - DevOps之父
Snyk公司DevOps关系总监兼顾问。致力于通过在开发、项目管理和系统管理中运用敏捷技术,弥合项目和运营之间的鸿沟。
John Willis - DevOps先驱
Red Hat全球转型办公室高级总监、Beyond The Phoenix Project作者、Profound播客主持人。在IT管理行业拥有超过40年经验。
【译者简介】
茹炳晟 - 腾讯Tech Lead
腾讯研究院特约研究员、中国计算机学会(CCF)TF研发效能SIG主席。《测试工程师全栈技术进阶与实践》等畅销技术书作者。公众号“茹炳晟聊软件研发”主理人。
管俊 - 戴尔DevOps架构师
目前就职于戴尔中国卓越研发集团,担任ACP & VxRail产品研发部门DevOps架构师。在数字化转型方向拥有超过10年一线DevOps工程实践和团队建设经验。
董越 - 阿里前架构师
独立DevOps咨询师、研发运营一体化(DevOps)能力成熟度模型核心专家,曾任阿里巴巴集团研发效能事业部架构师,当前主要从事企业级DevOps体系建设的咨询工作。《软件交付通识》等畅销技术书作者。
王晓翔 - 去哪儿网前高级总监
独立DevOps咨询师、研发运营一体化(DevOps)能力成熟度模型核心专家、去哪儿网前工程效率部高级总监。目前致力于为传统企业提供DevOps转型指导。
【联袂推荐】
陈屹力 X 党受辉 X 李大海 X 刘征 X 裴丹
沈剑 X 孙振鹏 X 萧田国 X 张乐 X 朱少民
这不仅是一本DevOps的指南,更是一部探索如何持续构建和完善技术架构体系的宝典。本书既从宏观角度出发,深入浅出地剖析了DevOps技术生态;又从微观角度切入,给出了具体的实践案例和操作步骤。
——陈屹力,中国信息通信研究院云计算与大数据研究所副总工程师
不论是刚接触DevOps领域,还是已经凭感觉和经验做了一些平台建设和研效推动的工作,这本经典工具书都值得你一读再读。从概念到案例,再到技术演进,你会从中学到很多,真正深入理解DevOps。
——党受辉,腾讯IEG技术运营部助理总经理
本书深入浅出地介绍了DevOps的核心理念和实践方法,可谓“术”“道”兼备——既有高屋建瓴的理念,又有丰富的案例和实用的工具。借助本书,读者可以更好地理解和应用DevOps,从而提高软件开发和运维的效率和质量。
——李大海,面壁智能 CEO
近几年DevOps的普及速度大大超出了我们的预期。本书不仅提供了实施DevOps的路线图,也包含了大量各行业的参考案例。DevOps是没有终点的伟大冒险,练就加速能力才能获取奔赴星辰大海的体验。
——刘征,中国DevOps社区核心组织者
本书为读者提供全面而实用的DevOps实践知识,深入浅出地解释了DevOps的核心概念和原则,并提供了一系列实用的工具和技术,帮助读者在现代软件开发中实现高效的协作和持续交付。
——裴丹,清华大学长聘副教授、CCF OpenAIOps社区发起人
如果你正面临需求变更、技术债务积累、研发效能落后等问题,或者正经历交付周期越来越长、交付质量越来越差、并行交付越来越多的项目现状,又或者在执行项目过程中伴随着倦怠感甚至绝望感等负面情绪,推荐你读读这本书。
——沈剑,“架构师之路”主理人、快狗打车CTO
作为EXIN DevOps Professional认证指定用书,第2版新增了15个知名企业DevOps实践案例。此外,DevOps Master 2.0认证指定用书《加速》作者Nicole博士为本书提供了全新研究洞察。
——孙振鹏,EXIN国际信息科学考试学会亚太区总经理、DevOpsDays中国社区发起人
四位译者基于自身丰富的实践经验为大家重新诠释了DevOps领域经典。第2版不仅仅有从“DevOps三步工作法”到“DevOps三要义”的变化,更引入了丰富的名企案例为你提供高效的贴身指导,不愧是软件工程必读之作。
——萧田国,DAOPS基金会中国区执行董事、高效运维社区发起人
基于近年来的新实践、新数据和新案例,第2版做了与时俱进的大幅更新,焕发出全新的生命力,这是真正的王者归来。本书值得你用心阅读和深度思考,相信你也能体会到那种认知被点燃的“啊哈”时刻!
——张乐,腾讯研发效能资深技术专家、DevOpsDays中国核心组织者
我拿到预览版后一口气读完了前4章,因为阐述深刻,书中多处引发了我的深度思考或共鸣。第2版增加了新研究、优秀实践和大量新案例,相信你会收获更丰。
——朱少民,QECon和AiDD大会发起人
第 一部分DevOps三要义
第 1章敏捷、持续交付与DevOps三要义 5
1.1制造业价值流 5
1.2技术价值流 5
1.2.1聚焦部署前置时间 6
1.2.2关注返工指标——%C/A 8
1.3DevOps三要义:DevOps的基础原则 9
案例研究:向着巡航高度爬升:美国航空的DevOps之旅(第 一部分,2020年) 11
1.4小结 14
第 2章第 一要义:流动 15
2.1使工作可视化 15
2.2限制在制品数量 16
2.3缩减批量大小 17
2.4减少工作交接 19
2.5持续识别并改进约束 20
2.6消除价值流中的困境和浪费 21
案例研究:医疗行业中改善流动性和改进约束的实践(2021年) 22
2.7小结 24
第3章第二要义:反馈 25
3.1在复杂系统中安全地工作 25
3.2及时发现问题 26
3.3群策群力,攻克难题 28
案例研究:Excella的安灯绳实验(2018年) 30
3.4从源头保障质量 32
3.5为下游工作中心优化 33
3.6小结 33
第4章第三要义:持续学习与探索 34
4.1建立学习型组织,打造安全文化 35
4.2将日常工作的改进制度化 36
4.3将局部经验转化为全局改进 38
4.4在日常工作中注入弹性模式 38
4.5领导层强化与巩固学习文化 39
案例研究:贝尔实验室的故事(1925年) 40
4.6小结 41
第 一部分总结 42
第二部分从哪里开始
第5章选择合适的价值流切入 45
5.1绿地项目与棕地项目 47
案例研究:Kessel Run:空中加油系统的棕地项目转型(2020年) 49
5.2兼顾记录型系统和交互型系统 50
5.3从最具同理心和创新精神的团队开始 51
案例研究:在整个企业中推广DevOps转型:美国航空的DevOps之旅(第二部分,2020年) 52
5.4在组织中推广DevOps转型 52
案例研究:英国税务及海关总署如何通过超大规模PaaS拯救经济于水火(2020年) 55
5.5小结 57
第6章理解、可视化和运用价值流 58
6.1通过绘制价值流图改进工作 58
6.2确定价值流的参与团队 59
6.3通过绘制价值流图展现工作 60
6.4组建专职转型团队 61
6.4.1目标一致 62
6.4.2保持小跨度的改进计划 63
6.4.3为非功能性需求和偿还技术债务预留20%的时间 63
案例研究:LinkedIn的“反转行动”(2011年) 65
6.4.4提高工作的可视化程度 67
6.5使用工具强化预期行为 67
6.6小结 68
第7章参照康威定律设计组织结构与系统架构 69
7.1组织原型 71
7.2过度以职能为导向的危害(“成本优化”) 72
7.3组建市场型团队(“速度优化”) 72
7.4让职能型组织高效运转 73
7.5将测试、运维和信息安全纳入日常工作 74
7.6让团队成员都成为通才 75
7.7投资服务与产品,而非项目 76
7.8依照康威定律设定团队边界 76
7.9创建松耦合的架构,保证生产力和安全 77
7.10保持小规模团队(“两张比萨”原则) 78
案例研究:Target公司的“API启用”项目(2015年) 80
7.11小结 81
第8章将运维融入日常开发工作 82
8.1构建共享服务,提升开发人员生产力 83
8.2将运维工程师融入服务团队 85
8.3为服务团队指派运维联络人 85
8.4邀请运维工程师参加开发团队的例行活动 86
8.4.1邀请运维工程师参加每日站会 87
8.4.2邀请运维工程师参加回顾会议 87
8.4.3使用共享的看板展示相关运维工作 88
案例研究:全英房屋抵押贷款协会:拥抱更好的工作方式(2020年) 88
8.5小结 91
第二部分总结 91
第三部分“第 一要义:流动”的具体实践
第9章为部署流水线奠定基础 95
9.1按需搭建开发、测试和生产环境 96
9.2使用统一的代码仓库 97
9.3简化基础设施的重建 99
案例研究:酒店公司如何通过容器技术实现年收入300亿美元(2020年) 100
9.4代码运行在类生产环境才算“开发完成” 101
9.5小结 102
第 10章实现快速可靠的自动化测试 103
10.1持续构建、测试和集成代码与环境 106
10.2构建快速可靠的自动化测试套件 108
10.3在自动化测试阶段尽早发现问题 109
10.3.1确保测试快速运行 110
10.3.2测试驱动开发 111
10.3.3尽可能将手工测试自动化 112
10.3.4在测试套件中集成性能测试 113
10.3.5在测试套件中集成非功能性需求测试 113
10.4在部署流水线失败时拉下安灯绳 114
10.5小结 116
第 11章实现持续集成 117
11.1小批量开发vs大批量合并 119
11.2基于主干的开发实践 120
案例研究:Bazaarvoice的持续集成实践(2012年) 121
11.3小结 123
第 12章自动化和低风险的发布 124
12.1部署流程自动化 126
案例研究:CSG的每日部署(2013年) 127
12.1.1实现自动化的自助部署 129
12.1.2将代码部署集成到部署流水线 130
案例研究:Etsy持续部署案例:开发者自助部署(2014年) 131
12.2部署与发布解耦 133
12.2.1基于部署环境的发布模式 134
案例研究:Dixons Retail:蓝绿部署在POS系统中的应用(2008年) 136
12.2.2基于应用程序的发布模式 138
案例研究:Facebook Chat功能的灰度发布案例(2008年) 140
12.3持续交付和持续部署实践调研 141
案例研究:CSG:实现开发与运维的双赢(2016年) 142
12.4小结 146
第 13章降低发布风险的架构 147
13.1提高研发效能、可测试性和安全性的架构 148
13.2架构原型:单体架构vs微服务 149
案例研究:亚马逊的演进式架构(2002年) 150
13.3安全地演进企业架构 151
案例研究:Blackboard Learn的绞杀者应用模式(2011年) 152
13.4小结 155
第三部分总结 155
第四部分“第二要义:反馈”的具体实践
第 14章使用监控发现和解决问题 159
14.1搭建集中式的监控基础设施 161
14.2为应用程序添加日志监控 163
14.3用监控指引问题的分析和解决 165
14.4把添加监控融入日常工作 165
14.5以自助方式访问监控数据 166
案例研究:搭建自助的监控体系:LinkedIn的实践(2011年) 167
14.6对监控配置查漏补缺 169
14.6.1应用程序和业务的监控 169
14.6.2基础设施的监控 171
14.6.3显示其他相关信息 172
14.7小结 172
第 15章使用监控预防问题并实现业务目标 173
15.1用均值和标准差发现潜在问题 174
15.2监测到非预期结果时告警 175
15.3监控数据非高斯分布带来的问题 176
案例研究:Netflix的自动扩容能力(2012年) 177
15.4使用异常检测技术 179
案例研究:异常检测中的高级技术(2014年) 180
15.5小结 182
第 16章引入反馈机制实现安全部署 183
16.1利用监控确保部署上线更安全 184
16.2让开发和运维轮流值班 186
16.3让开发人员到价值流下游看一看 186
16.4先由开发人员自行运维 188
案例研究:谷歌的移交就绪评审和发布就绪评审(2010年) 190
16.5小结 192
第 17章将假设驱动开发和A/B测试纳入日常工作 193
17.1A/B测试简史 194
17.2在新功能测试中整合A/B测试 195
17.3在软件发布中整合A/B测试 196
17.4在功能规划中整合A/B测试 196
案例研究:雅虎问答在快速迭代中实验,实现收入翻倍 197
17.5小结 198
第 18章通过评审和协调提升工作质量 199
18.1变更审批流程带来的问题 200
18.2过度变更控制带来的问题 201
案例研究:从三位高管审批到自动审批——阿迪达斯的大规模发布实践(2020年) 202
18.3对变更进行协调和规划 204
18.4对变更进行同行评议 204
案例研究:谷歌的代码评审(2010年) 206
18.5冻结变更并进行大量手工测试的隐患 207
18.6用结对编程提升各种类型变更的质量 207
案例研究:Pivotal用结对编程代替阻滞的代码评审过程(2011年) 208
18.7分析拉取请求过程的有效性 209
18.8对官僚化流程进行大胆简化 210
18.9小结 211
第四部分总结 212
第五部分“第三要义:持续学习与探索”的具体实践
第 19章将学习融入日常工作 215
19.1建立公正的学习文化 216
19.2故障发生后及时召开回顾会议 217
19.3尽可能广泛公开回顾会议纪要 219
19.4降低事故容差以发现更弱的故障信号 220
19.5重新定义失败并鼓励评估风险 221
19.6向生产环境注入故障,培养系统弹性和学习氛围 222
19.7设立故障演练日 223
案例研究:CSG如何将故障转化为有效的学习机会(2021) 224
19.8小结 226
第 20章将局部经验转化为全局改进 227
20.1将可复用的标准流程自动化 228
20.2创建组织级的单一共享源代码仓库 229
20.3用自动化测试记录、交流实践以传播知识 231
20.4通过规范非功能性需求来设计运维 231
20.5将可复用的运维用户故事融入开发过程 232
20.6确保技术选型有助于组织达成目标 233
案例研究:Etsy的新技术栈标准化(2010年) 234
案例研究:Target的众包技术治理(2018年) 235
20.7小结 236
第 21章预留时间开展组织学习和改进 237
21.1将偿还技术债务变为例行活动 238
21.2让所有人教学相长 239
21.3在DevOps会议中分享经验 241
案例研究:美国全国保险、Capital One和Target的内部技术会议(2014年) 242
21.4创建社区结构来推广实践 243
21.5小结 245
第五部分总结 245
第六部分整合信息安全、变更管理和合规性的技术实践
第 22章信息安全是每个人的日常工作 249
22.1将安全集成到开发迭代演示 249
22.2将安全问题纳入缺陷跟踪和事后分析 250
22.3将预防性安全控制集成到共享源代码仓库及共享服务 250
22.4将安全集成到部署流水线 252
22.5保障应用程序安全 253
案例研究:Twitter的静态安全测试(2009年) 254
22.6保障软件供应链安全 256
22.7保障环境安全 261
案例研究:18F使用Compliance Masonry实现联邦政府合规性审查自动化(2016年) 261
22.8将信息安全集成到生产监控系统 262
22.8.1为应用程序创建安全监控 263
22.8.2为环境创建安全监控 263
案例研究:Etsy的环境监测(2010年) 264
22.9保护部署流水线 265
案例研究:在Fannie Mae开展安全左移(2020年) 266
22.10小结 267
第 23章保护部署流水线 268
23.1将安全和合规集成到变更审批流程 268
23.2将低风险的变更归类为标准变更 269
23.3当变更被归类为常规变更时如何处理 270
案例研究:Salesforce将自动化基础设施变更归类为标准变更(2012年) 270
23.4通过代码评审实现职责分离 271
案例研究:Etsy的PCI合规性以及一则职责分离的警示故事(2014年) 272
案例研究:通过业务与技术合作,Capital One实现每天10次有信心的发布(2020年) 274
23.5确保为合规官和审计师提供文档和证据 275
案例研究:证明监管环境下的合规性(2015年) 275
案例研究:ATM系统离不开生产监控(2013年) 277
23.6小结 278
第六部分总结 278
附录1:DevOps大融合 286
附录2:约束理论和长期存在的根本矛盾 288
附录3:恶性循环列表 289
附录4:交接和队列的危害 289
附录5:工业安全的误区 291
附录6:丰田安灯绳 291
附录7:COTS软件 292
附录8:事后分析会议(回顾会议) 292
附录9:猿猴军团 293
附录10:上线时间透明化 294