I was thinking about a typical industrial data collection application that requires redundancy.
It would be better to simply create an application where, if one server fails, the other server just starts a new Node-RED instance with the same project, rather than having to modify files and handle redundancy within the flows. For example, using a heartbeat via UDP with Windows Server.
Has anyone done something similar?
Shameless Product plug
If you use FlowFuse, you have access to high availability option.
Thanks for the link! I wish all my clients used FlowFuse, but I'm still stuck with the old offline Windows setup haha. Still, I see that the way forward is to make the entire application redundant.
- create a docker image with your flow and node-red
- deploy your image to aws ecs (1 task def and 1 service def with many replicas and rules) + ALB (application load balancer)
all good
Whenever your flow changes, put your service in maintenance mode, then add a task revision with the new container and redeploy the service
Flowfuse is better if you dont want to manage an AWS account, and other infra resources you may need, like a db. They also have a bunch of other cool features.
Don't forget the disclaimer: "Other cloud services are available".
A containerised version managed through a high-availability Kubernetees or similar container orchestrator would indeed likely be a relatively straight-forward way to go.
Unfortunately I still depend 100% on Windows, a Powershell script seems to be the quickest way to solve this in the Windows environment