0

We write software that lives in a git repository. We've sold this software to several companies. Each company has a virtual machine running one or more instances of our stuff inside their internal networks.

We currently use git bundles to push code updates out to remote servers for replication. (lots of these servers are behind enterprise firewalls so we have no better option for direct git communication)

That all works fairly well and simply.

On paper...

What actually happens though is that in order to update instances of our software, we have to pass local validation processes at each enterprise where we run. What that means in practice is that we seldom are able to run a production instance of our software on the absolute latest master release of our product in git.

So.. the "obvious" solution (we think) is a gitflow-esque method where we "simply" have multiple release branches, each corresponding to an actual running production instance of our software. This would allow us to have multiple instances each running disparate versions of our stuff all with different levels of hotfixes and whatnot as needed.

I put "obvious" and "sipmly" in quotes in that last paragraph because this solution doesn't seem to be either of those things. It seems rediculously cumbersome to have multiple release branches while trying to maintain what features and hotfixes are propogated to each one. Say we write a hotfix, do we then script up something to merge that hotfix into 50 'release' branches for distribution? That stinks right?

My question then is... what other solutions or recomendations might exist to solve this problem? I've heard rumbles of things called "continuous delivery" and "continuous deployment" software suites. Is that the world we need to be looking into to solve this problem for us? I think my real question here is whether solutions to this problem exist and what these solutions are called so I can direct my googles.

slumtrimpet
  • 3,159
  • 2
  • 31
  • 44
  • You should probably pitch this question to some devops experts where you can provide more detailed information. Sounds like your company has a good bit of technical debt in their processes and methodologies and really needs modernization. – Matthew Schuchard Nov 09 '16 at 13:54
  • @slumtrimpet FWIW, you *might* be interested in supporting the DevOps site proposal: http://area51.stackexchange.com/proposals/97295/devops. Until that site becomes a reality, SoftwareEngineering would probably be a better place for this question than SO: http://softwareengineering.stackexchange.com/. – Dan Cornilescu Nov 18 '16 at 00:57
  • How long would the typical customer qualification processes take? How often do they change? Is it feasible to communicate with your customers in order to exactly replicate their qualification processes in your own environment so that you can execute them as needed? I'd be IMHO a mutual advantage. – Dan Cornilescu Nov 18 '16 at 01:24
  • @DanCornilescu Thanks for the link over to the software engineering stackexchange. I found some close hits on my question over there without having to re-ask it: http://softwareengineering.stackexchange.com/q/57547/254106 – slumtrimpet Nov 18 '16 at 11:51

0 Answers0