Services bereitstellen
Dieser Leitfaden bietet einen umfassenden Überblick über den Lebenszyklus eines Managed Service in Codesphere. Er beschreibt die praktischen Schritte zum Bereitstellen, Konfigurieren, Warten und schließlich Löschen von Services.
Managed Services bereitstellen
Das Bereitstellen eines Managed Service kann über die Codesphere-UI oder die öffentliche API erfolgen.
Ein Managed Service kann entweder eine eigenständige Deployment sein oder in den Landscape-Lebenszyklus integriert werden. Dieser Leitfaden behandelt die Bereitstellung eines eigenständigen Service. Informationen zur Bereitstellung von Services als Teil einer Landscape findest du im Abschnitt Managed Services in Landscapes.
- UI
- API
-
Navigieren: Gehe zum Tab Managed Services.

-
Auswählen: Wähle den gewünschten Service-Provider aus dem Katalog. Services sind mit Kategorien gekennzeichnet (z. B. Database, Cache). In diesem Beispiel wählen wir PostgreSQL. Klicke auf „Start Setup“.
-
Konfigurieren: Ein Konfigurationsdialog erscheint. Lege die anfänglichen Parameter fest. Nicht erforderliche Parameter können auf ihren Standardwerten belassen und bei Bedarf später aktualisiert werden. Manche Parameter (wie der Benutzername in diesem PostgreSQL-Beispiel) haben spezielle Anforderungen. Fahre mit der Maus über das Info-Symbol, um mehr zu erfahren. Klicke auf „Define Secrets“, um fortzufahren.

-
Secrets: Die meisten Services benötigen Secrets. Generiere diese auf deinem Rechner und gib sie hier ein. Codesphere zeigt dir diese Secrets nach diesem Schritt nicht erneut an, also stelle sicher, dass du sie sicher speicherst. Falls du sie verlierst, musst du die Secrets zurücksetzen, was zu einer Ausfallzeit des Service führt. Klicke auf „Create Service“, um fortzufahren.

-
Bereitstellen: Nach dem Klick auf „Deploy“ beginnt Codesphere mit der Bereitstellung der Ressourcen. Wechsle in der linken Seitenleiste zum Tab Managed Services, um den Fortschritt zu verfolgen. Statusanzeigen aktualisieren sich, während der Service von
CreatingzuSynchronizedwechselt.
Nutze das Ereignisprotokoll, um weitere Details zum Bereitstellungsprozess zu erhalten. Bei Problemen während der Bereitstellung liefert das Ereignisprotokoll Einblicke, was schiefgelaufen ist und wie es behoben werden kann.

