Using Node-Red for Enterprise Software

Hi,
"How do you ensure that your flows are robust and meet your SLA's and non-functional requirements for example? How do you manage scalability? DevOps and CI integration? Backup and recovery?"

Because we're using Node-RED to test (APIs & UI) of commercially-written software some of those elements are less-defined than on 'mega projects' like 'write an entire SalesForce clone'. But all of it is doable.

We use GitHub for source code management, versioning, backup & control. NFRs are covered exactly the same as any other app: discuss, document, and show how you meet them. Catch failures and then harden your code.

Robust flows comes from pull request reviews and frequent examination of your results / work products.

Scalability is solved by us by using a Node-RED daemon running on each machine in a cluster of virtual machines / AWS EBS instances that pulls a Node-RED project onto a machine and starts it executing. Each VM / EBS machine supports 4 separate instances of Node-RED concurrently. Those execute tests or tasks and return results back to MySQL or Aurora DBs. CI integration for us is a WebHook. You can also use simple CURL commands to get basic changes from Circle CI - both work very well with Node-RED.

Again, everything is specific to our use cases but the methods are pretty much standard across the industry. Currently we don't do autoscaling but it is on our radar - and will be implemented in Node-RED. Most of our dashboards / control panels are in Node-RED, but we're probably going to move to Grafana as it handles time-series very well which is 80% of our needs.

Selecting a tool for each purpose is not much more than a checklist. Getting them to work with Node-RED is pretty easy.

Convincing a development team to switch to a new tool without having the authority and expertise to make it happen is hard. Partial buy-in and a phased approach is best; it's what we used.