I have been receiving different answers to this question. Some experts are hesitant and lean towards using Node-RED only for prototyping in case of industry applications because they think they can write more efficient code that uses much less of the cpu and also have more control over security, while others are proposing it's a good idea to continue using Node-RED from prototyping to production in industry applications in which case you have a very short time from prototype to product and can make very quick changes to your flows when needed.
I thought I would ask here and see what actual Node-RED developers themselves and top users have to say about using it in a production environment (IoT industry applications). I look forward to reading all inputs and thanks all in advance!
@zaher it very much depends on your particular requirements.
Node-RED will never be as efficient as code that has been highly optimised for a particular use case/device/application. But highly optimised code like that does come at a cost of development time and expertise.
NR does get pidgeon-holed as a prototyping tool, and there's nothing wrong with that, especially if your prototype works and you are happy to keep running in production. But there are also plenty of examples of commercial IIoT solutions and products that make use of Node-RED (Multitech, Opto22, Ruckus, iaConnects to name just a few). That is evidence enough of the viability of using it in production.
@knolleary Thanks for your thoughtful response! So I understand there are commercial products that offer Node-RED as part of their development platform like Multitech, but I feel like that's more for getting developers to prototype something quick to learn about their product's capabilities. Are there commercial products that have designed a commercial IIoT solution using Node-RED?
Hi, It's not obvious from any of them that once you have "prototyped" the gateway functionality that you are then expected to replace it with some other code.
If you need large systems you can buy solutions from Hitachi in Japan - https://js.foundation/announcements/2017/08/09/hitachi-announces-commitment-to-node-red
and Siemens in Germany - https://www.dex.siemens.com/mindsphere/applications/Visual-Flow-Creator
Well, we have been using it at work as a part of our SCADA solution for some time now, and it's definitely suited for production environments. If your major workload is IO-related and data processing in a heterogeneous environment, then Node-RED and NodeJS in general are worth a try.
Plus, the Node-RED developers take great care of backward compatibility, I have never experienced any major issues when upgrading.
I gave an overview of our use-case here: Increase canvas size? (supersize flows!)
i also need some informations about using node-red in production.
My product (prototype) contains a dashboard where i can control different components like temperature sensors, start/stopping motor, send command to relays etc, it works well but i'm not sure to go in production with node-red because i'm not sure about security. My previous product was working with a traditionnal card with micro-controller, it was working well too but with node-red, connecting to some components with modbus, creating dashboard.... i find it's easy. Going in production with ND, i need more feedback from ND users.
That depends on the specific use-case. Controlling physical actors like motors are completely different things in the context of mechanical engineering vs. a window shutter at home. For example, I wouldn't control a manufacturing line with Node-RED, that's where a real PLC or microcontrollers come into place. There are issues like personal safety, real-time critical processes, etc...
Nick and I were visiting a factory last week - where they control the entire production line, order scheduling system, monitoring and optimisation using Node-RED. They use a custom shield to provide I/O isolation and failsafe - the whole operation runs on over 100 Pi .
Now I, and I am sure many others would love to hear more about that!
Nice! Another proof of the power and flexibility that Node-RED and NodeJS can provide.
I wonder if that would pass the safety regulations here in Germany.
Controlling things like KUKA robotic arms, laser processes, pneumatic systems or other physical processes are a completely different thing regarding safety (not failsafe).
Matthias, "where they control the entire production line" would imply that they do have the safety aspect under control.
Yes, you would have to. What I meant was, Node-RED is perfectly fine for higher level logic such as a SCADA system, communicating with the PLCs.
Would love to know more about that visit, if possible.
No PLCs used at all... multiple redundant Pi with backups.
(But also no "heavy" machinery, robots, lasers or devices that threaten human life
Ah, very nice, none the less.
We are using standard (industrial) PCs, but mainly due to customer restrictions. In some cases even a RPi would suffice in terms of processing power as well. I am still being impressed by the message throughput Node-Red can handle even on that hardware.
Not at all. Node-RED is provided as the primary way of specifying rules on the devices. Nothing about prototyping - real production usage out of the box.
You can read more on the Raspberry Pi blog here: https://www.raspberrypi.org/blog/sustainable-clothing-with-rapanui-and-raspberry-pi/
Interesting! The Siemens example, is that a "clone" of NR? Or what, it is very look-a-like anyway
For production systems, one thing is the software but very important the platform it runs on. For the RPi family, I would not use them as long as there is no version design available where the sd card is replaced (or any other platform/controller depending on a sd card either). So personally, I trust NR more as being a carefully selected part of a production systems but I would not trust RPi's unless they can/are configured in such a way that they don't use sd cards
Sadly enough, I have had a number of sd card crashes in my Pi's during the years, so learned my lesson, in each Pi I now have a second sd card with a micro reader, taking full backups when I make (major & sometimes minor) changes using the excellent tool "SD Card copier". It saves your day when you suddenly notice the Pi is not able to boot any more
You don't have to use the sd card to boot from.
How to? I did not know, interesting
Thank you, time to dive into this!