基于YANG的可编程网络:用YANG、NETCONF、RESTCONF和gNMI实现网络自动化架构
上QQ阅读APP看书,第一时间看更新

前言

目标和方法

整个网络行业正面临着用自动化实现规模化和更快发展的压力。本书介绍如何利用YANG来释放网络自动化的力量。

自动化面临许多障碍。最主要的障碍是需要网络运维人员和软硬件提供商之间达成共识。要达成共识,迫切需要做到三件事情。

第一,参与者需要有一种共同语言。本书提供通用的术语、模型以及对用例和工具的认识,以便参与者能够进行有效的交流。

第二,自动化并不是让计算机循环运行。网络自动化是一个非常棘手的问题,是分布式、并行、实时、高可用、性能敏感、安全敏感的核心控制问题,需要一个系统架构。该系统架构已经存在,但并不为人所知。许多经验丰富的专业人士对该系统架构的关键部分也缺少了解。本书描绘了一幅蓝图,让各方都能了解自己那一部分适合放在哪里以及如何实现共同目标。

第三,你可能听过这句话:“知道怎么做的人会被录用,而知道为什么这么做的人会成为经理”。了解选择架构的原因是了解架构本身的核心组成部分。本书提供了这个背景。

通过提供丰富的背景知识与案例,解释“为什么”,以及提供大量动手实践的机会,我们希望本书能对网络专业人士以及整个行业的发展有所帮助。

谁应该读这本书

本书为所有对网络自动化感兴趣的网络专业人员设计。无论你是网络运维人员、DevOps工程师、网络软件开发人员、网络编排工程师、NMS/OSS架构师、服务工程师或其中任何一类人员的经理,本书都是适用的。如果你希望从基于命令行界面的管理过渡到数据模型驱动的管理,如果你是需要通过某些可编程性技能来补充网络技能以确保紧跟行业发展的工程师,那么本书非常适合你。

拥有网络管理知识的人将从本书中受益匪浅。同时,想要采用与管理存储和计算相同的方式来管理网络的软件工程师也将从阅读本书中受益。

显然有不同的方法通读本书。每章开头总结目标受众和主要内容。通读该介绍有助于找到最适合你的内容。随着事业的成长和不断学习,你可能会发现你将不断地回头阅读本书的其他内容。

本书的组织方式

本书可以连贯地从头读到尾。然而其设计灵活,可以跳过一些章节直接阅读你感兴趣的内容。

  • 第1章提供NETCONF和YANG诞生的背景。
  • 第2章从更广泛的视角介绍网络管理和自动化需求以及解决方案的层级和组件。推荐所有人阅读该章。
  • 第3章分阶段开发用于业务用例的YANG模型,并随着解决方案的进展引入、解释新的结构。这些阶段辅以GitHub项目,想完全理解上述内容的人可将其作为实际操作素材。该章是本书的核心内容,但如果你已经开发了许多YANG模块,可以跳过该章向后阅读。另外,经验丰富的YANG开发者也可以快速浏览该章以找到一些新的有用的详述。
  • 第4章对传输协议进行解释,研究基本操作和编码。在许多实例中对NETCONF、RESTCONF和gNMI进行介绍和对比。每个实例都可以在GitHub的配套项目中复制,供有志于动手操作实践的读者参考。
  • 第5章涵盖遥测、自动化反馈环路机制。反馈是控制系统的重要组成部分,但遥测仍是一个正在建设的领域,现在许多解决方案尚未用到遥测。
  • 第6章涵盖去哪里寻找YANG模型,与哪些标准定义机构合作,使用哪些工具,以及如果一个功能有多个模型该怎么做。
  • 第7~9章都涵盖了YANG模型的元数据和工具,但从三个不同的角度进行阐述。
    • 第7章涵盖所有人都需要使用的基本工具和模块信息。
    • 第8章适合YANG模块作者阅读。
    • 第9章适合自动化应用程序开发人员阅读。
  • 第10章包含完整的自动化过程。该章从一个业务案例开始,创建一个service-YANG模型,添加一个服务实现,通过NETCONF连接一组设备,创建一个服务实例,并详细查看消息来回传递时会发生什么。然后修改并撤销服务级别更改。阅读该章的所有内容后,你会发现你已经完全理解了本书的全部内容。该章将提供良好的全方位模型驱动网络自动化概览。
  • 第11章基于作者多年的YANG建模经验,提供包含有关如何设计和如何避免设计YANG模块的诸多建议。