tl;dr: I am suggesting a solution to turn Node-RED into a production-ready environment. Any thoughts? Negative & positive feedbacks are welcome.
Hello Node-RED community,
working in a professional industrial environment, I could not find anything close to what Node-RED is capable of. Proprietary solutions often achieve only half of it, and sometimes even hide Node-RED into boxes & act as if it's theirs (well sometimes it is theirs, as their employees work on the modules -- a warm thank you to them!).
I believe it's the strength of open source solutions: some people put their grain of salt and in the end there is a fully functional salt pond.
However for a production ready tool, I have to have:
- flows running in parallel without stomping on each other (a bug in a single node can stop an entire instance!)
- make sure some people may access dashboards and some other people may change flows or dashboards. Having user management in other words. Well Node-Red is somewhat capable of it, however:
- there need to be some modifications of the JavaScript functions distributing user rights.
- dashboard-only access must be controlled within the flows for advanced features.
- have version control. The "projects" feature was responding to this need and is good. However I may not want to have everybody scratch their head over ssh keys, git and such while still keeping a secure environment.
- and have some light, manual "git flow" and "DevOps" whereby development environment does not impede flows running in production. The strength of Node-RED is also that non-DevOps but hacky-minded people can develop complex scripts. Well if they have to set it up locally to avoid destroying what's in production, it adds struggle and reduce the efficiency of an organization with hackers here & there.
I thought my need was a bit too complex for just asking if such a "feature" request was possible, namely nicely separating instances and pushing specific & tested flows into production. In other words make it more than a home hacking low-code environment.
So I have decided to make a template for a docker-based stack and ask for your feedback.
It can run as-is, although you will need a Debian host reachable over a fully qualified domain name for it to function with little modification. All information can be found in the Readme.
I would like to know from the community if there are interests around such "professional" environment, and more importantly if there are other approaches undertaken which may be easier than what I have undertaken?
Any constructive critique is welcome!
Side note: I often hear that Node-RED weakness is its lack of efficiency. If you can spawn several instances using docker swarm or kubernetes, I'm wondering if it's really a problem as the money-intensive thing is people working on solutions, not scaling a cloud contract or adding RAM... And seeing it ending up in hard-to-maintain raspberry-pi-like boxes is killing the point.