Anni fa, GitHub permetteva solo progetti pubblici, per i repository privati dovevi pagare.
GitLab invece ti dava la versione on-prem con tutto lo scibile umano.
Nell'azienda in cui entrai nel 2016 installai quindi GitLab on-premises, un Docker Registry (ancora non era integrato), un Nexus on-prem, portai tutti i progetti su Git, un CA root e tante altre cosette interessanti,
GitLab non era perfetto ma faceva il suo sporco lavoro, e tutto il sistema era anni luce rispetto a quello che avevano in precedenza.
Alcune cose non tornavano, su alcuni bug stupidi la community si divideva, e sotto c'era una
codebase un po' legacy basata su Ruby on Rails).
Comunque, la possibilita' di avere i repo privati gratis batteva tutto.
Dopodiche', GitHub e' passato da 0 a 1 repository privato, poi a infiniti repository privati.
Nel frattempo ha aggiunto GitHub Actions (che ha ucciso le altre CI, perche' e' semplicemente meglio), GitHub Projects (che assieme a GitHub Issues competera' con JIRA), ed altro.
Oggi non ho dubbi che GitHub sia piu' avanti e con un futuro piu' roseo ed un'esperienza utente migliore.
GitLab e' comunque un gran bel prodotto e gli voglio bene, ma e' piu' artigianale e con meno potenza di fuoco alle spalle, ed alla lunga il debito tecnico si fara' sentire sempre di piu', temo.
Ricevo nella mailing list di GitLab degli aggiornamenti a dei thread a cui partecipavo 6-7 anni fa che ancora non sono stati risolti, per delle feature che il mio falegname con 30 mila lire te le aveva gia' fatte.
Sulle considerazioni fra on-premises e managed... ma vaaa? :D
Managed lo paghi ma costa meno di assumere i sistemisti, farsi la sala macchine, ecc... managed tutta la vita.
HTH