Projekte
Die Isolationseinheit in Kisenon — Benennung, Lebenszyklus und Kaskaden-Semantik.
Ein Projekt ist der oberste Container in Kisenon. Jeder Branch, Endpoint, jede Rolle und Datenbank lebt unter genau einem Projekt.
Was ein Projekt besitzt
- Einen
main-Branch, automatisch zur Projekterstellungszeit erstellt. - Copy-on-Write-Speicher, auf dieses Projekt beschränkt. Kein anderes Projekt kann seine Pages lesen.
- Die zur Erstellung gepinnte Postgres-Hauptversion.
- Eine Region, zur Erstellungszeit gewählt und für die Lebensdauer des Projekts fest. Der Katalog listet die Auswahl.
Projektisolation
Speicher, WAL und Caches sind pro Projekt partitioniert; es gibt keinen gemeinsamen Schreibpfad zwischen Projekten. Endpoints aus verschiedenen Projekten können den Speicher des jeweils anderen nicht erreichen, selbst wenn ihre Compute-Pods auf demselben Node eingeplant sind — die projektbezogene Netzwerkrichtlinie und das Speicher-Authentifizierungs-Token sichern jede Page-Anfrage ab.
Dies ist die Grenze, auf die Sie sich für Compliance und Noisy-Neighbour- Isolation verlassen können. Branch-Grenzen innerhalb eines Projekts sind weicher: Branches teilen sich Speicher und erben die Pages des Parents, bis sie divergieren.
Benennung
Projektnamen sind benutzersichtbare Labels. Sie:
- Müssen 1–63 Zeichen lang sein.
- Matchen
^[a-zA-Z][a-zA-Z0-9_-]*$. Buchstaben, Ziffern,_,-; müssen mit einem Buchstaben beginnen. - Müssen nicht global eindeutig sein; eindeutig innerhalb Ihrer Organisation reicht.
Die interne Projekt-ID (eine UUID wie 3f2c8a1e-5b7d-4c90-9e12-6a4b8d0f1c23) ist es, worauf jede andere Ressource
verweist. Das Label ist für Menschen.
Postgres-Version
Sie wählen die Hauptversion zur Erstellungszeit. Unterstützt werden 17 und 18; der Standard ist 18.
Einmal gesetzt, kann sie nicht an Ort und Stelle geändert werden — ein Hauptversions-Upgrade
ist eine Out-of-Band-Migration, die wir dokumentieren werden, wenn sie landet.
Vorerst behandeln Sie die Version als unveränderlich.
Erstellen
Klicken Sie in der Web-Konsole auf New project, geben Sie einen Namen ein, wählen Sie die Postgres-Hauptversion und wählen Sie eine Region (das Dropdown ist standardmäßig auf Auto (nearest) gesetzt). Klicken Sie auf Create. Aus der CLI:
keon projects create --name my-app --pg-version 18Die Control Plane stellt Speicher bereit, erstellt den main-
Branch und gibt die Projekt-ID zurück. End-to-End dauert dies typischerweise
unter zwei Sekunden.
Löschen
Das Löschen eines Projekts kaskadiert durch jede Ressource, die es besitzt:
- Alle Endpoints auf jedem Branch werden gestoppt und entfernt.
- Alle Branches werden abgebaut.
- Der Speicher des Projekts wird entladen und seine Daten für asynchrone Kompaktierung und eventuelle Entfernung aus dem Object-Storage in die Warteschlange gestellt.
Die Kaskade ist unumkehrbar. Es gibt kein Undelete, und die Speicher-
Artefakte sind nach Beginn der Kaskade nicht aus der Konsole wiederherstellbar.
Nehmen Sie einen logischen Dump (pg_dump) vor dem Löschen, wenn die Daten
wichtig sind.
keon projects delete <project-id> --cascadeEs gibt keine Bestätigungsabfrage — der Befehl löscht sofort. Ohne
--cascade wird das Löschen mit 409 has_branches abgelehnt, wenn das Projekt
außer main noch einen Branch hat oder main Snapshots besitzt; ein Projekt,
dessen einziger Branch main ist, wird samt main gelöscht.
Verwandtes
- Branches — Copy-on-Write-Kinder eines Projekts.
- Endpoints — Postgres-Frontends, die sich an einen Branch anhängen.
- Connection-Strings — Wire-Format.