Esta imagem mostra a arquitetura distribuída para implantar o GitLab para ativar pipelines de CI/CD no OCI. Mostra um único domínio de disponibilidade dentro de uma região OCI. Dentro deste domínio de disponibilidade estão duas sub-redes públicas e uma única sub-rede privada. Todas as três sub-redes são protegidas por uma rede virtual na nuvem (VCN).

As sub-redes públicas são endereçadas 10.0.0.0/24 e 10.0.1.0/24. A sub-rede pública 10.0.0.0/24 contém um servidor bastion e a sub-rede pública 10.0.1.0/2 contém um balanceador de carga. Ambas as sub-redes públicas podem acessar a nuvem, fora da VCN, por meio de um Gateway de Internet.

A sub-rede privada, endereçada 10.0.2.0/24, contém
  • Dois servidores GitLab,
  • Um servidor Gitaly x2,
  • Um servidor Prometheus + Grafana,
  • Um banco de dados Postgres,
  • Três executores do GitLab e
  • Um servidor Redis.
Um servidor Gitlab se conecta ao servidor bastion na sub-rede pública; ambos também se conectam ao balanceador de carga. O servidor Gitaly acessa a nuvem por meio de um gateway NAT, enquanto o servidor Prometheus + Grafana usa um gateweay de serviço para acessar o armazenamento de objetos externo ao VCN. Esse armazenamento de objetos contém dados como backups, artefatos, diferenças externas, uploads de LFS, pacotes, proxies de dependência e páginas de estado do Terraform.