I expect to have around 10 micro-services. Maybe 5 will be core services. I am implementing most of them in Java and a few in nodejs. I could use some advice about poly repo vs. mono repo for microservices.
By mono repo/poly repo you are referring to some sort of gitops ?
My pros / cons i came across
multiple repos:
cons
- no fast/easy way deploy the whole environment in case of DR
- maybe harder to allow/track global configs for specific environtments
pros
- works out of the box via the repos ci/cd pipeline most of the time
- devs see/know the whole process
single repo (per environment in my case)
pros
- easy DR deployments, whole environment can be deployed with a single click
- easy migration to a new/other cluster
- easy way to handle environment specific stuff in a single place
- you can build workflow logic for promotion between environments dev => qa => live vie merge requests and stuff
cons
- can be more complicated to operate
- can be hard for the devs because some stuff is still templated in their repos and handled later
- handling incoming commits/merges requests was a struggle for me as soon as lots of people startet contributing ( we handle around 60 - 100 services )
- needs more templating / env-var replacements i guess
this list can easily be extended, this was just from memory
We are deploying from repo to cluster, so deletes are a problem too… with a operator in the cluster you can handle that maybe better…