Du kannst einen Managed Service über den Endpunkt POST /managed-services erstellen.
curl -X POST "<your-codesphere-instance-url>/api/managed-services" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"teamId": 123,
"name": "my-postgres-db",
"provider": {
"name": "postgresql",
"version": "15"
},
"plan": {
"id": 1,
"parameters": {
"storage": 10
}
},
"config": {
"max_connections": "100"
},
"secrets": {
"password": "secure-password",
"username": "admin"
},
"backups": {
"enabled": true,
"intervalH": 24,
"deleteRetentionDays": 7,
"config": {
"endpointUrl": "https://s3.eu-central-1.amazonaws.com",
"destinationPath": "s3://my-codesphere-backups/"
},
"secrets": {
"accessKey": "YOUR_S3_ACCESS_KEY",
"secretKey": "YOUR_S3_SECRET_KEY"
}
}
}'
Parameter:
teamId(integer, erforderlich): Die ID des Teams, in dem der Service erstellt wird.name(string, erforderlich): Ein eindeutiger Name für deinen Service.provider(object, erforderlich):name: Der Name des Service-Providers (z. B.postgresql,redis).version: Das Versions-Tag (z. B.15).
plan(object, erforderlich):id: Die Plan-ID.parameters: Planspezifische Parameter (z. B. Speichergröße in GB).
secrets(object): Schlüssel-Wert-Paare geheimer Service-Zugangsdaten.backups(object): Konfiguriere automatisierte Backups. Für Provider, die dies unterstützen. Details siehe Managed Service Backups.recoverFrom(object): Startet die Instanz automatisch über ein Point-in-Time-Backup-Objekt oder ein bestimmtes Backup. Erfordertbackups-Konfiguration und Secrets. Siehe Managed Service Backups.
Vollständige Schema-Details findest du in der API-Dokumentation.
info
API-Endpunkte stehen für alle Lebenszyklus-Operationen zur Verfügung, einschließlich Deployment, Konfigurationsänderungen, Pausieren und Löschen.
info
Die Bereitstellungszeiten variieren je nach Service. Komplexe Datenbanken können einige Minuten benötigen, bis sie vollständig einsatzbereit sind.
Wie geht es weiter?
Sobald dein Service läuft, gehe weiter zur Managed Service Provider Reference, um zu erfahren, wie du auf diesen spezifischen Service von deinem Workspace aus zugreifst.
Aktualisieren / Konfigurieren
Du kannst die Konfiguration eines laufenden Service anpassen, um auf veränderte Anforderungen zu reagieren.
- UI
- API
- Finden: Suche den bereitgestellten Service, den du aktualisieren möchtest.
- Einstellungen öffnen: Klicke auf das Zahnrad-Symbol rechts in der Tabellenzeile, um die Detailansicht des Service zu öffnen.
- Ändern: Navigiere zum Tab Configuration und klicke auf Edit Configuration. Dadurch werden die konfigurierbaren Parameter zum Bearbeiten freigegeben. Beachte, dass nicht jede Option, die im Erstellungsprozess verfügbar war, auch zum Aktualisieren verfügbar ist. Wenn du einen nicht bearbeitbaren Parameter ändern musst, musst du den Service löschen und mit der gewünschten Konfiguration neu erstellen.

