YANG VS Protobuf

Sim*_*der 4 protocol-buffers protobuf-net ietf-netmod-yang

我们正在尝试对网络设备的配置进行建模。该模型将非常分层。在 Yang vs Protobuf 中编写模型的优缺点是什么?

小智 5

TL;DR:如果您想利用真正的 NW 管理标准,请使用 YANG 和 NETCONF/RESTCONF。如果您的用例非常具体并且您想加快进度,那么请使用协议缓冲区。

如果您的设备将由各种网络管理工具管理,使用 YANG 进行建模并在设备中放置 3rd 方 NETCONF 代理(如TailF ConfD)可能会有所帮助。您的工作将“只是”定义您的模型并将设备内部与代理集成。YANG 和 NETCONF/RESTCONF 是实际的网络管理标准,因此您的设备将兼容许多已经支持 YANG 和 NETCONF 的管理工具。因此,通过选择 YANG,您实际上可能会为您的设备打开商机。

您可以按照 predi 的建议选择使用 YANG 创建模型,然后开发一种自动方式将这些模型转换为 protobuf 模型。通过这种方式,您可以使用 protobuf 在运行时利用高级 YANG 建模和快速紧凑的通信。这像一个开源项目一个非常有趣的想法声音(人们已经想到这一点到一定 程度),但它需要相当多的努力,这将是很难完成它没有这两种技术的专业知识。请注意,您永远不会通过自己混合 YANG 和 protobuf 来获得第一种方法的好处,因为在 NW 管理世界中不会有这样的标准。

如果您的重点是时间并且只想进行编码,那么我个人建议使用干净的 protobuf。这将使您的解决方案更简单,您可以充分利用大型 protobuf 社区。当然,YANG 具有优势,并且它与真正的 NW 管理协议密切相关,但它也很复杂且不太受欢迎,因此您可能会迷失在它的所有特性中。