platform-docs/architecture/01-layered-provisioning.md

252 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tuxflotte Architekturentscheidung: Layered Provisioning
**Status:** Beschlossen
**Datum:** 07.07.2026
## Ausgangspunkt
Während der Entwicklung des Tuxflotte-Installers entstand die grundlegende Frage:
> Soll Tuxflotte selbst Betriebssysteme installieren oder die nativen Installer der jeweiligen Distribution orchestrieren?
Nach der Analyse der Projektziele fiel die Entscheidung eindeutig zugunsten der zweiten Variante.
---
# Architekturentscheidung
Tuxflotte ist **kein eigener Linux-Installer**.
Tuxflotte ist eine **distributionsunabhängige Workspace-Provisioning-Plattform**, die den nativen Installer der jeweiligen Distribution steuert und mit den notwendigen Informationen versorgt.
Die eigentliche Installation erfolgt immer mit den offiziellen Installationsmechanismen der Distribution.
Beispiele:
* Fedora → Anaconda / Kickstart
* Debian → Debian Installer / Preseed
* Ubuntu → Subiquity / Autoinstall
* Linux Mint → entsprechendes Installer-Backend
Dadurch bleibt Tuxflotte distributionsneutral und muss keine distributionsspezifischen Installationslogiken nachbilden.
---
# Grundidee
Der Administrator denkt nicht mehr in Distributionen.
Er denkt in Arbeitsplätzen.
Beispiele:
* Office Workspace
* Developer Workspace
* Kiosk Workspace
* Schulungsraum
* Labor
* CAD-Arbeitsplatz
Die verwendete Linux-Distribution ist dabei eine Implementierungsentscheidung und kein Bestandteil des eigentlichen Arbeitsplatzes.
---
# Layered Provisioning
Die Architektur besteht aus mehreren Schichten.
```text
Distribution
Backend
Organisation
Workspace
Benutzer (optional)
Runtime Blueprint
Nativer Installer
Provisioning Agent
```
---
# Verantwortlichkeiten
## Backend
Beschreibt, **wie** eine bestimmte Distribution installiert wird.
Beispiele:
* Fedora
* Linux Mint
* Debian
* Ubuntu
Ein Backend enthält ausschließlich distributionsspezifische Logik.
---
## Organisation
Beschreibt unternehmens- oder organisationsweite Vorgaben.
Beispiele:
* Zertifikate
* Paketquellen
* Proxy
* LDAP
* Keycloak
* Branding
* VPN
* Monitoring
* Compliance
Diese Einstellungen gelten unabhängig vom jeweiligen Workspace.
---
## Workspace
Ein Workspace beschreibt den gewünschten Arbeitsplatz.
Beispiele:
* Office Workspace
* Developer Workspace
* Secure Workspace
* Schulungsraum
* Kiosk
Ein Workspace beschreibt den fachlichen Zielzustand.
Nicht die Distribution.
---
## Benutzer
Optional können benutzerspezifische Einstellungen ergänzt werden.
Beispiele:
* Sprache
* SSH-Schlüssel
* persönliche Zertifikate
* individuelle Software
* Drucker
---
## Runtime Blueprint
Während der Installation erzeugt Tuxflotte automatisch ein vollständiges Runtime Blueprint.
Dieses entsteht aus:
Backend
*
Organisation
*
Workspace
*
Benutzer
Das Runtime Blueprint beschreibt den vollständigen Zielzustand der Installation.
Dieses Blueprint wird anschließend vom Backend in distributionsspezifische Installationsdaten übersetzt.
---
# Trennung von Fachlichkeit und Technik
Die Architektur trennt bewusst:
**Was soll entstehen?**
Workspace
von
**Wie wird es umgesetzt?**
Backend
Dadurch bleibt der gewünschte Arbeitsplatz unabhängig von der verwendeten Linux-Distribution.
---
# Erweiterbarkeit
Neue Distributionen werden ausschließlich durch neue Backends ergänzt.
Neue Kunden werden ausschließlich durch neue Organisationen ergänzt.
Neue Arbeitsplatztypen werden ausschließlich durch neue Workspaces ergänzt.
Der Kern von Tuxflotte bleibt unverändert.
---
# Langfristige Vision
Ein Administrator arbeitet ausschließlich mit Workspaces.
Beispiel:
Workspace:
Developer Workspace
Backend:
Fedora 42
Organisation:
Muster GmbH
Benutzer:
Max Mustermann
Tuxflotte erzeugt daraus automatisch das Runtime Blueprint und startet anschließend den nativen Installer der ausgewählten Distribution.
---
# Leitprinzip
> Administratoren verwalten Workspaces.
>
> Organisationen definieren Standards.
>
> Backends implementieren Distributionen.
>
> Tuxflotte orchestriert den gesamten Prozess.
Die Linux-Distribution wird dadurch zu einem austauschbaren technischen Detail, während der gewünschte Arbeitsplatz dauerhaft erhalten bleibt.