GitLab is an application that consists of many components. The GitLab omnibus package makes it easy to run all these components on one physical server; however, there comes a time when one server is no longer enough to run GitLab. On a typical 4-CPU core machine with 16 GB of RAM, you can support about 2,000 users. Once you run an application on virtual hardware, it scales better (it is cheaper to reproduce virtual hardware); however, using more than 32 cores is still quite expensive and there comes a time when it is more economical to split up the functionality and scale horizontally. In this chapter, we will try to achieve this using Terraform and Ansible DevOps tools to deploy infrastructure as code. We will be using the Amazon Web Services (AWS) cloud offering as a backend.
You can build entire virtual infrastructures...