- Anwenden: Klicke auf Save, um die Änderungen zu übernehmen. Der Servicestatus wechselt während der Anwendung der Änderungen von
SynchronizedzuUpdating. Nach Abschluss kehrt er zuSynchronizedzurück. Weitere Details zum Aktualisierungsprozess findest du im Ereignisprotokoll.
Du kannst einen Managed Service über den Endpunkt PATCH /managed-services/{id} aktualisieren.
curl -X PATCH "<your-codesphere-instance-url>/api/managed-services/YOUR_SERVICE_ID" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"config": {
"max_connections": "200"
},
"plan": {
"id": 2,
"parameters": {
"storage": 20
}
},
"secrets": {
"password": "new-secure-password"
},
"backups": {
"enabled": true,
"intervalH": 12,
"deleteRetentionDays": 30,
"config": {
"endpointUrl": "https://s3.eu-central-1.amazonaws.com",
"destinationPath": "s3://my-codesphere-backups/"
},
"secrets": {
"accessKey": "YOUR_S3_ACCESS_KEY",
"secretKey": "YOUR_S3_SECRET_KEY"
}
},
"version": "1.2.0"
}'
Parameter:
id(string, Pfadparameter): Die UUID des zu aktualisierenden Managed Service.config(object, optional): Konfigurationsänderungen.plan(object, optional):id: Die neue Plan-ID.parameters: Aktualisierte Planparameter (z. B. Speicher).
secrets(object, optional): Aktualisierte Secrets.backups(object, optional): Konfigurationen für automatisierte Backups.name(string, optional): Neuer Name für den Service.pause(boolean, optional): Auftruesetzen, um den Service zu pausieren.version(string, optional): Das neue Versions-Tag (z. B.1.2.0). Weitere Details siehe Abschnitt Upgrade auf eine neue Version.
Vollständige Schema-Details findest du in der API-Dokumentation.
warnung
Manche Konfigurationsänderungen können einen Neustart des Service auslösen, was zu einer kurzen Ausfallzeit führt.
Upgrade auf eine neue Version
Wenn eine Aktualisierungsanfrage eine Änderung des Versionsparameters enthält, löst dies ein Versions-Upgrade oder Downgrade aus. Den Fortschritt kannst du im Ereignisprotokoll des Managed Service verfolgen.
Bei REST-basierten Providern hängt der Upgrade-Prozess von der spezifischen Implementierung des Providers ab. Bei Landscape-basierten Providern läuft er immer wie folgt ab:
1. Git Checkout
Die gesteuerte Landscape führt einen Git Checkout der in der Provider-Definition für die neue Version angegebenen Git-Referenz durch. Dies kann ein Branch, ein Commit-Hash oder ein Tag sein. Der Git-Token des Benutzers, der die Aktualisierung ausgelöst hat, wird für den Pull vom Remote verwendet.
2. Neustart
Die CI/CD-Pipeline der gesteuerten Landscape wird neu gestartet (stop all gefolgt von run all). Das in der Provider-Definition für die neue Version angegebene CI-Profil wird verwendet. Der Service ist während der Dauer des Neustarts nicht verfügbar.
warnung
Bei einem fehlgeschlagenen Upgrade gibt es keinen automatischen Rollback. Teste den Managed Service nach dem Upgrade gründlich. Falls du Probleme feststellst, kannst du durch eine Aktualisierungsanfrage mit der vorherigen Version wieder ein Downgrade durchführen.
Pausieren
Codesphere ermöglicht es, bestimmte Managed Services zu pausieren, wenn sie nicht aktiv genutzt werden. Dies eignet sich ideal für Entwicklungsumgebungen oder Prototypen.
Funktionsweise
Nicht jeder Service unterstützt das Pausieren. Wenn ein Service pausiert werden kann, siehst du die Option unter den capabilities des Service. Die Capabilities lassen sich über den GET providers Endpunkt der öffentlichen API einsehen.
- Pause: Nimmt den Service offline und gibt die Compute-Ressourcen (CPU & RAM) frei. Der Servicestatus ändert sich zu
PausedoderStopped. - Resume: Stellt die Compute-Ressourcen erneut bereit und bringt den Service wieder online.
Landscapes pausieren ihre eigenen Services automatisch, wenn sie abgebaut werden.
- UI
- API
Aktuell wird das Pausieren von Managed Services nur über die Public API unterstützt. Nutze den API-Tab für Anleitungen.
Du kannst einen Managed Service pausieren, indem du seine pause-Eigenschaft über den Endpunkt PATCH /managed-services/{id} auf true setzt.
Service pausieren:
curl -X PATCH "<your-codesphere-instance-url>/api/managed-services/YOUR_SERVICE_ID" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"pause": true
}'
Service fortsetzen:
curl -X PATCH "<your-codesphere-instance-url>/api/managed-services/YOUR_SERVICE_ID" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"pause": false
}'
Datenpersistenz
Bei Codesphere-verwalteten Services wie Managed Storage oder Object Store bleiben deine Daten während einer Pause sicher. Das mit dem Service verknüpfte persistente Volume (Disk) wird nicht gelöscht. Beim Fortsetzen des Service wird es wieder mit demselben Volume verbunden, sodass alle Daten erhalten bleiben.
Landscape-basierte und benutzerdefinierte Provider
Dieses Verhalten gilt derzeit für eigenständige Managed Services. Bei Services, die in Landscape-Lebenszyklen integriert sind, oder bei benutzerdefinierten Service-Providern hängt die Datenpersistenz während der Pause von der jeweiligen Implementierung ab.
tipp
Das Pausieren nicht genutzter Services ist eine effektive Möglichkeit, Ressourcennutzung und Kosten zu optimieren.
Backups
Codesphere unterstützt automatisierte Backups und Point-in-Time-Recovery für bestimmte Managed-Service-Provider (wie PostgreSQL, Babelfish und Object Storage). Dadurch kannst du deine Daten sicher in einem externen S3-kompatiblen Service speichern.
Vollständige Anleitungen zum Konfigurieren automatisierter Backups, zum Ausführen manueller Backups und zur Wiederherstellung eines Service aus einem früheren Zeitpunkt oder einer Backup-ID findest du im entsprechenden Leitfaden Managed Service Backups.
Managed Services löschen
Das Löschen eines Service ruft den Löschendpunkt eines Managed-Service-Backends auf. Bei von Codesphere angebotenen Managed Services werden dadurch alle mit diesem Service verknüpften Ressourcen entfernt.
Wenn du eine Löschung auslöst, beginnt Codesphere immer mit einem Soft Delete. Der Service wird mit einem deletedAt-Zeitstempel markiert und wechselt in den Status Deleting.
Löschablauf
- Soft Delete: Der Service wird mit einem
deletedAt-Zeitstempel markiert. Der Servicestatus wechselt zuDeleting. - Abschließendes Backup (falls aktiviert): Wenn der Provider Backups unterstützt und Backups für den Service aktiviert sind, stellt der Reconciler sicher, dass nach der Löschinitiierung ein Backup geplant wird, und wartet, bis dieses Backup bestätigt ist, bevor fortgefahren wird.
- Löschung beim Provider: Der Reconciler sendet die Löschanfrage an das Provider-Backend, das Compute-Ressourcen und persistente Daten entfernt.
- Aufbewahrungszeitraum: Der Soft-gelöschte Servicedatensatz bleibt für einen Aufbewahrungszeitraum sichtbar und wird später durch den Bereinigungsprozess endgültig gelöscht (Hard Delete). Während dieses Zeitraums kannst du den Service weiterhin sehen, indem du in der Service-Tabelle „Show recently Deleted“ aktivierst.
- UI
- API
- Navigieren: Gehe zur Seite der Service-Tabelle.
- Löschen: Finde die Schaltfläche „Delete“ unter dem 3-Punkte-Menü.

