I'm currently in a process of providing our applications of a high availability capability.
Our applications have an auto update feature (using Mongeez) that ensures that the structure of all databases/collections/documents are on correct format for that application version.
The problem is that I'm having a hard time, on how to resolve the replication and versioning problem.
I'll use the following example to better explain the problem.
I need to update Application X to Application X2.0 on both servers without downtime, so I do the following:
- Stop Application XA
- Install the 2.0 version on Server A
- Launch Application X2.0A
- Application X2.0A automatically updates MongoDB to the 2.0 format
- Since we are using a MongoDB Replica Set, it automatically propagates the changes in all MongoDB instances
- PROBLEM!!!... Application XB is still running version 1.0 but it's using the 2.0 version of the databases/collections/documents structure
How can I solve this issue? What am I doing wrong in the previous "workflow"?