Question:
Are there any benefits to mirroring our git repos outside of Azure devops for a small (~7) team of developers who all work in the same office?
Background Information
I'm a developer who also wears the "DevOps" hat when he has time to do so (all the time right now). We're looking at potentially moving from our self hosted and maintained instance of Gitlab to MS Azure DevOps. My manager has stated he's interested in keeping a "forest of git nodes" for a couple different reasons.
One was access control (don't allow certain people to access node 'A')
One was that we don't want all of our code in Azure for some reason
One is so that we have extra backups of our code base
One is because "that's what git was made for, several distributed remotes. That's how Linux does it"
If Azure goes down we can still commit to the Gitlab repo and push that up later.
I think it's easy to tell what MY opinion of us doing this is, but I'd like others input on pros vs cons of going about structuring our git repo's in a way like stated above. From what I can tell he's thinking about the repo structure in one of the two ways shown below:
My reasoning for wanting to not bother with the mirrored repo's are the following:
The entire teams works in the same office, so there's no distribution of associates over multiple geographic regions. I'm also not aware that it would be changing anytime soon.
Adds complexity to the development environment.
Increases the possibility of code being out of date on one (or both) remotes. (For some background, in times before I was hired source code was getting lost.)
Access Control is built into both Azure DevOps AND Gitlab, so we're not getting anything new by doing that.
MS Backup and data retention are MUCH MORE comprehensive than what we have going on currently. Moving to them would INCREASE our probability of recovering data in case of emergency.
Relatedly, MS SLA is much higher than anything that I can guarantee (99.9%). Switching to Azure gets us that SLA for "free".
Since we're using Git as VCS, we're already working in a "distributed" manner. We don't need a mirror / second remote to push code to when we have the code locally on our machines anyway. We would simply push when connectivity was restored.
Admittedly selfish but, I don't want to have to worry about keeping all these tools (Nexus, Gitlab, OpenProject, all of those in containers on an unsupported Linux server that I don't have direct access to) up to date and patched. I'd rather be doing what I was hired to do, which is program.
With all of the above being said, I'm still open to having my mind changed. I'm new-ish to the development field and am very aware that I could be missing something crucial on why we would need a mirror or multiple remotes.