- Bestätigen: Du wirst gebeten, die Aktion zu bestätigen, indem du den Namen des Service eingibst.
Du kannst einen Managed Service über den Endpunkt DELETE /managed-services/{id} löschen.
curl -X DELETE "<your-codesphere-api-endpoint>/managed-services/YOUR_SERVICE_ID" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Um den abschließenden Backup-Schritt zu überspringen und sofort mit der Löschung beim Provider fortzufahren, übergib forceDelete: true im Request Body:
curl -X DELETE "<your-codesphere-api-endpoint>/managed-services/YOUR_SERVICE_ID" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"forceDelete": true}'
Parameter:
id(string, Pfadparameter): Die UUID des zu löschenden Managed Service.forceDelete(boolean, optional): Beitruewird das Warten auf das abschließende Backup übersprungen und direkt mit der Löschung beim Provider fortgefahren. Standardmäßigfalse(normaler Löschablauf).
Vollständige Schema-Details findest du in der API-Dokumentation.
warnung
Das Löschen eines Managed Service ist endgültig. Dabei werden sowohl die Compute-Ressourcen als auch das persistente Datenvolume entfernt. Diese Aktion kann nicht rückgängig gemacht werden. Kürzlich gelöschte Services kannst du über die Checkbox „Show recently Deleted“ einsehen, sie können jedoch nicht wiederhergestellt werden.
Force Delete
Wenn ein Service im Status Deleting feststeckt, weil das abschließende Backup nicht erfolgreich ist (dies kannst du im Ereignisprotokoll prüfen), kannst du Force Delete verwenden, um das Warten auf das abschließende Backup zu umgehen und den Servicedatensatz sofort zu entfernen.
So löschst du einen Service über die UI zwangsweise:
- Öffne den Menüpunkt „Delete“ für den feststeckenden Service.
- Aktiviere im Bestätigungsdialog die Checkbox „Force Delete“.
- Gib den Servicenamen zur Bestätigung ein und klicke dann auf Delete.
gefahr
Force Delete umgeht Datensicherheitsprüfungen und führt zu dauerhaftem Datenverlust. Alle noch nicht gesicherten Daten sind unwiederbringlich verloren. Verwende diese Option nur, wenn der Standard-Löschablauf fehlgeschlagen ist und du das Risiko eines Datenverlusts akzeptierst.