Architecture and Scalability

GitLab (fewer requirements)
GitLab, as it allows horizontal scaling
Minimum hardware requirements: 4 vCPU and 4 GB RAM support up to 500 users. No specific recommendation for disk size.
Gitlab is a modular application, built of a number of components like GitLab Workhorse, Nginx, Redis, Gitaly, PostgreSQL, etc. In the basic configuration the components can all exist in a single node, but to scale, they can be distributed to separate nodes. One or more nodes can be dedicated to the same component (e.g., two or more Gitaly storage servers). To install a single component on a node, install the same Omnibus image and then activate only that component by editing the Gitlab configuration file (gitlab.rb). Horizontal scaling is supported for App Server nodes without downtime. It could be configured in an automatic way like the example for HA installation of GitLab on AWS.
Supporting up to 3000 users, requires 8 vCPUs, 48 GB RAM, 300 GB attached storage, 200 GB root storage.
GHES is a monolith, which cannot be split into a number of components. The only way to scale it is to move to a bigger server (vertical scaling requiring downtime).