Architecture

  • Load Balancer: is used to route requests to GitLab components; for example, you can use an NGINX Ingress controller or an ALB.
  • GitLab Pages: is a feature that allows you to publish static websites directly from a repository in GitLab.
  • Gitlab Workhorse: is designed to act as a smart reverse proxy to help speed up GitLab as a whole.
  • GitLab Shell: is designed to handle SSH-based git sessions, and modifies the list of authorized keys.
  • Puma: is a Ruby application server that is used to run the core Rails Application that provides the user facing features in GitLab.
  • Sidekiq: is a Ruby background job processor that pulls jobs from the Redis queue and processes them.
  • Gitaly: is a service designed to remove the need for NFS for Git storage in distributed deployments of GitLab.
  • Redis: is used to store the session data, cache data, and background job data.
  • PostgreSQL: is used to store the data for the GitLab application.

For more detailed information about each component, please refer to the official GitLab documentation.