Questa immagine mostra l'architettura distribuita per la distribuzione di GitLab per abilitare le pipeline CI/CD su OCI. Mostra un singolo dominio di disponibilità all'interno di un'area OCI. All'interno di questo dominio di disponibilità sono presenti due subnet pubbliche e una singola subnet privata. Tutte e tre le subnet sono protette da una rete cloud virtuale (VCN).

Le subnet pubbliche sono indirizzate a 10.0.0.0/24 e 10.0.1.0/24. La subnet pubblica 10.0.0.0/24 contiene un server bastion e la subnet pubblica 10.0.1.0/2 contiene un load balancer. Entrambe le subnet pubbliche possono accedere al cloud, al di fuori di VCN, tramite un gateway Internet.

La subnet privata, indirizzata 10.0.2.0/24, contiene
  • Due server GitLab,
  • Un server Gitaly x2,
  • Un server Prometeus + Grafana,
  • Un database Postgres,
  • Tre runner GitLab e
  • Un server Redis.
Un server Gitlab si connette al server bastion nella subnet pubblica; entrambi si connettono anche al load balancer. Il server Gitaly accede al cloud tramite un gateway NAT mentre il server Prometheus + Grafana utilizza un gateweay di servizio per accedere allo storage degli oggetti esterno a VCN. Questa memorizzazione oggetti contiene dati quali backup, artifact, differenze esterne, caricamenti LFS, package, proxy dipendenze e pagine di stato di Terraform.