GitLab is a modular, highly scalable application, distributed in a variety of packaged formats. When properly configured, it can accommodate from ten, to hundreds of thousands of users.
Our reference architectures can range from a default single-node installation to more complex clustered setup with different components for availability. We also provide increasing capabilities for availability, scaling, and data replication as customers upgrade to GitLab Starter, Premium and Ultimate.
It should be noted that our Omnibus distribution provides a reliable service even on a single server without any special configuration. As your organization grows, however, GitLab has the flexibility to expand according to your business needs.
All solutions come with a trade-off between cost/complexity and uptime. Each availability component comes with its complexity which requires domain knowledge to successfully set up and maintain. With this in mind, you should thoroughly analyze the benefits of a solution against its costs and your team's readiness. It is important that you always choose something that you have experience with.
A lack of experience with the underlying technologies may prevent you from achieving the desired uptime and a badly implemented solution can cause more downtime than it solves.
Properly configured, GitLab can address all of the above cases.
For technical implementation details, see our reference architectures documentation.
Helping you choose the configuration that is right for your business is something we take very seriously at GitLab. The information we provide here is a rough guide designed to help you get a feel for the required resources and expertise required to scale GitLab appropriately. When it comes to your specific situation, we prefer to assess it in its context. We strongly suggest you get in touch with us before setting it up. Support for HA and Geo are included with GitLab Premium and Ultimate. If you have any questions please contact us.