cBackup - backup network equipment configurations

We created the cBackup application (from configuration backup) for working with network equipment configurations. In addition to directly backing up configs, you can track changes between their versions, which helps to localize the source of the problem when recovering from failures. cBackup is open source and distributed free of charge, including separately downloadable templates for supporting various network devices.
For whom?
cBackup was developed by admins for admins who don't need a heavyweight like NOC Project. In our work, we administer several thousand switches and routers, so maintaining the network configuration in proper order is a vital necessity. Hence the quite tangible parallels in the basic principles of work: discovery, as in monitoring systems of network infrastructure; somewhere already seen terminology in most sections; schedule management, as in crontab and so on.
What is already there?
The current version is available for download as a tar.gz archive, as well as in rpm and deb packages. Documentation available. The system was originally designed for Linux, but you can run it on Windows, although there is no official support yet. After installing the package or unpacking it on a prepared server, you will need to go through the installation in the system itself through the web installer. The documentation covers this process as thoroughly as possible, so installation and operation will not be described within the framework of the material in the PR hub. If you have any requests, I’ll tell you about the technical side of work and user cases in a separate article in the profile hub.
Briefly describe the architecture, the cBackup interface is a web application written in the Yii2 framework with a daemon written in Java 8 using Spring Boot. MySQL is used as the database, and Git is used for version control. The system that processes 1200 switches and routers feels quite comfortable on a virtual machine with two cores and two gigabytes of RAM, processing tasks of collecting configurations, STP and geo-maps in 30 streams. Hard disk space is also spent economically - for a year of use, the application folder with data takes 350 MB, and the database - 35 MB.

cBackup is free and licensed under the Affero GPL v3 license. Our plugins, updates and downloadable content with support for vendors and devices are also free. At the moment, the system interface supports English and Russian. There are no hidden payments, functional limitations and microtransactions and are not planned. However, our team is open for cooperation on deployment, requests for official support for business with SLA and for corporate support, including individual development.
Register of subnets and equipment, automatic search for new devices
cBackup can work both according to a manually predefined list of nodes, and also walk on specified subnets, discovering installed devices (discovery). Separately, you can exclude addresses from any processes and tasks. Hardware support is downloaded and installed from the official repository. If the server with the backup is located in an isolated network and does not have Internet access, you can upload files manually or add support for new equipment yourself.
By itself, managing the registry of subnets and equipment may seem overly tricky, but after working with different vendors, we made sure that everyone comes up with some kind of their own chips in protocols and processes. And it’s not even about STP, the implementation of which may differ from day to night, but about banal work with the command line via SSH. Therefore, infrastructure management is highly detailed, providing the ability to create plugins and factories for individual models and / or vendors, redefining interaction with a device or model at any stage.
Configuration Backup
Direct tasks for interacting with nodes are assigned to a system service that operates in multi-threaded mode. The service is an executable file in Java and does not use the system crontab, using only its own functionality. The daemon communicates with the core of the system through the RESTful API and, theoretically, can be generally transferred to a separate server, if necessary. Interaction with end devices is arranged in the form of sequences of commands with processing of received data, and can be implemented using Telnet, SSH, and SNMP v1 / v2 protocols.
Version control system
One of the main goals for us was to give the opportunity not only to read and restore the config from the backup as part of the disaster recovery, but also in the case of a fakap with the configuration to find the problem. Since a significant number of operators work with the equipment, the search and localization of changes was an extremely important task for us. In general, quite a lot of functions are assigned to Git in our system: version control of configurations, system update, downloading and updating of hardware and vendor support.
Plugins and APIs
We are convinced that every system should do its job. Therefore, if the name of the software contains the word 'backup', then it must first of all deal with the actual backup itself. Everything else is strictly optional. cBackup implements plug-in connection functionality, but at the moment there are only two of them - positioning a node on the map based on information in OID system.sysLocation.0 and rendering STP trees. If there is a real need and request, we will willingly add the required functionality. This also includes the API, which allows you to integrate cBackup with other services.
What will happen?
Initially, the project was written "for internal needs" and was essentially a remake from scratch of a self-written utility for saving switch configurations. Already in the process of refactoring, the idea came that the project could be useful outside our networks. The system has overgrown with a lot of new chips with an eye on universality, has received multilingualism and more serious documentation, and now it has gone public.
There are development plans, and on the board behind me is a roadmap for upcoming versions. But since at the moment cBackup covers all our needs, I would like to listen to the wishes of the community and users if someone starts using this software. Wishes and questions can be left in the mail, on our forum, in the issue tracker on Github or in our chat in Discord.
Among the key features in the queue for implementation we have: SNMP v3 support, IPv6 support, validation of configs according to the given rules, and import of nodes from external databases or APIs. Supplementing the list of supported equipment will be carried out at the request of users "on the job", fortunately, for this, updating the installed system is not required. We will try to make this process smooth, in the hope that no one will come up with any tricks greater than MikroTik. Also in the plans are changes in the architecture of the daemon to provide plug-ins and him.