描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111750512
编辑推荐
无论您是网络工程师或者网络安全工程师、架构师还是领导者,本书都将帮助您以更高的效率、安全性、响应能力和弹性来满足所有网络运营的需求
内容简介
本书详细阐述了基础设施即代码的概念、原理、设计方法以及实践,帮助读者深入理解基础设施即代码的本质和价值。书中通过大量的案例和实践经验,展示了如何运用基础设施即代码来提高企业生产力,改变数据走向,优化流量模式。
目 录
Contents目 录
译者序
前言
致谢
第1章 顿开茅塞 1
1.1 企业IT成为业务风险源 1
1.2 灾难现场的观察结果 3
1.2.1 缺少良好的架构 4
1.2.2 人为错误 4
1.2.3 人比机器慢 4
1.2.4 自动化测试缺失 4
1.2.5 恶性循环 4
1.2.6 缺乏敏捷性 5
1.3 DevOps 5
1.3.1 什么是DevOps 5
1.3.2 应用程序与基础设施 6
1.3.3 利用大规模自动化 7
1.4 为什么企业IT部门不采用
DevOps 7
1.4.1 人为因素 7
1.4.2 业务因素 8
第2章 良方妙法 9
2.1 目标:业务转型 12
2.1.1 IT设施的瓶颈 12
2.1.2 业务转型 13
2.1.3 DevOps行动手册 13
2.2 为什么选择模型驱动的
DevOps 14
2.2.1 网络基础设施的不同之处 14
2.2.2 什么是模型驱动的DevOps 15
2.2.3 什么是数据模型 15
2.2.4 可信数据源 18
2.2.5 作为框架的DevOps 18
2.3 DevSecOps的内置安全性 19
第3章 可调用的基础设施 21
3.1 API 23
3.2 平台化 27
3.2.1 物理硬件配置 27
3.2.2 统一控制点 28
3.2.3 北向API与南向API 28
3.2.4 API 和功能规范化 28
3.2.5 编织化服务 29
3.2.6 可伸缩性 29
第4章 基础设施即代码 31
4.1 为什么采用基础设施即代码 33
4.2 可信数据源 34
4.3 数据模型 34
4.3.1 数据模型编码格式 36
4.3.2 数据模型描述语言 38
4.3.3 通用IaC工具 39
4.3.4 组织结构 40
4.3.5 可信数据源的类型 43
4.4 源代码 51
第5章 持续集成/持续部署 58
5.1 CI/CD概述 61
5.1.1 应用程序与基础设施的
区别 62
5.1.2 CI/CD实践 63
5.2 源代码管理 64
5.2.1 核心功能 64
5.2.2 协作功能 65
5.2.3 SCM总结 67
5.3 持续集成工具 67
5.3.1 CI引擎 68
5.3.2 持续集成工具的工作方式 69
5.3.3 工作流程示例 69
5.4 基础设施仿真工具 71
5.5 测试和验证 77
5.5.1 语法检查 78
5.5.2 元数据格式/模型验证 79
5.5.3 功能测试 81
5.5.4 测试和验证总结 86
5.6 持续部署 86
5.7 持续监控 87
第6章 落地实施 89
6.1 模型驱动的DevOps框架的参考
实现 91
6.2 目标 92
6.3 DevOps路线图 92
6.3.1 架构 93
6.3.2 仿真 95
6.3.3 自动化 96
6.3.4 测试 109
6.3.5 部署 118
第7章 事在人为 121
7.1 文化和变革的需求 122
7.2 从“为什么”开始 123
7.3 组织 123
7.3.1 领导力 123
7.3.2 楷模 123
7.3.3 组建一个团队 124
7.3.4 打破藩篱 124
7.3.5 社区 125
7.3.6 新的工具 125
7.3.7 组织级变革的小结 128
7.4 个人 128
7.4.1 编程与自动化的对比 129
7.4.2 版本控制工具 130
7.4.3 数据格式 130
7.4.4 API 130
7.4.5 模板化 131
7.4.6 Linux/UNIX 132
7.4.7 拥抱变革 133
译者序
前言
致谢
第1章 顿开茅塞 1
1.1 企业IT成为业务风险源 1
1.2 灾难现场的观察结果 3
1.2.1 缺少良好的架构 4
1.2.2 人为错误 4
1.2.3 人比机器慢 4
1.2.4 自动化测试缺失 4
1.2.5 恶性循环 4
1.2.6 缺乏敏捷性 5
1.3 DevOps 5
1.3.1 什么是DevOps 5
1.3.2 应用程序与基础设施 6
1.3.3 利用大规模自动化 7
1.4 为什么企业IT部门不采用
DevOps 7
1.4.1 人为因素 7
1.4.2 业务因素 8
第2章 良方妙法 9
2.1 目标:业务转型 12
2.1.1 IT设施的瓶颈 12
2.1.2 业务转型 13
2.1.3 DevOps行动手册 13
2.2 为什么选择模型驱动的
DevOps 14
2.2.1 网络基础设施的不同之处 14
2.2.2 什么是模型驱动的DevOps 15
2.2.3 什么是数据模型 15
2.2.4 可信数据源 18
2.2.5 作为框架的DevOps 18
2.3 DevSecOps的内置安全性 19
第3章 可调用的基础设施 21
3.1 API 23
3.2 平台化 27
3.2.1 物理硬件配置 27
3.2.2 统一控制点 28
3.2.3 北向API与南向API 28
3.2.4 API 和功能规范化 28
3.2.5 编织化服务 29
3.2.6 可伸缩性 29
第4章 基础设施即代码 31
4.1 为什么采用基础设施即代码 33
4.2 可信数据源 34
4.3 数据模型 34
4.3.1 数据模型编码格式 36
4.3.2 数据模型描述语言 38
4.3.3 通用IaC工具 39
4.3.4 组织结构 40
4.3.5 可信数据源的类型 43
4.4 源代码 51
第5章 持续集成/持续部署 58
5.1 CI/CD概述 61
5.1.1 应用程序与基础设施的
区别 62
5.1.2 CI/CD实践 63
5.2 源代码管理 64
5.2.1 核心功能 64
5.2.2 协作功能 65
5.2.3 SCM总结 67
5.3 持续集成工具 67
5.3.1 CI引擎 68
5.3.2 持续集成工具的工作方式 69
5.3.3 工作流程示例 69
5.4 基础设施仿真工具 71
5.5 测试和验证 77
5.5.1 语法检查 78
5.5.2 元数据格式/模型验证 79
5.5.3 功能测试 81
5.5.4 测试和验证总结 86
5.6 持续部署 86
5.7 持续监控 87
第6章 落地实施 89
6.1 模型驱动的DevOps框架的参考
实现 91
6.2 目标 92
6.3 DevOps路线图 92
6.3.1 架构 93
6.3.2 仿真 95
6.3.3 自动化 96
6.3.4 测试 109
6.3.5 部署 118
第7章 事在人为 121
7.1 文化和变革的需求 122
7.2 从“为什么”开始 123
7.3 组织 123
7.3.1 领导力 123
7.3.2 楷模 123
7.3.3 组建一个团队 124
7.3.4 打破藩篱 124
7.3.5 社区 125
7.3.6 新的工具 125
7.3.7 组织级变革的小结 128
7.4 个人 128
7.4.1 编程与自动化的对比 129
7.4.2 版本控制工具 130
7.4.3 数据格式 130
7.4.4 API 130
7.4.5 模板化 131
7.4.6 Linux/UNIX 132
7.4.7 拥抱变革 133
前 言
Preface前 言
互联网建立在网络基础设施之上。许多技术、经济和社会活动都依赖于互联网。然而,令人遗憾的是,在过去的30年里,组织部署和维护这些关键网络的方式几乎没有发生有意义的变化。网络基础设施的运营通常是一项人力密集且需要手动操作的过程,容易出错且响应缓慢。DevOps模型通过可靠的自动化工具和流程,可以提高基础设施运营的灵活性、规模、安全性和合规性。尽管DevOps在云基础设施的应用程序开发和管理方面发挥着重要作用,但在将DevOps应用于网络基础设施方面,目前尚缺乏一种全面且结构化的方法。
与应用于程序的DevOps不同,应用于网络基础设施的DevOps面临着需要管理元素的数量和每个元素的数据量的巨大挑战。从本质上讲,这使得网络基础设施的DevOps成为一个数据管理问题。网络供应商使用数据模型来组织每个独立网元中的数据并规范其API,但不同供应商的数据模型甚至同一供应商的不同设备的数据模型都存在差异。模型驱动的DevOps试图对组织整个基础设施中数据模型和代码加以规范化。从某种意义上说,模型驱动的DevOps旨在提供一种将DevOps应用于网络基础设施的具有复用性和确定性的方式,同时具备与应用于云基础设施的DevOpes相同的优势。
愿景
这本书包含了我们多年来在IT领域的经验和在咨询、管理领域的所学,以及我们将其应用于解决当今客户需求时所面临的挑战。利用这样的经验,我们寻求提供一种将DevOps应用于基础设施运营的全面方法。这本书奠定了广泛的基础,帮助开发人员和运营商应用为基础设施DevOps制定的详细、规范的方法。此外,它还解决了导致许多组织失败的人为因素和组织因素。
本书的内容简明易懂且实用。我们认为,成为网络运营人员或网络工程师所需的技能已经发生了根本性的变化。API(应用程序接口)已经取代了CLI(命令行接口)。本书旨在帮助网络运营商和工程师重新调整他们的技能,按照操作云基础设施的方式来操作他们的基础设施。为了加强这种方法,我们添加了一个虚构的故事情节,以说明组织在实施这种变革时所面临的挑战。
我们将重点放在结果上,并提供大量的代码来帮助实现这些结果。我们专注于行业中标准的工具和方法。在可能的情况下,我们使用开源或免费工具。当必须选择供应商解决方案时,我们会选择适合实现的方式。也就是说,不同的组件或者不同的供应商,并不会对我们提出的原则、框架甚至代码产生显著的影响。
读者对象
我们深入研究了模型驱动的DevOps,并通过开源配套代码库中的用例和具体示例对其进行了定义。本书面向IT基础设施团队,还适用于希望在各个阶段将安全性纳入其基础设施的网络安全团队。另外,本书也适合希望了解现代基础设施的最佳实践的个人以及业务和技术领导者,因为这些实践与通过团队实现高质量成果息息相关。
组织方式
本书各章内容的组织逻辑如下:首先,我们研究为什么网络基础设施的运营需要改变,然后探索需要改变的内容,最后展示如何改变它。模型驱动的DevOps的参考实现(reference implementation)为读者全面应用所学的技术和概念提供了指导。有了这一坚实的技术基础,我们将在最后一章讨论在进行大规模的操作更改时需要考虑的重要人为因素。
本书还提供一些练习,这些练习可让读者获得实践经验,以更好地理解技术细节,并检测所学到的知识。
为了提供一些背景信息并帮助说明本书中的诸多概念,每章都从一位名叫鲍勃的网络工程师的虚构故事开始。鲍勃在ACME公司工作,这是一家具有典型组织结构的常规公司。最重要的是,它以大量人力手动操作键盘的方式来运营网络基础设施。在CIO(首席信息官)的指导
下,鲍勃开始了DevOps之旅。正是通过了解他的挑战、失败和成功,我们看到了网络基础设施在传统运营模式下的问题,以及如何通过自动化实现DevOps,进而实现真正的业务转型。
章节结构
本书的每一章都构建在前一章的基础之上。模型驱动的DevOps的实现过程是一个旅程,这样的章节安排旨在引导读者逐步完成整个旅程。
第1章说明了为什么网络基础设施的传统运营模式需要改变,简要概述了DevOps如何解决传统模式的诸多问题,并探讨了DevOps未被广泛用于本地IT基础设施的原因。
第2章定义了业务转型的目标,讨论了模型驱动的DevOps的高级框架,并介绍了可信数据源和数据模型等概念。
网络基础设施要成为业务转型的推动者,就需要摆脱开箱即用的CLI管理模式。第3章说明了API是新的CLI,并探讨了可以利用并扩展API的方法。
尽管能够利用API以编程方式使用网络基础设施,但读者不必成为一个程序员。第4章探讨了如何使用数据模型、可信数据源、配置管理工具和模板工具等将网络基础设施“变成”代码。这些工具让“基础设施即代码”成为可能,从而像在“云服务”中一样操作网络基础设施。
基础设施即代码非常强大,但与许多强大的东西一样,如果不加区分地应用,会带来很大的风险。第5章探讨了版本控制系统、数据验证工具、仿真平台和CI/CD的概念。这些工具共同实现了基础设施即代码的大规模安全使用以及自动化的合法
互联网建立在网络基础设施之上。许多技术、经济和社会活动都依赖于互联网。然而,令人遗憾的是,在过去的30年里,组织部署和维护这些关键网络的方式几乎没有发生有意义的变化。网络基础设施的运营通常是一项人力密集且需要手动操作的过程,容易出错且响应缓慢。DevOps模型通过可靠的自动化工具和流程,可以提高基础设施运营的灵活性、规模、安全性和合规性。尽管DevOps在云基础设施的应用程序开发和管理方面发挥着重要作用,但在将DevOps应用于网络基础设施方面,目前尚缺乏一种全面且结构化的方法。
与应用于程序的DevOps不同,应用于网络基础设施的DevOps面临着需要管理元素的数量和每个元素的数据量的巨大挑战。从本质上讲,这使得网络基础设施的DevOps成为一个数据管理问题。网络供应商使用数据模型来组织每个独立网元中的数据并规范其API,但不同供应商的数据模型甚至同一供应商的不同设备的数据模型都存在差异。模型驱动的DevOps试图对组织整个基础设施中数据模型和代码加以规范化。从某种意义上说,模型驱动的DevOps旨在提供一种将DevOps应用于网络基础设施的具有复用性和确定性的方式,同时具备与应用于云基础设施的DevOpes相同的优势。
愿景
这本书包含了我们多年来在IT领域的经验和在咨询、管理领域的所学,以及我们将其应用于解决当今客户需求时所面临的挑战。利用这样的经验,我们寻求提供一种将DevOps应用于基础设施运营的全面方法。这本书奠定了广泛的基础,帮助开发人员和运营商应用为基础设施DevOps制定的详细、规范的方法。此外,它还解决了导致许多组织失败的人为因素和组织因素。
本书的内容简明易懂且实用。我们认为,成为网络运营人员或网络工程师所需的技能已经发生了根本性的变化。API(应用程序接口)已经取代了CLI(命令行接口)。本书旨在帮助网络运营商和工程师重新调整他们的技能,按照操作云基础设施的方式来操作他们的基础设施。为了加强这种方法,我们添加了一个虚构的故事情节,以说明组织在实施这种变革时所面临的挑战。
我们将重点放在结果上,并提供大量的代码来帮助实现这些结果。我们专注于行业中标准的工具和方法。在可能的情况下,我们使用开源或免费工具。当必须选择供应商解决方案时,我们会选择适合实现的方式。也就是说,不同的组件或者不同的供应商,并不会对我们提出的原则、框架甚至代码产生显著的影响。
读者对象
我们深入研究了模型驱动的DevOps,并通过开源配套代码库中的用例和具体示例对其进行了定义。本书面向IT基础设施团队,还适用于希望在各个阶段将安全性纳入其基础设施的网络安全团队。另外,本书也适合希望了解现代基础设施的最佳实践的个人以及业务和技术领导者,因为这些实践与通过团队实现高质量成果息息相关。
组织方式
本书各章内容的组织逻辑如下:首先,我们研究为什么网络基础设施的运营需要改变,然后探索需要改变的内容,最后展示如何改变它。模型驱动的DevOps的参考实现(reference implementation)为读者全面应用所学的技术和概念提供了指导。有了这一坚实的技术基础,我们将在最后一章讨论在进行大规模的操作更改时需要考虑的重要人为因素。
本书还提供一些练习,这些练习可让读者获得实践经验,以更好地理解技术细节,并检测所学到的知识。
为了提供一些背景信息并帮助说明本书中的诸多概念,每章都从一位名叫鲍勃的网络工程师的虚构故事开始。鲍勃在ACME公司工作,这是一家具有典型组织结构的常规公司。最重要的是,它以大量人力手动操作键盘的方式来运营网络基础设施。在CIO(首席信息官)的指导
下,鲍勃开始了DevOps之旅。正是通过了解他的挑战、失败和成功,我们看到了网络基础设施在传统运营模式下的问题,以及如何通过自动化实现DevOps,进而实现真正的业务转型。
章节结构
本书的每一章都构建在前一章的基础之上。模型驱动的DevOps的实现过程是一个旅程,这样的章节安排旨在引导读者逐步完成整个旅程。
第1章说明了为什么网络基础设施的传统运营模式需要改变,简要概述了DevOps如何解决传统模式的诸多问题,并探讨了DevOps未被广泛用于本地IT基础设施的原因。
第2章定义了业务转型的目标,讨论了模型驱动的DevOps的高级框架,并介绍了可信数据源和数据模型等概念。
网络基础设施要成为业务转型的推动者,就需要摆脱开箱即用的CLI管理模式。第3章说明了API是新的CLI,并探讨了可以利用并扩展API的方法。
尽管能够利用API以编程方式使用网络基础设施,但读者不必成为一个程序员。第4章探讨了如何使用数据模型、可信数据源、配置管理工具和模板工具等将网络基础设施“变成”代码。这些工具让“基础设施即代码”成为可能,从而像在“云服务”中一样操作网络基础设施。
基础设施即代码非常强大,但与许多强大的东西一样,如果不加区分地应用,会带来很大的风险。第5章探讨了版本控制系统、数据验证工具、仿真平台和CI/CD的概念。这些工具共同实现了基础设施即代码的大规模安全使用以及自动化的合法
评论
还没有评论。