书籍详情
《基础设施即代码云服务器管理》[45M]百度网盘|亲测有效|pdf下载
  • 基础设施即代码云服务器管理

  • 出版社:南雪图书专营店
  • 出版时间:2018-09
  • 热度:4688
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

基本信息

书名:基础设施即代码 云服务器管理

定价:89.00元

作者:(美)基夫·莫里斯(Kief Morris)

出版社:人民邮电出版社

出版日期:2018-09-01

ISBN:9787115490636

字数:396000

页码:240

版次:240

装帧:平装

开本:16开

商品重量:

编辑推荐


内容提要


   本书旨在解释如何利用“云时代”基础设施即代码的方法来管理IT基础设施。主要内容包括:组织在采用新一代基础设施技术时经常掉进的陷阱以及避免这些陷阱的核心原则和基础设施即代码的关键实践;动态基础设施平台的性能和服务模型;提供、确认核心基础设施资源的工具;规定服务器、构建服务器模板和更新运行服务器的实践和模型。

目录


   中文版推荐许

译者序

前言

部分基础

章挑战与原则3

1.1为什么采用基础设施即代码3

1.2什么是基础设施即代码4

1.3动态基础设施的挑战5

1.3.1服务器蔓延5

1.3.2配置漂移6

1.3.3雪花服务器6

1.3.4脆弱的基础设施7

1.3.5自动化恐惧症7

1.3.6侵蚀8

1.4基础设施即代码的原则8

1.4.1系统能够轻松复制8

1.4.2系统是用完可扔的9

1.4.3系统是一致的10

1.4.4过程是可重复的10

1.4.5设计经常变更10

1.5实践11

1.5.1使用定义文件11

1.5.2自文档化的系统和流程11

1.5.3一切版本化12

1.5.4持续测试系统和流程13

1.5.5小的变更,而不是批量变更13

1.5.6让服务持续可用13

1.6反脆弱性:“稳健性”14

1.7结语15

1.8下一步15

第2章动态基础设施平台16

2.1什么是动态基础设施平台16

2.2对动态基础设施平台的要求17

2.2.1可编程17

2.2.2按需获取19

2.2.3自服务19

2.3平台提供的基础设施资源19

2.3.1计算资源20

2.3.2存储资源20

2.3.3网络资源22

2.4动态基础设施平台的类型23

2.4.1公有IaaS云23

2.4.2社区IaaS云23

2.4.3私有IaaS云23

2.4.4反模式:手摇云24

2.4.5混合云服务24

2.4.6裸机云24

2.5如何选择动态基础设施平台25

2.5.1公有还是私有25

2.5.2云的可移植性27

2.6与云和虚拟化的“机械通感”29

2.7结语30

第3章基础设施定义工具31

3.1选择基础设施即代码的工具31

3.1.1需求:脚本接口32

3.1.2需求:无人值守的命令行工具32

3.1.3需求:支持无人值守的执行33

3.1.4需求:外部化配置34

3.2配置定义文件36

3.3使用基础设施定义工具37

3.3.1用过程化脚本置备基础设施38

3.3.2声明式定义基础设施40

3.3.3使用基础设施定义工具41

3.3.4配置服务器41

3.4配置注册表42

3.4.1轻量级配置注册表42

3.4.2配置注册表是CMDB43

3.4.3CMDB的审计与修复反模式44

3.4.4CMDB的基础设施即代码方式44

3.5结语44

第4章服务器配置工具45

4.1自动化服务器管理的目标45

4.2具有不同的服务器管理功能的工具46

4.2.1创建服务器的工具46

4.2.2配置服务器的工具47

4.2.3打包服务器模板的工具48

4.2.4在服务器上运行命令的工具49

4.2.5从中央注册中心获取配置50

4.3服务器变更管理模型51

4.3.1临时变更管理51

4.3.2配置同步51

4.3.3不可变的基础设施51

4.3.4容器化服务52

4.4容器52

4.4.1以容器方式和非容器方式管理Ruby应用程序53

4.4.2容器是虚拟机54

4.4.3使用容器而不是虚拟机55

4.4.4运行容器56

4.4.5安全和容器56

4.5结语58

第5基础服务概述59

