One significant con is finite resources.
My on-prem gitlab server ran out of disk space and my world nearly came crashing down. The Intel NUC is an i5 with 32GB RAM and 500GB SSD running CoreOS. There are several containers running in the docker config that include gitlab, gitlab-runner, haproxy, and mattermost. Each of those containers share all available RAM and SSD. So if one goes crazy then they all lose.
And that’s what happened to me. gitlab-runner does not really clean up after itself so this time it mashed the whole system. Also gitlab stores all of the container registries and backup archives. Right now a single collection of my registries if about 200GB. I have about that amount in backups too even though the source is only about 75M.
Following the documentation I managed to orphan all of my source code. One slight miscalculation and I could have lost years of work.
But I’m looking at my on-prem hardware and there simply is never enough.