图书介绍
基础设施即代码 云服务器管理PDF|Epub|txt|kindle电子书版本网盘下载
- (美)基夫·莫里斯(Kief Morris) 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115490636
- 出版时间:2018
- 标注页数:240页
- 文件大小:50MB
- 文件页数:273页
- 主题词:软件开发
PDF下载
下载说明
基础设施即代码 云服务器管理PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 基础3
第1章 挑战与原则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配置注册表是CMDB吗43
3.4.3 CMDB的审计与修复反模式44
3.4.4 CMDB的基础设施即代码方式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
第二部分 模式73
第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基于Unikemel构建模板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
第三部分 实践131
第10章 基础设施的软件工程实践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
第11章 测试基础设施变更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
第12章 基础设施的变更管理流水线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
第13章 基础设施团队的工作流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
第14章 动态基础设施的连续性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
第15章 基础设施即代码的组织要求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