5.1基础设施服务和工具的考虑59

5.1.1支持外部配置的工具优先60

5.1.2假定基础设施是动态的工具优先61

5.1.3具有云兼容许可的产品优先61

5.1.4支持松耦合的产品优先62

5.2团队之间共享服务62

5.3监控:告警、指标和日志63

5.3.1告警:出现问题时告诉我64

5.3.2指标:收集和分析数据65

5.3.3日志聚合和分析65

5.4发现服务66

5.4.1服务器端的服务发现模式67

5.4.2客户端的服务发现模式67

5.5分布式进程管理67

5.5.1使用服务器角色编排进程67

5.5.2使用容器编排进程67

5.5.3调度短期任务68

5.5.4容器编排工具68

5.6软件部署68

5.6.1部署流水线软件68

5.6.2打包软件69

5.7结语70

第二部分模式

第6章置备服务器的模式73

6.1服务器置备74

6.1.1服务器的生命周期74

6.1.2服务器都承载了什么77

6.1.3服务器上东西的类型77

6.1.4服务器角色79

6.2创建服务器的模式80

6.2.1反模式:手动制作服务器80

6.2.2实践:将服务器创建参数放在脚本中81

6.2.3反模式:热克隆服务器82

6.2.4模式:服务器模板82

6.2.5反模式:雪花工厂82

6.3引导新服务器的模式83

6.3.1推送引导83

6.3.2拉取引导84

6.3.3实践:对每个新服务器实例进行冒烟测试84

6.4结语85

第7章管理服务器模板的模式86

7.1供应模板:不能让别人来做86

7.2使用模板置备服务器87

7.2.1创建时置备服务器87

7.2.2在模板中置备88

7.2.3平衡模板和创建之间的置备工作88

7.3构建服务器模板的流程89

7.4原始镜像90

7.4.1反模式:热复制服务器模板90

7.4.2基于操作系统安装镜像烘焙模板91

7.4.3基于供应镜像烘焙模板91

7.4.4基于Unikernel构建模板92

7.4.5在不启动服务器的情况下自定义服务器模板92

7.5更新服务器模板92

7.5.1重新烘烤模板93

7.5.2烘焙新模板93

7.5.3版本控制服务器模板93

7.6构建基于角色的模板95

7.6.1模式:分层模板95

7.6.2共享模板的基础脚本96

7.7自动化服务器模板管理96

7.7.1在烘焙前自定义服务器96

7.7.2实践:自动测试服务器模板97

7.8结语97

第8章服务器更新与变更模式98

8.1服务器变更管理模型99

8.1.1临时性变更管理99

8.1.2持续配置同步99

8.1.3不可变服务器99

8.1.4容器化服务器100

8.2通用模式和实践100

8.2.1实践: 小化服务器模板101

8.2.2实践:当服务器模板变更时更换服务器101

8.2.3模式:凤凰服务器101

8.3持续部署的模式与实践102

8.3.1模式:无主服务器的配置管理102

8.3.2实践:应用Cron103

8.3.3持续同步流104

8.3.4未配置领域104

8.4不可变服务器的模式与实践106

8.4.1服务器镜像作为制品106

8.4.2使用不可变服务器简化确认管理工具106

8.4.3不可变服务器流程107

8.4.4使用不可变服务器引导配置108

8.4.5事务性服务器更新109

8.5管理配置定义的实践109

8.5.1实践:保持配置定义 小化109

8.5.2组织定义110

8.5.3实践:使用测试驱动开发来驱动良好的设计110

8.6结语110

第9章定义基础设施的模式111

9.1环境112

9.1.1反模式:手动制作的基础设施112

9.1.2定义基础设施栈即代码112

9.1.3反模式:每个环境单独的定义文件114

9.1.4模式:可重用的定义文件114

9.1.5实践:测试并推进栈定义115

9.1.6自服务的环境116

9.2组织基础设施116

9.2.1反模式:单体栈116

9.2.2迁移基础设施时避免“直接迁移”118

9.2.3将应用程序环境分到不同的栈中118

9.2.4管理栈之间的配置参数119

9.2.5共享基础设施元素120

9.2.6实践:应用程序代码和基础设施代码一起管理122

