一、书籍背景与目标
《Network Programmability and Automation》由 Jason Edelman、Scott S. Lowe 和 Matt Oswalt 共同撰写,于 2018 年由 O’Reilly Media 出版。这本书旨在为网络工程师提供网络可编程性和自动化领域的基础知识和实践技能,帮助他们适应网络行业的变革,提升工作效率和网络管理能力。随着软件定义网络(SDN)的兴起,网络自动化和可编程性成为网络行业的热门话题,本书正是基于这一趋势,为读者提供了一个全面的起点。
二、主要内容概述
第一部分:网络行业趋势与基础
- 第 1 章:介绍了软件定义网络(SDN)的起源和发展,探讨了其对网络可编程性和自动化的影响。
- 第 2 章:深入讨论了网络自动化的概念、历史、类型以及它如何改变网络运营模式。
- 第 3 章:为网络工程师提供了 Linux 操作系统的入门知识,包括基本命令和网络概念,因为 Linux 在现代网络设备中扮演着重要角色。
第二部分:编程与自动化工具
- 第 4 章:介绍了 Python 编程语言及其在网络自动化中的应用,包括数据类型、条件语句、循环、文件操作等基础知识。
- 第 5 章:讲解了常见的数据格式(如 JSON、XML 和 YAML)以及数据建模的概念,特别是 YANG 数据建模语言。
- 第 6 章:探讨了网络配置模板的使用,重点介绍了 Jinja 模板语言及其在生成网络设备配置中的应用。
第三部分:网络自动化实践
- 第 7 章:详细介绍了网络设备 API 的作用,包括 RESTful API 和 NETCONF 等,并通过实际例子展示了如何使用这些 API 进行网络编程和自动化。
- 第 8 章:介绍了 Git 源代码控制工具的使用,以及如何将其应用于网络自动化项目。
- 第 9 章:探讨了开源自动化工具(如 Ansible、Salt 和 StackStorm)的使用,并展示了如何将这些工具应用于网络自动化。
- 第 10 章:讨论了持续集成(CI)的概念和工具(如 Jenkins 和 Gerrit),并展示了如何将其应用于网络自动化工作流。
第四部分:文化与实践
- 第 11 章:强调了建立支持网络自动化的文化的重要性,并提供了如何培养这种文化的建议。
- 附录 A:深入探讨了 Linux 网络高级主题,如 macvlan 接口、虚拟机网络、网络命名空间和 Open vSwitch。
- 附录 B:介绍了 NAPALM(网络自动化和可编程性抽象层)Python 库及其在多厂商网络设备中的应用。
三、目标读者
本书的目标读者包括网络工程师、系统管理员和软件开发人员。网络工程师可以通过本书学习如何将自动化和可编程性应用于日常工作中,提高工作效率;系统管理员可以借此扩展其在 Linux 和网络管理方面的知识;软件开发人员则可以了解如何将网络设备集成到更广泛的自动化框架中。
四、书籍特色
- 实用性强:书中不仅介绍了理论知识,还提供了大量的实践案例和代码示例,帮助读者快速上手。
- 覆盖面广:涵盖了网络自动化和可编程性的多个方面,从基础概念到高级工具的使用。
- 行业前沿:紧跟网络行业的最新趋势,如 SDN、API、持续集成等,为读者提供了前沿的技术视角。
总之,《Network Programmability and Automation》是一本全面、实用且具有前瞻性的书籍,适合希望在现代网络环境中提升技能的网络专业人士阅读。