YANG与Protobuf对比

5

我们正在尝试对网络设备的配置进行建模。该模型将基本上是分层的。在使用Yang和Protobuf编写模型时,有哪些优缺点?


我猜两者都可以。你对这两个工具有任何先前的了解吗?你需要它是可读/可编辑的(其中一个是XML,或者是二进制)吗? - Marc Gravell
1
YANG模型是您用来生成proto定义的(同时牺牲一些有关有效数据的约束)可以看到我做了什么? - predi
@MarcGravell,易读性很重要。我正在逐渐掌握它们两个。但是,想知道人们通常采取哪种方式的想法。我们的用例是从我们采取的任何路径生成POJOs。 - SimpleCoder
1个回答

6
如果您想利用真正的NW管理标准,那么请使用YANG和NETCONF/RESTCONF。如果您的用例非常特定,且希望更快地进展,则使用Protocol Buffers。
如果您的设备将由各种网络管理工具进行管理,则使用YANG进行建模,并在设备中放置第三方NETCONF代理(例如TailF ConfD)可能会有益。您的工作只是定义您的模型并将设备内部与代理集成。 YANG和NETCONF/RESTCONF是实际的网络管理标准,因此您的设备将与许多已支持YANG和NETCONF的管理工具兼容。因此,选择YANG可能会为您的设备打开商业机会。
你可以选择像predi建议的那样使用YANG创建模型,然后开发自动将这些模型转换为protobuf模型的方法。这样,你就可以利用先进的YANG建模和使用protobuf在运行时进行快速、紧凑的通信的优势。这听起来像是一个非常有趣的开源项目的想法(人们已经考虑到了某种程度),但这需要相当多的努力,并且如果没有两种技术的专业知识,很难完成。请注意,如果您自己混合YANG和protobuf,您将永远无法在NW管理世界上获得第一种方法的好处,因为没有这样的标准。
如果你的重点是时间,只想编码,那么我个人建议使用干净的protobuf。这将使您的解决方案更简单,并且您可以充分利用庞大的protobuf社区。当然,YANG具有优势,与真正的NW管理协议密切相关,但它也很复杂,而且不太流行,所以你可能会在所有其特殊性中迷失。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接