Scalable, Redeployable and Minimal Downtime

Description

Hello, I am designing out a new implementation of Rocketchat, one that is scalable, redeployable, and can have no down time (or close to it). I am reaching out to you guys to see how you guys do things. I

Tech I plan on using - Ansible and Docker (and docker-compose), deployed onto Centos 7 VMs. With the HA, I am looking to allow it to perform better and be capable of being upgraded on the fly without downtime.

The two ideas I have, and if it is way off please tell me.

Start with two Rocketcha nodes and one Mongo node clustered behind HAproxy.

The other idea I had is same as above, but instead have a Mongo instance on each Rocketchat node. I want to be able take down one Rocketchat node, upgrade it, take down the other and upgrade it with 0 downtime.

Are their complication with potentially having two different versions of Rocketchat up for a split second? Am I on the right track for HA Rocketchat? What am I not considering?

I appreciate all of the help. Thanks a lot guys!
Nate

We use https://github.com/helm/charts/tree/master/stable/rocketchat