Dieses Bild zeigt die verteilte Architektur für das Deployment von GitLab, um CI-/CD-Pipelines in OCI zu aktivieren. Es zeigt eine einzelne Availability-Domain innerhalb einer OCI-Region an. Innerhalb dieser Availability-Domain befinden sich zwei öffentliche Subnetze und ein einzelnes privates Subnetz. Alle drei Subnetze sind durch ein virtuelles Cloud-Netzwerk (VCN) geschützt.

Die öffentlichen Subnetze sind 10.0.0.0/24 und 10.0.1.0/24 adressiert. Öffentliches Subnetz 10.0.0.0/24 enthält einen Bastionsserver und öffentliches Subnetz 10.0.1.0/2 enthält einen Load Balancer. Beide öffentlichen Subnetze können über ein Internetgateway auf die Cloud außerhalb von VCN zugreifen.

Das private Subnetz, Adresse 10.0.2.0/24 enthält
  • Zwei GitLab-Server,
  • Gitaly x2-Server,
  • Ein Prometheus + Grafana-Server,
  • Eine Postgres-Datenbank,
  • Drei GitLab-Läufer und
  • Ein Redis Server.
Ein Gitlab-Server verbindet sich mit dem Bastionsserver im öffentlichen Subnetz; beide verbinden sich auch mit dem Load Balancer. Der Gitaly-Server greift über ein NAT-Gateway auf die Cloud zu, während der Prometheus + Grafana-Server ein Servicegateweay verwendet, um auf Objektspeicher außerhalb des VCN zuzugreifen. Dieser Objektspeicher speichert Daten wie Backups, Artefakte, externe Diffs, LFS-Uploads, Packages, Abhängigkeitsproxys und Terraform-Statusseiten.