9.2.7共享定义的方法123

9.2.8实践:基础设施设计要与变更范围匹配124

9.2.9示例:微服务的基础设施设计125

9.3运行定义工具128

9.4结语128

第三部分实践

0章基础设施的软件工程实践131

10.1系统质量132

10.1.1低质量的系统很难变更132

10.1.2高质量的系统能更容易、更安全地变更132

10.1.3基于代码的基础设施质量133

10.1.4快速反馈133

10.2基础设施管理的版本控制系统133

10.3持续集成134

10.3.1持续测试分支不是持续集成134

10.3.2谁破坏了构建136

10.3.3忽略失败的测试137

10.3.4针对基础设施的持续集成137

10.4持续交付137

10.4.1集成阶段的问题137

10.4.2部署流水线和变更流水线138

10.4.3持续交付不是持续部署139

10.5代码质量140

10.5.1整洁代码140

10.5.2实践:管理技术债务140

10.6管理重大的基础设施变更141

10.7结语142

1章测试基础设施变更143

11.1敏捷测试方法144

11.1.1自动化测试提供快速反馈144

11.1.2有机地构建一个测试套件145

11.2构建测试套件:测试金字塔145

11.2.1避免失衡的测试套件146

11.2.2实践:尽可能在层级进行测试147

11.2.3实践:仅实现需要的层级148

11.2.4实践:经常删减测试套件148

11.2.5实践:持续评审测试的有效性148

11.3实现均衡的测试套件149

11.3.1低层级测试150

11.3.2中间层级测试151

11.3.3高层级测试154

11.3.4测试运维质量155

11.4管理测试代码156

11.4.1实践:将测试代码与所测代码放在一起156

11.4.2反模式:反射测试156

11.4.3隔离组件进行测试的技巧157

11.4.4重构组件以便隔离158

11.4.5管理外部依赖158

11.4.6测试设置159

11.5测试的角色和工作流161

11.5.1原则:人们应该为所构建的东西编写测试161

11.5.2编写测试的习惯162

11.5.3原则:每个人都应该能够使用测试工具162

11.5.4质量分析师的价值162

11.5.5测试驱动开发163

11.6结语164

2章基础设施的变更管理流水线165

12.1变更管理流水线的好处166

12.2设计流水线的准则166

12.2.1确保每个阶段的一致性167

12.2.2对于每个变更都立即得到反馈167

12.2.3在手动阶段之前运行自动阶段168

12.2.4尽早获得类生产环境168

12.3基本流水线设计169

12.3.1本地开发阶段169

12.3.2构建阶段169

12.3.3发布配置制品170

12.3.4自动化测试阶段171

12.3.5手动验证阶段172

12.3.6上线173

12.3.7流水线的节奏173

12.4使用流水线的实践174

12.4.1实践:证明每个变更都对生产准备就绪174

12.4.2实践:每个变更都始于流水线起点175

12.4.3实践:出现错误时停止流水线175

12.5扩展流水线到更复杂的系统175

12.5.1模式:扇入型流水线176

12.5.2实践:保持较短的流水线179

12.5.3实践:解耦流水线179

12.5.4集成模型180

12.6处理组件之间依赖的技巧181

12.6.1模式:库依赖181

12.6.2模式:自置备的服务实例183

12.6.3提供预发布的库构建183

12.6.4为消费者提供服务的测试实例184

12.6.5将服务的测试实例用作消费者185

12.7管理组件间接口的实践186

12.7.1实践:保证接口的向后兼容性186

12.7.2实践:从发布解耦部署186

12.7.3实践:使用版本相容187

12.7.4实践:提供测试替身187

12.7.5实践:用契约测试来测试提供者188

12.7.6实践:用参考消费者来测试188

12.7.7实践:提供者接口的冒烟测试188

12.7.8实践:运行消费者驱动契约测试188

12.8结语189

3章基础设施团队的工作流190

13.1任何可以自动化的都要自动化190

13.1.1手动变更191

13.1.2临时的自动化191

13.1.3自主的自动化192

13.1.4自主的自动化工作流193

13.2使用本地沙箱194

13.2.1使用本地虚拟化做沙箱194

