Skip to main content

Foundation Factory

Übersicht

Die Foundation Factory ist eine zentrale Automatisierungsstruktur, die den Aufbau und Betrieb der gesamten Google Cloud Plattform (GCP) Foundation eines Unternehmens sicherstellt. Dabei kommen Terraform und GitOps-Prinzipien zum Einsatz.

Ziel ist es, eine skalierbare, wartbare und mandantenfähige Struktur aufzubauen, bei der alle GCP-Komponenten – von Organisationsebene bis zu projektspezifischen Ressourcen – infrastrukturell als Code verwaltet werden.


Repository-Struktur

1. <root>-FF-GCP-FOUNDATION-GITOPS

  • Einziges Repository, das manuell erstellt wird

  • Verwaltet zentral alle nachgelagerten GitOps-Repositories der Foundation.

  • Führt Terraform-Code aus, um:

    • GitOps-Repositories für die Foundation zu erstellen (<root>-ff-gcp-gitops)

    • GitOps-Repositories für die Project Factorys zu erstellen (<kunde>-pf-gcp-gitops)

💡 Hinweis: <ROOT> steht für das zentrale IT Unternehmen.


2. <root>-FF-GCP-GITOPS

  • Wird vom ROOT-FF-GCP-FOUNDATION-GITOPS erstellt

  • Verwaltet sämtliche GitOps-Repositories der Google Cloud Foundation Layer.

Erstellt folgende Repositories (Können weitere jederzeit ergäntzt werden):

Repository Name Funktion
<kunde>-ff-gcp-billing-alerts Billing Alerts und Budgets konfigurieren
<kunde>-ff-gcp-vpc-[n] Virtual Private Clouds (Netzwerkstruktur)
<kunde>-ff-gcp-cloud-identity-groups Identity-Gruppen & IAM-Berechtigungen
<kunde>-ff-gcp-public-dns Public DNS Zonen & Records
<kunde>-ff-gcp-organization-hierarchy Organisationsebenenstruktur (Folder)
<kunde>-ff-gcp-organization-policies Org Policies (Constraints, Restrictions)
<kunde>-ff-gcp-project-factory Project Factory Verwaltung für Kundenprojekte
<kunde>-ff-gcp-custom-roles Definierte benutzerdefinierte IAM Rollen
<kunde>-ff-gcp-fortigate-firewall Firewall-Regeln (z. B. Third Party Integration)

🛡️ Berechtigungen auf Organisationsebene werden nicht automatisch über Gitops vergeben und müssen manuell erfolgen!


Project Factory

3. <KUNDE>-PF-GCP-GITOPS

  • Wird vom Foundation GitOps Repository (<kunde>-ff-gcp-gitops) erstellt

  • Erstellt die Service Projects in dennen der Gesamte Code des jeweiligen Projektes abgebildet ist (<kunde>-gcp-<project-name>)

  • IAM-Service Accounts werden generiert

4. <KUNDE>-PF-GCP-PROJECT-FACTORY

  • Terraform-Repository zur eigentlichen Erstellung der GCP-Projekte

Service Projects

5. <KUNDE>-GCP-<PROJECT-NAME>

  • Echte Kundenprojekte, z. B. SAP-Systeme, Data Lake, etc.

  • Enthält Terraform-Code für:

    • Projektinterne Ressourcen

    • Weitere IAM-Konfiguration

    • Speicher, Netzwerk, GKE, etc.


IAM & Berechtigungen

Bereich Verwaltet durch Beschreibung
Organisationsebene Manuell Wird per Hand vergeben indem man den nötigen Principel einer jeweiligen Gruppe zuweist.
Projekt & Folder IAM GitOps via Terraform Wird automatisiert über GitOps-Repos geregelt
Service Accounts Automatisch erstellt Durch GitOps-Repositories

GitOps Flow – Zusammenfassung

  A[<root>-FF-GCP-FOUNDATION-GITOPS] --> B1[<KUNDE>-FF-GCP-GITOPS]
  A[<root>-FF-GCP-FOUNDATION-GITOPS] --> B2[<KUNDE>-PF-GCP-GITOPS]
  B1 --> C1[Billing, VPC, Identity, Policies...]
  B2 --> D1[<KUNDE>-PF-GCP-PROJECT-FACTORY]
  B2 --> E1[<KUNDE>-GCP-<PROJECT1>]
  B2 --> E2[<KUNDE>-GCP-<PROJECT2>]

Vorteile dieser Struktur

  • Modularisierung: Trennung von Foundation, Project Factory & Kundenprojekten

  • Wiederverwendbarkeit: Templates können auf beliebige Kunden repliziert werden

  • GitOps-Konformität: Änderungsverfolgung über GitLab Repos

  • Skalierbarkeit: Neue Mandanten/Kunden können leicht hinzugefügt werden

  • Sicherheitskonform: Rollen- und Berechtigungsstruktur zentral steuerbar