SONiC provides disparate choices for the configuration of the NOS. While different options are available and may look beneficial, there are challenges:
The user has to navigate between different shells such as Click CLI and FRR shell, JSON files, and .xml files to configure the switch.
The user cannot back up the switch configurations from a single place. FRR, config_db.json, and minigraph.xml configurations might be needed for a single switch.
The user must familiarize themselves with different configuration commands and syntaxes. For example, configurations that use the Python-based SONiC CLI are of a different format from the configuration that is done in the FRR shell.
The management and configuration of alerts can prove to be a challenge, without options for a cohesive way to send alerts.
Misconfiguration of a switch is possible if a user doesn’t update the relevant shell or config file when configuring a switch with existing configuration files.
A user requires root privilege to run the configuration commands for Python-based SONiC CLI.
With such challenges existing with current management models, there is a need for a comprehensive and centralized management framework.