We took a brief look at the GitLab architecture in Chapter 1, Introducing the GitLab Architecture. It was explained that a GitLab Runner registers with a GitLab instance and waits for a job to execute. Unlike the individual components that are a part of the GitLab frontend application server, the runner has a very straightforward architecture. The communication between a runner and its GitLab host is basically one-way.
The Runner client architecture
Basic architecture
The main network communication is from the GitLab Runner to the GitLab CI, never the other way around. This is shown in the following diagram:
The behavior is best depicted by a sequence diagram like the following one:
When the GitLab Runner starts, it tries...