【问题标题】:YANG vs Protobuf杨 vs Protobuf
【发布时间】:2018-08-22 05:22:52
【问题描述】:

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

【问题讨论】:

  • 我猜两者都可以。您对这两种工具有任何先验知识吗?你需要它是人类可读/可编辑的(一个是 XML,还是二进制)?
  • YANG 模型是您用来生成原型定义的模型(同时牺牲了对有效数据的一些约束)。看看我在那里做了什么?
  • @MarcGravell,可读性是关键。我要跟上他们两个的速度。但是,想了解人们通常采取的方式。我们的用例是从我们采用的任何路径生成 POJO。

标签: protocol-buffers protobuf-net ietf-netmod-yang


【解决方案1】:

TL;DR:如果您想利用真正的 NW 管理标准,请选择 YANG 和 NETCONF/RESTCONF。如果您的用例非常具体,并且您希望更快地取得进展,请使用 Protocol Buffers。

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

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

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

【讨论】:

    猜你喜欢
    • 2020-08-04
    • 1970-01-01
    • 2016-02-24
    • 2019-11-02
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 2022-07-31
    • 1970-01-01
    相关资源
    最近更新 更多