Thoughts on implementing redundancy and high availability flow vs application

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.

2 Likes

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.

2 Likes

Don't forget the disclaimer: "Other cloud services are available". :smiley:

A containerised version managed through a high-availability Kubernetees or similar container orchestrator would indeed likely be a relatively straight-forward way to go.

1 Like

Unfortunately I still depend 100% on Windows, a Powershell script seems to be the quickest way to solve this in the Windows environment