暂无商品咨询信息 [发表商品咨询]
本书的主要内容有:基于Linux的新型网络技术与云原生环境,以及如何利用它们为网络项目搭建开发环境。Python和Go编程技能。如何通过模板技术构建一致的网络设备配置。数据格式、编码及模型:JSON、XML、YAML、Protobuf、YANG。应用程序接口(API)在网络自动化中的作用,包括HTTP API、NETCONF、RESTCONF、gNMI。如何在网络自动化项目中使用Git等版本控制系统以及持续集成等开发实践。如何使用Ansible、Nornir、Terraform实现网络设备与服务的自动化。以整体化视角设计网络自动化解决方案。
Matt Oswalt是Cloudflare的高级系统工程师,主要负责分布式系统以及互联网和Web协议相关工作。Christian Adell是Network to Code的首席架构师,拥有为本地和云环境构建及交付网络自动化解决方案的丰富经验。Scott Lowe任职于Pulumi的开发者关系团队,专注于基础设施即代码以及云基础设施与服务的自动化。Jason Edelman是领L先的网络自动化解决方案提供商Network to Code的创始人兼首席技术官。Jason于2014年创立了Network to Code。
目录
前言 1
第1 章 网络行业趋势 11
1.1 SDN 的兴起 11
1.1.1 OpenFlow 问世 .11
1.1.2 为什么是OpenFlow 13
1.2 什么是软件定义网络 15
1.2.1 开放数据平面 16
1.2.2 网络功能虚拟化 18
1.2.3 虚拟交换 .20
1.2.4 网络虚拟化 21
1.2.5 设备API 22
1.2.6 网络自动化 23
1.2.7 裸机交换 .25
1.2.8 数据中心网络架构 .27
1.2.9 SD-WAN .28
1.2.10 控制器网络30
1.2.11 云原生网络 31
1.3 小结 32
第2 章 网络自动化 33
2.1 为什么要实现网络自动化 .34
2.1.1 简化架构 .34
2.1.2 确定性结果 34
2.1.3 业务敏捷力 35
2.1.4 安全增强与风险管控.35
2.2 网络自动化的类型 36
2.2.1 设备制备 .36
2.2.2 数据采集与丰富 39
2.2.3 迁移 41
2.2.4 配置管理 .41
2.2.5 配置合规性 42
2.2.6 状态验证 .43
2.2.7 报表 44
2.2.8 故障排查 .44
2.3 从SNMP 向设备API 的管理平面演变 46
2.3.1 应用程序编程接口(API) 46
2.3.2 开放网络运动的影响.50
2.4 SDN 时代的网络自动化 .50
2.5 小结 51
第3 章 Linux 53
3.1 网络自动化场景中的Linux 53
3.2 Linux 简史 .54
3.3 Linux 发行版 55
3.3.1 Red Hat Enterprise Linux 、Fedora、CentOS,以及Amazon Linux .55
3.3.2 Debian、Ubuntu 和其他衍生版 57
3.3.3 其他Linux 发行版 .58
3.4 使用Linux .59
3.4.1 文件系统导航 60
3.4.2 操作文件和目录 64
3.4.3 运行程序 .70
3.4.4 守护进程 .73
3.5 Linux 网络技术 76
3.5.1 使用接口 .77
3.5.2 作为端主机的路由 .89
3.5.3 像路由器一样执行路由操作 .93
3.5.4 桥接(交换) 94
3.6 使用bash 脚本实现Linux 自动化 .99
3.7 eBPF 与XDP:驱动Linux 内核演进 102
3.8 小结 103
第4 章 云 105
4.1 云计算的简明定义 .105
4.2 云环境中的网络基础 .108
4.2.1 云网络基础组件 108
4.2.2 云网络拓扑 .110
4.2.3 云网络自动化 .116
4.3 容器 119
4.3.1 容器与云有什么关系? .121
4.3.2 容器与网络有什么关系? 121
4.3.3 为容器扩展Linux 网络功能 122
4.4 Kubernetes 132
4.4.1 Kubernetes 的关键概念 .133
4.4.2 Kubernetes 网络的基础组件 134
4.4.3 服务网格 142
4.5 小结 143
第5 章 网络开发人员环境 145
5.1 文本编辑器 .146
5.1.1 语法高亮 147
5.1.2 定制化 148
5.1.3 智能代码分析 .149
5.1.4 文本编辑器与集成开发环境 153
5.2 开发工具 .154
5.2.1 Virtualenv .155
5.2.2 Make 156
5.2.3 Docker 157
5.2.4 dyff 160
5.3 仿真/ 模拟工具 161
5.3.1 VirtualBox 162
5.3.2 Vagrant 163
5.3.3 Containerlab 167
5.3.4 其他工具 170
5.4 小结 170
第6 章 Python 171
6.1 网络工程师是否应该学习代码? 172
6.2 使用Python 交互式解释器 .173
6.3 理解Python 数据类型 175
6.3.1 字符串 176
6.3.2 数值 .186
6.3.3 布尔值 188
6.3.4 列表 .192
6.3.5 Python 字典 .198
6.3.6 集合与元组 .203
6.4 向代码中添加条件逻辑 205
6.5 理解包含关系 207
6.6 在Python 中使用循环 208
6.6.1 while 循环 209
6.6.2 for 循环 .209
6.7 使用Python 函数 .214
6.8 处理文件 .218
6.8.1 读取文件 218
6.8.2 写入文件 221
6.9 创建Python 程序 .223
6.9.1 创建一个Python 基础脚本 223
6.9.2 在Python 中使用注释 224
6.9.3 将代码从Python 解释器迁移到Python 脚本 .226
6.10 使用Python 模块 228
6.11 传入Python 脚本参数 231
6.12 使用pip 安装Python 包 232
6.13 理解Python 类 236
6.13.1 使用类 .236
6.13.2 构建自定义类 237
6.14 使用try/except 从容应对失败 240
6.15 Python 程序并行化 241
6.16 小结 .245
第7 章 Go 语言 247
7.1 为什么选择Go .248
7.1.1 Go 比Python 更快吗 250
7.1.2 Go 比Python 更难吗 251
7.2 Go 基础概念 252
7.2.1 数据类型与变量 253
7.2.2 流程控制 258
7.2.3 集合类型 262
7.2.4 函数 .273
7.2.5 结构体 279
7.2.6 方法 .282
7.2.7 接口 .286
7.3 进阶概念 .291
7.3.1 并发 .292
7.3.2 泛型 .299
7.4 包与模块 .301
7.4.1 标准库包 303
7.4.2 第三方模块与包 315
7.5 小结 319
第8 章 数据格式与模型 321
8.1 结构化数据格式的优势与基础知识 321
8.1.1 当结构化数据不可用时:屏幕抓取 325
8.1.2 数据类型 326
8.1.3 文档与数据 .326
8.1.4 数据格式的分类 327
8.2 文本型数据格式 327
8.2.1 YAML .329
8.2.2 XML 332
8.2.3 JSON 338
8.3 二进制数据格式 343
8.3.1 Protocol Buffers.346
8.3.2 其他二进制数据格式352
8.4 数据建模 .354
8.4.1 YANG .357
8.4.2 JSON Schema .363
8.4.3 XML Schema Definition 368
8.4.4 Protocol Buffers 的建模与验证 .370
8.5 小结 370
第9 章 模板 . 373
9.1 现代模板语言的兴起 .373
9.1.1 使用模板进行Web 开发 374
9.1.2 拓展模板的使用 375
9.2 模板在网络自动化中的价值376
9.3 Jinja 377
9.3.1 在Python 中渲染Jinja 模板文件 .379
9.3.2 使用条件判断与循环381
9.3.3 使用Jinja 过滤器 .387
9.3.4 Jinja 模板继承 390
9.3.5 在Jinja 中创建变量创建 392
9.4 可扩展样式表语言转换 392
9.5 Go 模板 396
9.6 小结 403
第10 章 使用网络API . 405
10.1 理解网络API .406
10.1.1 熟悉基于HTTP 的API 406
10.1.2 使用NETCONF .418
10.1.3 使用RESTCONF 433
10.1.4 使用gRPC 与gNMI .442
10.1.5 比较NETCONF、RESTCONF 和gNMI 455
10.2 使用网络API 实现自动化 460
10.2.1 Python Requests 库 461
10.2.2 Go net/http 包 474
10.2.3 Python ncclient 库 .478
10.2.4 OpenConfig gNMIc Go 包 .488
10.2.5 Python Netmiko 库 496
10.3 小结 .504
第11 章 Git 源代码管理 507
11.1 源代码管理的应用场景 .507
11.2 源代码管理的优势 508
11.2.1 变更跟踪 508
11.2.2 责任追溯 508
11.2.3 流程与工作流 508
11.3 源代码管理在网络领域中的优势 .509
11.4 走进Git .509
11.4.1 Git 简史 510
11.4.2 Git 术语 511
11.4.3 Git 架构概览 .511
10.5 使用Git .513
10.5.1 安装Git 513
10.5.2 创建仓库 513
10.5.3 向仓库中添加文件 514
10.5.4 向仓库提交变更 .516
11.5.5 修改并提交已跟踪的文件 .519
11.5.6 取消暂存文件 522
11.5.7 从仓库中排除文件 525
11.5.8 查看仓库的更多信息 528
11.5.9 提取文件版本之间的差异 .533
11.5.10 在Git 中为提交添加标签 536
11.6 Git 的分支机制 539
11.6.1 重命名默认分支 .544
11.6.2 创建分支 545
11.6.3 检出分支 546
11.6.4 stash 机制 548
11.6.5 分支的合并与删除 551
11.7 使用Git 进行协作 557
11.7.1 在运行Git 的多系统之间开展协作 558
11.7.2 通过基于Git 的在线服务展开协作 575
11.8 小结 .579
第12 章 自动化工具 . 581
12.1 自动化工具回顾 582
12.2 使用Ansible 584
12.2.1 认识Ansible 框架 .585
12.2.2 理解Ansible 的工作原理 586
12.2.3 构建清单文件 587
12.2.4 执行Ansible playbook .594
12.2.5 使用机密信息 600
12.2.6 使用变量文件 601
12.2.7 编写Ansible playbook 实现网络自动化 .603
12.2.8 使用第三方集合与模块 625
12.2.9 Ansible 小结 .628
12.3 使用Nornir 实现自动化 629
12.3.1 Nornir 入门 630
12.3.2 在Nornir 中使用NAPALM 638
12.3.3 Nornir 小结 646
12.4 使用Terraform 管理动态基础设施 646
12.4.1 理解Terraform 架构 .648
12.4.2 使用Terraform 创建首个资源 .652
12.4.3 丰富Terraform 的执行能力 668
12.4.4 在大规模场景下管理Terraform .677
12.4.5 打破Terraform 的常规用法 688
12.4.6 Terraform 总结 695
12.5 小结 .695
第13 章 持续集成 697
13.1 重要前提 699
13.1.1 简单胜于复杂 699
13.1.2 人、流程与技术 .700
13.1.3 学会编程 700
13.2 持续集成简介 .700
13.2.1 CI 基础 701
13.2.2 持续交付 702
13.2.3 测试驱动开发 704
13.2.4 为什么要在网络中实践持续集成? .705
13.3 面向网络的持续集成流水线 706
13.3.1 同行评审 708
13.3.2 构建自动化714
13.3.3 部署验证与测试 .720
13.3.4 测试/ 开发/ 预发布环境 722
13.3.5 部署工具与策略 .724
13.4 小结 .727
第14 章 网络自动化架构 . 729
14.1 网络自动化架构简介 729
14.2 架构组件概览 .733
14.2.1 用户交互 733
14.2.2 事实源 .742
14.2.3 自动化引擎759
14.2.4 遥测与可观测性 .765
14.2.5 编排 784
14.3 结合示例理解架构788
14.3.1 确定运维工作流 .788
14.3.2 将工作流步骤转变为自动化任务 789
14.3.3 将自动化任务映射到架构组件 790
14.3.4 选择工具来实现每个组件的任务 792
14.4 小结 .794
| 基本信息 | |
|---|---|
| 出版社 | 中国电力出版社 |
| ISBN | 9787523905388 |
| 条码 | 9787523905388 |
| 编者 | [美]马特·奥斯瓦尔特(Matt Oswalt) [西]克里斯蒂安·阿德尔(Christian Adell) [美]斯科特·S. 洛(Scott S. Lowe) [美]贾森·埃德尔曼(Jason Edelman) 著 门佳 译 著 |
| 译者 | 门佳 |
| 出版年月 | 2026-06-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 816 |
| 字数 | 802000 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]