Best practice to set up a (small) staging environment


how do you setup a staging environment? Ok, this is a very open question. Let’s assume we have a giant database in Atlas. The simplest way to get a staging environment would be to just copy the db in Atlas. If money is not issue we are done at that point. :slight_smile:

If cost reduction is an issue we need an other solution. This is actually a decades old problem and every time it has hit me it was either copy as mentioned above or start scripting to get a kind of consistent subset of data in a smaller database.

A further option could be to use some old local hardware and restore a full dump out of Atlas locally. Not smart, would work but you still need the hardware…

So back to the part were a consistent subset is copied to a new database… Before reinventing the wheel I like to find out if there is some best practice out there? Consistency depends on relations, relations are not physically stored in a noSQL schema, so IMHO there is no way to use any kind of automation to get related data consistent and automatically as an dump. So we are back to a scripted solution?

How do you approach this issue ?