13.2.2具有本地测试的工作流示例196

13.2.3使用虚拟化平台做沙箱197

13.3代码库组织模式197

13.3.1反模式:基于分支的代码库198

13.3.2模式:每个组件一个主干199

13.3.3模式:单一主干199

13.4工作流的效率199

13.4.1加快变更199

13.4.2代码评审200

13.4.3将治理融入工作流200

13.5结语202

4章动态基础设施的连续性203

14.1服务连续性204

14.1.1真实可用性204

14.1.2用动态服务器池做恢复205

14.1.3为动态基础设施设计软件206

14.1.4为连续性划分系统208

14.2零停机变更208

14.2.1模式:蓝绿替换209

14.2.2模式:凤凰替换209

14.2.3实践:缩小替换的范围210

14.2.4模式:金丝雀替换211

14.2.5为零停机替换路由流量212

14.2.6有数据的零停机变更213

14.3数据连续性214

14.3.1冗余地复制数据214

14.3.2重新生成数据215

14.3.3委托数据持久化215

14.3.4备份到持久存储215

14.4灾难恢复216

14.4.1持续的灾难恢复217

14.4.2灾备计划:为灾难做计划218

14.4.3实践:优先重建而不是冷备份218

14.4.4通过流水线持续监控219

14.5安全220

14.5.1自动掩盖危害220

14.5.2以可靠的更新作为防护221

14.5.3包的来源221

14.5.4自动加固222

14.5.5流水线中安全验证的自动化223

14.5.6变更流水线的漏洞223

14.5.7管理云账号的安全风险224

14.6结语225

5章基础设施即代码的组织要求226

15.1演进式架构226

15.1.1在实战中学习228

15.1.2从先驱者流水线开始228

15.2度量有效性229

15.2.1首先对期望的结果达成一致229

15.2.2选择有助于团队的度量指标230

15.2.3跟踪和改善周期时间230

15.2.4使用看板可视化工作232

15.2.5回顾会议及事后分析233

15.3组织授权用户233

15.3.1划分功能模型的陷阱233

15.3.2采取自服务模型235

15.3.3承担责任:谁构建,谁运行235

15.3.4组织跨职能团队236

15.4持续变更管理的治理237

15.4.1提供稳固的构建单元237

15.4.2在流水线中证明运维就绪238

15.4.3共享运维质量的所有权238

15.4.4审查和审计自动化流程238

15.4.5优化发现和修复问题的时间239

15.5结语:永无止境239

关于作者240

关于封面240

作者介绍


基夫·莫里斯(Kief Morris)是ThoughtWorks欧洲区持续交付和DevOps带头人,致力于帮助客户寻找建立和管理基础设施运维工作的更有效方法;拥有近20年设计、构建和运行自动化IT服务器基础设施的经验。
金明,益辅金服CTO,ThoughtWorks前咨询师,ScaleWorks云创始人及架构师。拥有超过十年的互联网产品以及云计算的研发管理经验,为靠前外多家银行、华为、中兴等大中型企业提供了技术变革的咨询服务,并多次在靠前外软件大会上做主题演讲。译有《敏捷软件开发实践》《项目百态》等书。
钱伟,千米网内部敏捷教练,在通信行业有十年研发、售后、交付经验,两年IT咨询经验,深信“只要姿势对,敏捷治百病”。
马博文,ThoughtWorks前咨询师,AWS助理架构师。拥有多年Web开发和DevOps经验,熟悉持续交付、微服务。曾参与翻译《Scala编程实战》《DevOps实践》和《DevOps实践指南》,是西安DevOps Meetup活动的发起人。
黄博文,技术专家,多年一线开发老兵,在持续集成、持续部署等DevOps领域拥有丰富的经验。曾在靠前外多家企业从事过技术教练以及技术咨询工作,擅长敏捷工作方式。拥有AWS解决方案架构师,译有《面向对象的思考过程》。
禚娴静,ThoughtWorks咨询师,拥有多年企业和互联网应用的一线开发经验,参与和过多个大型敏捷项目的技术交付、遗留系统重构和微服务架构转型。曾参与翻译《遗留系统重建实战》,享受跳跃的代码和专注带来的乐趣。

序言