A combination of Node-RED and the alternative Node-RED dashboard UIbuilder is a powerful combination to rapidly build IoT solutions. However, this leaves one key question unanswered:
How do I deploy my Node-RED application into production on a large number of edge devices?
This can be easily achieved using the device management and automation platform qbee.io and combining this with a Github based workflow. This workflow is a continuous integration / continuous delivery pipeline. The overall process then works as follows:
- develop your Node-RED flow on your local machine
- develop your UIbuilder UI on your local machine
- push these as one or two repositories to Github master / production
- use Github runner Actions to automatically handle the files and push them to qbee.io through the available API
- then qbee.io will distribute the files to all edge devices (this is is basically a full CI/CD pipeline)
- log messages about successful deployments will be reported back
Let’s look at some of the advantages with this solution:
Deploy both flow files as well as credential and setting files. This allows to use Node-RED blocks with credentials and have them auto-deployed. Any committed change will be automatically delivered to all relevant edge devices and log information confirming a successful roll-out is collected. This way the combination of qbee and Github enables a continuous integration / continuous deployment (CI/CD) toolchain that allows to control the installed flows of Node-RED and UIbuilder files at the edge. Roll-backs are possible by just rolling back in Github. Managing flows and UI is possible on a fleet level, but can also be achieved on a group level allowing different devices to run with different Node-RED flows (for example if you want to run specific MQTT setups). The details are in the tutorials below:
Manage Node-Red and UIbuilder with Github