How to best keep several environments in sync
I'd like to share a question that was recently raised by a user as I think it could be interesting for our community members.
Question:
We have two physical environments - Dev and Prod VMs and we have promoted all the objects from Dev to Prod environment (Export and Synchronised). Over time, Dev has gone through several changes with objects being created, deleted or updated.
So in order to get Dev and Prod in sync, we exported all the objects from Prod and synchronised them in Dev. They all seem to get recognised (current version and new version) and updated after metadata sync. But there were several unknown objects, mainly reusable functions and all globally shared functions (with all spaces). And even though we synchronised all the Function specific spaces first and then other dependent spaces where the function is used after, the problem still persists.
Is there a best practice around how two environments can be kept in sync without encountering these issues, especially avoiding "Unknown" objects even though the object exists? It seems to be a recurring issue especially when we have multiple environments involving promotion (metadata sync).
Answer:
The most common cause of failing to match objects is if someone has used 'import' rather than 'sync' for those objects. Solutions are the best way to minimize the risk of mistakes. So, it's a good tip to "Synchronise" rather than "Import" objects if you want those two environments to be in sync. Also, the advantage of using "Solutions" to deploy going forward is that one can include more than one Space with dependencies, thus avoiding issues related to unknown objects. They were not included in the metadata migration previously (one Space at a time) and had to follow a sequence to avoid such errors.
We have made some improvements to Solution deployments in 2.14.11 and above.
If you'd like to learn more about solutions this is the documentation page: Data Quality user documentation | Manage Solutions (experianaperture.io)