Ян против Протобуфа

Мы пытаемся смоделировать конфигурацию сетевого устройства. Модель будет в значительной степени иерархической. Каковы плюсы и минусы написания модели в Yang vs Protobuf?

1 ответ

TL; DR: если вы хотите использовать преимущества настоящих стандартов управления NW, используйте YANG и NETCONF/RESTCONF. Если ваш вариант использования очень специфичен, и вы хотите продвигаться быстрее, используйте буфер протокола.

Если ваше устройство будет управляться различными инструментами управления сетью, может быть полезно использовать YANG для моделирования и добавить в устройство сторонний агент NETCONF (например, TailF ConfD). Ваша задача будет "просто" определить вашу модель и интегрировать внутренние компоненты устройства с агентом. YANG и NETCONF / RESTCONF являются актуальными стандартами управления сетью, поэтому ваше устройство будет совместимо со многими инструментами управления, которые уже поддерживают YANG и NETCONF. Таким образом, выбрав YANG, вы можете открыть бизнес-возможности для своего устройства.

Вы можете выбрать, как и предполагалось ранее, использовать YANG для создания моделей, а затем разработать автоматический способ преобразования этих моделей в модели protobuf. Таким образом, вы можете воспользоваться преимуществами расширенного моделирования YANG и быстрой и компактной связи во время выполнения с использованием protobuf. Это звучит как очень интересная идея для проекта с открытым исходным кодом (и люди уже думали об этом в некоторой степени), но это требует довольно больших усилий, и было бы трудно реализовать это без опыта в обеих технологиях. Обратите внимание, что вы никогда не достигнете преимуществ первого подхода, смешивая YANG и protobuf самостоятельно, потому что в мире управления NW такого стандарта не будет.

Если ваше внимание сосредоточено на времени, и вы просто хотите получить код, то я лично рекомендую использовать чистый protobuf. Это упростит ваше решение, и вы сможете в полной мере воспользоваться преимуществами большого сообщества protobuf. Конечно, у YANG есть свои преимущества, и он тесно связан с реальными протоколами управления СЗ, но он также сложен и менее популярен, так что вы, вероятно, потеряетесь во всех его особенностях.

Другие вопросы по тегам