Разработка HTML-приложения для работы с YANG-моделями для встраивания в сетевую операционную систему с открытым исходным кодом SONiC

Описание

YANG — это язык моделирования данных, предназначенный для описания структуры и управления конфигурациями сетевых устройств. Он широко используется в таких сетевых технологиях, как NETCONF и RESTCONF, для унифицированного управления сетевыми ресурсами.

Сетевая операционная система с открытым исходным кодом SONiC (Software for Open Networking in the Cloud) нуждается в интуитивных инструментах для работы с моделями YANG. Разработка HTML-приложения для работы с YANG-моделями должна быть интегрирована в SONiC, обеспечивая удобный веб-интерфейс для визуализации, редактирования и валидации YANG моделей.

Это приложение должно предлагать пользователям возможности для навигации по структурам YANG, создания конфигураций и взаимодействия с NETCONF/RESTCONF API для управления устройствами через веб-интерфейс. Основное внимание должно быть уделено удобству работы и поддержке взаимодействия с различными сетевыми компонентами SONiC.

Текущее состояние

На данный момент SONiC поддерживает работу с YANG моделями через интерфейсы командной строки и внешние инструменты. Однако отсутствует интегрированный веб-интерфейс для прямого взаимодействия с YANG моделями. Это затрудняет процесс работы с моделями, требует специальных знаний и не поддерживает визуализацию сложных структур YANG.

Существующие решения для работы с YANG моделями, такие как pyang и yanglint, не интегрированы в SONiC и требуют сторонних утилит и библиотек для использования, что усложняет конфигурацию сети для конечного пользователя.

Сравнение с Yangster и Cisco YANG Suite

Рассмотрим два других популярных инструмента для работы с YANG моделями — Yangster и Cisco YANG Suite.

  1. Yangster: Это инструмент, предназначенный для текстового редактирования YANG моделей. Он предлагает визуальный редактор с подсветкой синтаксиса, автодополнением и навигацией по структурам YANG. Не предназначен для интеграции в сетевые операционные системы и взаимодействия с устройствами в реальном времени. Его основное назначение — это помощь разработчикам в написании и тестировании YANG моделей, тогда как требуемое HTML приложение должно быть встроено в SONiC и взаимодействовать с реальными устройствами через RESTCONF/NETCONF API.
  2. Cisco YANG Suite: Это графическое приложение для YANG моделями, созданный Cisco, который интегрируется с их сетевыми операционными системами и устройствами. Cisco YANG Suite предоставляет мощные инструменты для управления конфигурациями, тестирования RESTCONF/NETCONF запросов и генерации конфигураций для устройств Cisco. Cisco YANG Suite — проприетарное ПО, ориентированное на устройства Cisco и требует использования их экосистемы, тогда как требуемое приложение должно быть открытым и предназначенным для интеграции с различными открытыми сетевыми операционными системами.

Необходимо, чтобы разрабатываемое приложение было специализированным для ОС SONiC, предлагая поддержку интеграции с открытой сетевой архитектурой и возможность работы с YANG моделями на различных устройствах, что делает его более универсальным по сравнению с Cisco YANG Suite, но менее сфокусированным на разработку, как Yangster.

Как тестировать

Тестирование приложения должно включать следующие аспекты:

  1. Корректность работы с YANG моделями — проверка правильности парсинга и визуализации структуры YANG.
  2. Валидация синтаксиса — тестирование механизмов проверки моделей на предмет синтаксических ошибок и соответствия стандартам YANG.
  3. Интеграция с SONiC — проверка взаимодействия с компонентами SONiC через RESTCONF и NETCONF API.
  4. Удобство интерфейса — тестирование пользовательского опыта через проведение сценариев конфигурации сетевых устройств в SONiC.
  5. Нагрузочное тестирование — оценка производительности приложения при работе с большими моделями и при множественных параллельных запросах.

Тестирование должно проводиться как вручную с использованием реальных YANG моделей, так и автоматизированными средствами с помощью юнит-тестов и функциональных тестов для проверки взаимодействия с SONiC.

Этапы выполнения

  1. Анализ существующих решений: Изучение существующих инструментов работы с YANG моделями, а также их API для возможной интеграции.
  2. Определение функциональных требований: Визуализация YANG структур. Редактирование YANG моделей через веб-интерфейс. Валидация синтаксиса. Взаимодействие с SONiC через RESTCONF/NETCONF API.
  3. Разработка архитектуры приложения: Планирование интеграции с RESTCONF/NETCONF API для управления сетевыми устройствами через SONiC.
  4. Реализация интерфейса: Веб-интерфейс для работы с YANG моделями, включая поддержку визуализации древовидных структур и редактора кода.
  5. Интеграция с SONiC: Встраивание в интерфейс SONiC с поддержкой управления сетевыми устройствами на основе данных YANG моделей.
  6. Тестирование: Проведение функциональных тестов и проверка стабильности работы с реальными сетевыми моделями.
  7. Оптимизация: Улучшение производительности, добавление поддержки дополнительных возможностей, таких как автодополнение и подсветка синтаксиса.
  8. Документация и публикация: Подготовка документации для разработчиков и пользователей. Открытие проекта для сообщества.

Ожидаемые результаты

HTML приложение, встроенное в SONiC, которое позволит пользователям легко визуализировать, редактировать и валидировать YANG-модели. Оно должно интегрироваться с RESTCONF/NETCONF API и обеспечивать простое управление конфигурациями сетевых устройств.

Требования к студенту

Работа в основном предполагает создание веб-редактора кода с поддержкой визуализации, поэтому потребуются некоторые хотя бы минимальные навыки фронтенд-разработки. Также надо будет очень много читать, экспериментировать и разбираться, поскольку сама предметная область несколько нетипична для матмеха. Особой специфики SONiC или сетевых устройств, по крайней мере, на первых этапах разработки, скорее всего, не будет, но ориентироваться в мире Linux будет нелишне.

Не выбирайте эту тему, если вам нужно просто как-то закрыть практику, тут много нетривиальной работы!

Уровень

2 курс, 3 курс, Бакалаврская ВКР


Руководитель

Литвинов Юрий Викторович


Консультант

Литвинов Юрий Викторович


Источник

YADRO