The future of VyOS, part 2: the local GUI and the controller
The future of VyOS is bright! And we are happy to see more participants!
In the previous post, we talked about the release schedule, and in this post about our plans for UIs, we will talk in detail about the local GUI and the controller software.
Now that an HTTP API has been in place for quite some time already, you may be wondering why there’s still no web GUI. One obvious reason is that it takes time to design and develop. Another reason is that the current API is a one-to-one mapping of the command tree, and the command syntax is not set in stone—it’s occasionally redesigned. For configuration files, we have migration scripts, but automatic API request mapping will be much more complicated. Additionally, remote management tools may want to operate on a higher abstraction level anyway. For example, a fail2ban-like tool will want to tell the router to block a specific address, and such a tool has no reason to care about the exact syntax.
That is why we are working on a high-level API that would provide a stable abstraction level for common management tasks that will keep working as before even when underlying commands change.
The high-level API
The high-level API is tentatively set based on GraphQL rather than a REST approach since it’s more flexible and developer-friendly. These APIs will be extensible by third parties to add/extend the functionality (application and hardware-specific features)
The local GUI
The local GUI will be focused on making common tasks simpler to perform for beginner and non-tech users (read home users). It will be a task-focused interface with high-level concepts and configuration wizards that will let beginner users or “remote hands” quickly set up a router and then hand it over to more experienced network administrators or start learning about VyOS in depth. You can expect features useful for advanced users, though. We plan to add monitoring capabilities into the interface with a birds-eye view of the performance, health and other key metrics, and basic configuration settings to help a new administrator get familiar with the router setup and operational status quickly.
Advanced management functionality is not a goal, though. That’s better left to a separate project that is not embedded in the VyOS image.
The controller software
The controller software for managing multiple VyOS installations will be a separate software in the form of a virtual appliance (for self-hosted deployments) and SaaS (managed and semi-managed) that will use a mix of the high-level and low-level APIs to accomplish its tasks. Additionally, we plan to leverage cloud-based AI and ML for advanced capabilities.
We have no plans to make it a SaaS-only solution. However, certain functionalities that rely on cloud technologies will require external connectivity.
Since reliability is a critical requirement for any enterprise network management solutions, the controller will support redundancy and replication out of the box. It will also be an extensible platform with an open API for new components, much like VyOS itself, so that everyone can add their own functionality to meet their needs. Initially, we plan to cover common cases across our community (MSPs, Private networks/IoT, Enterprise multi-cloud) and be part of the VyOS Platform.
Managing large networks is a complex task, and there’s no easy and quick way to develop such a solution. Development of the controller software will take much longer than the development of the local GUI, but we’ll keep posting progress reports as we work with customers on it. A lot of things to handle, but it will be a great addition to VyOS itself.
That’s the plan for the GUIs in a nutshell.
In the next post (part 3), we will talk about our business model.