Ability to create mirror/snapshot clusters for load and behavior testing
We would like to request the following:
- The ability to create a "mirror" or "snapshot" of a production cluster to a staging cluster.
- This could be either real-time or scheduled (once per day, once per week, etc.) If scheduled, it would be nice to be able to spin up a new cluster each time it's mirrored (so that previous mirrored cluster remains available)
- The mirroring should be allowed to use a different hardware type, for example, our production cluster uses NVME disks, but our mirrored cluster we'd use cheaper HDDs with lower CPU.
- The mirrored cluster should be allowed to use a different MongoDB server version than the one it replicated from.
- When mirroring, have ability to exclude collections and exclude/mask certain fields within a collection (e.g. via an aggregation pipeline-like syntax)
- Ability to get API triggers when the mirrored cluster is copied and ready. We would use these triggers to perform additional actions such as switching our staging environment to point to the new cluster, inserting/removing data manually, etc.
- Have ability to mirror production cluster query traffic to the mirror cluster, i.e. for load-testing. This is particularly useful when upgrading database version, or experimenting with different instance types. Having the ability to "sample" queries (e.g. 1-out-of-10 queries gets mirrored) would be useful, and also to restrict any data insertion so the queries are read-only.
1
vote
Johnny Shields
shared this idea