We are working on deploying our in development gateway work to some temporary field servers (Intel NUC) that we are sending out as the field team does Cx work on the hardware we are controlling. It also allows the client some time to "view" the work we are doing, and give us feedback at their leisure, versus just during calls where we drive. The issue we are having right now is that the site team sometimes makes adjustments, and our office based dev team is obviously still developing. Right now, we occasionally push a gateway backup from the dev environment to the site team, but lose anything they forget to tell us to drag over. Plus, it's obviously currently a manual process.
We have discussed doing some scripts/task scheduler, or something equivalent, but realized almost as soon as that was suggested, that we risk losing anything that didn't get synced back to the Dev server.
We are actively discussing some sort of GIT/GIT like system, but wondering if that is the best option, and also just is there a better way to sync between 2 instances. Our experiments with the Primary/Backup redundancy looks like the "redundant" server is "dead" if the primary is alive, so that doesn't work, as we need both working.
The NUCs we bought intentionally were not "server grade", so currently more than ~5 users (in designer) on the NUC brings it to a crawl. And we have more than that on the project currently, with the ability to surge to 4+ times that many sessions, so the NUC is way outclassed by the workload of handling the load alone. We are looking at potentially upgrading the NUC's, but we don't want to be deploying actual servers. Part of the reason for the NUCs being "weak" is to force the client to NOT try and get us to just leave the NUC as the final hardware.
Before anyone asks, we are running designer on the NUC, as most of our dev team is NOT local, and we haven't found the right mix of VPN to allow them to remote connect designer. And we don't really want to either. The intent of this post is to remove that need at all. Let our office team work on the dev server, and "push" the update(s) to the site team as needed, and preferably incrementally. Or just properly sync the 2, so it feels like both teams are working on the same version at all times, (minus a few seconds for the data transfer obviously).