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 ein eigenständiges Deployment sein oder in den Landscape-Lebenszyklus integriert werden. Dieser Leitfaden behandelt, wie ein eigenständiger Service bereitgestellt wird. 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-Anbieter aus dem Katalog aus. Services sind mit Kategorien gekennzeichnet (z. B. Database, Cache). In diesem Beispiel wählen wir PostgreSQL. Klicke auf "Start Setup".
-
Konfigurieren: Ein Konfigurationsdialog wird angezeigt. Lege die anfänglichen Parameter fest. Nicht erforderliche Parameter können bei ihren Standardwerten belassen und bei Bedarf später aktualisiert werden. Manche Parameter (wie der Benutzername in diesem PostgreSQL-Beispiel) haben bestimmte Anforderungen. Bewege den Mauszeiger über das Info-Symbol, um mehr zu erfahren. Klicke auf "Define Secrets", um fortzufahren.

-
Secrets: Die meisten Services benötigen Secrets. Gib eigene Werte ein oder klicke auf die Schaltfläche zum Generieren neben einem Feld, um es mit einem zufälligen Wert zu füllen, der die Anforderungen des Feldes erfüllt. Codesphere zeigt diese Secrets nach diesem Schritt nicht mehr an, also stelle sicher, dass du sie sicher speicherst. Gehen sie verloren, müssen die Secrets zurückgesetzt werden, 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 überwachen. Die Statusanzeigen aktualisieren sich, während der Service von
CreatingzuSynchronizedwechselt.
Nutze das Ereignisprotokoll, um weitere Details zum Bereitstellungsprozess zu erhalten. Sollte es während der Bereitstellung zu Problemen kommen, liefert das Ereignisprotokoll Hinweise darauf, 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 '{
"resourceGroupId": 123,
"name": "my-postgres-db",
"provider": {
"name": "postgresql",
"version": "v1"
},
"plan": {
"id": 1,
"parameters": {
"storage": 512
}
},
"config": {
"version": "17.9"
},
"secrets": {
"userPassword": "secure-password",
"superuserPassword": "secure-password"
},
"backups": {
"enabled": true,
"intervalH": 24,
"deleteRetentionDays": 7,
"config": {
"endpointUrl": "https://s3.eu-central-1.amazonaws.com",
"destinationPath": "s3://my-codesphere-backups/",
"accessKeyId": "YOUR_S3_ACCESS_KEY"
},
"secrets": {
"secretKey": "YOUR_S3_SECRET_KEY"
}
}
}'
Parameter:
resourceGroupId(integer, erforderlich): Die ID der Resource Group, in der der Service erstellt wird.name(string, erforderlich): Ein eindeutiger Name für den Service.provider(object, erforderlich):name: Der Name des Service-Anbieters (z. B.postgresql,redis).version: Das Versions-Tag des Anbieters (z. B.v1).
plan(object, erforderlich):id: Die Plan-ID.parameters: Planspezifische Parameter (z. B. Speicherplatzgröße in MiB).
secrets(object): Schlüssel-Wert-Paare der geheimen Service-Zugangsdaten.backups(object): Konfiguration automatisierter Backups. Für Anbieter, die dies unterstützen. Weitere Details im Leitfaden Managed Service Backups.recoverFrom(object): Startet die Instanz automatisch über ein Point-in-Time-Backup-Objekt oder ein bestimmtes Backup. Bei der Wiederherstellung über eine Backup-ID sindconfigundsecretsdes Backup-Speichers optional; wenn sie nicht angegeben werden, werden die zuletzt gespeicherten Werte verwendet. Siehe den Leitfaden Managed Service Backups.
Die vollständigen Schema-Details findest du in der API-Dokumentation.
Für alle Lebenszyklusvorgänge – einschließlich Bereitstellung, Konfigurationsaktualisierungen, Pausierung und Löschung – stehen API-Endpunkte zur Verfügung.
Die Bereitstellungszeiten variieren je nach Service. Komplexe Datenbanken können einige Minuten benötigen, bis sie vollständig betriebsbereit sind.
Wie geht es weiter?
Sobald der Service läuft, geht es weiter mit der Managed Service Provider Referenz, um zu erfahren, wie auf diesen spezifischen Service aus dem Workspace zugegriffen werden kann.
Aktualisieren / Konfigurieren
Die Konfiguration eines laufenden Service kann angepasst werden, um sich ändernden Anforderungen gerecht zu werden.
- 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.
- Bearbeiten: Navigiere zum Tab Configuration und klicke auf Edit Configuration. Dadurch werden die konfigurierbaren Parameter bearbeitbar. Beachte, dass nicht jede im Erstellungsvorgang verfügbare Option auch für Aktualisierungen verfügbar ist. Muss ein nicht bearbeitbarer Parameter geändert werden, muss der Service gelöscht und mit der gewünschten Konfiguration neu erstellt werden.

- Anwenden: Klicke auf Save, um die Änderungen anzuwenden. Der Service-Status wechselt während der Anwendung der Änderungen von
SynchronizedzuUpdating. Nach Abschluss kehrt er zuSynchronizedzurück. Weitere Details zum Aktualisierungsprozess finden sich 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": {
"version": "17.9"
},
"plan": {
"id": 1,
"parameters": {
"storage": 1024
}
},
"secrets": {
"userPassword": "new-secure-password",
"superuserPassword": "new-secure-superuser-password"
},
"backups": {
"enabled": true,
"intervalH": 12,
"deleteRetentionDays": 30,
"config": {
"endpointUrl": "https://s3.eu-central-1.amazonaws.com",
"destinationPath": "s3://my-codesphere-backups/",
"accessKeyId": "YOUR_S3_ACCESS_KEY"
},
"secrets": {
"secretKey": "YOUR_S3_SECRET_KEY"
}
},
"version": "v2"
}'
Parameter:
id(string, Pfadparameter): Die UUID des zu aktualisierenden Managed Service.config(object, optional): Konfigurationsaktualisierungen.plan(object, optional):id: Die neue Plan-ID.parameters: Aktualisierte Planparameter (z. B. Speicherplatz).
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 des Anbieters (z. B.v2). Weitere Details im Abschnitt Upgrade auf eine neue Version.
Die unterstützten Felder für config, plan.parameters, secrets, Backup-Einstellungen und Anbieterversionen variieren je nach Service. Die verfügbaren Felder, zulässigen Werte, Standardwerte und Update-Einschränkungen für jeden Anbieter finden sich in der Managed Service Provider Referenz.
Die vollständigen Schema-Details findest du in der API-Dokumentation.
Manche Konfigurationsaktualisierungen können einen Neustart des Service auslösen, was zu kurzen Ausfallzeiten 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. Der Fortschritt kann im Ereignisprotokoll des Managed Service verfolgt werden.
Bei REST-basierten Anbietern hängt der Upgrade-Prozess von der spezifischen Implementierung des Anbieters ab. Bei Landscape-basierten Anbietern läuft er immer wie folgt ab:
1. Git Checkout
Die kontrollierte 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 Nutzers, der die Aktualisierung ausgelöst hat, wird zum Pull vom Remote verwendet.
2. Neustart
Die CI/CD-Pipeline der kontrollierten 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. Während der Dauer des Neustarts ist der Service nicht verfügbar.
Es gibt kein automatisches Rollback, wenn das Upgrade fehlschlägt. Teste den Managed Service nach dem Upgrade gründlich. Falls Probleme auftreten, kann durch Senden einer Aktualisierungsanfrage mit der vorherigen Version ein Downgrade durchgeführt werden.
Pausieren
Codesphere erlaubt 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. Falls ein Service pausiert werden kann, wird diese Option unter den capabilities des Service angezeigt. Die Capabilities können über den GET providers endpoint der öffentlichen API eingesehen werden.
- Pausieren: Nimmt den Service offline und gibt die Rechenressourcen (CPU & RAM) frei. Der Service-Status ändert sich zu
PausedoderStopped. - Fortsetzen: Stellt die Rechenressourcen erneut bereit und bringt den Service wieder online.
Landscapes pausieren ihre eigenen Services automatisch, wenn sie abgebaut werden.
- UI
- API
Derzeit wird das Pausieren von Managed Services nur über die öffentliche API unterstützt. Anleitungen dazu finden sich im Tab API.
Ein Managed Service kann pausiert werden, indem die Eigenschaft pause über den Endpunkt PATCH /managed-services/{id} auf true gesetzt wird.
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 von Codesphere verwalteten Services wie Managed Storage oder Object Store bleiben die Daten während einer Pause sicher. Das zum Service gehörende persistente Volume (Disk) wird nicht gelöscht. Beim Fortsetzen des Service wird es erneut mit demselben Volume verbunden, sodass alle Daten erhalten bleiben.
Dieses Verhalten gilt derzeit für eigenständige Managed Services. Bei Services, die in Landscape-Lebenszyklen integriert sind, oder bei benutzerdefinierten Service-Anbietern hängt die Datenpersistenz während der Pause von der jeweiligen Implementierung ab.
Das Pausieren nicht genutzter Services ist eine hervorragende Möglichkeit, Ressourcennutzung und Kosten zu optimieren.
Backups
Codesphere unterstützt automatisierte Backups und Point-in-Time Recovery für bestimmte Managed Service Anbieter (wie PostgreSQL, Babelfish und Object Storage). Dies ermöglicht es, Daten sicher in einem externen S3-kompatiblen Service zu speichern.
Vollständige Anleitungen zur Konfiguration automatisierter Backups, zum Ausführen manueller Backups und zum Wiederherstellen eines Service aus einem früheren Zeitpunkt oder einer Backup-ID finden sich im dedizierten Leitfaden Managed Service Backups.
Managed Services löschen
Das Löschen eines Service ruft den Lösch-Endpunkt eines Managed Service-Backends auf. Bei von Codesphere angebotenen Managed Services werden dadurch alle mit diesem Service verbundenen Ressourcen entfernt.
Beim Auslösen einer Löschung beginnt Codesphere immer mit einem Soft Delete. Der Service wird mit einem Zeitstempel deletedAt markiert und wechselt in den Status Deleting.
Löschablauf
- Soft Delete: Der Service wird mit einem Zeitstempel
deletedAtmarkiert. Der Service-Status ändert sich zuDeleting. - Finales Backup (falls aktiviert): Unterstützt der Anbieter Backups und sind diese für den Service aktiviert, stellt der Reconciler sicher, dass nach Beginn der Löschung ein Backup eingeplant wird, und wartet, bis dieses Backup bestätigt ist, bevor fortgefahren wird.
- Löschung beim Anbieter: Der Reconciler sendet die Löschanfrage an das Backend des Anbieters, welches Rechenressourcen und persistente Daten entfernt.
- Aufbewahrungszeitraum: Der Soft-Delete-Eintrag des Service bleibt für einen Aufbewahrungszeitraum sichtbar und wird anschließend durch den Bereinigungsprozess endgültig gelöscht. Während dieses Zeitraums kann der Service weiterhin eingesehen werden, indem in der Service-Tabelle „Show recently Deleted“ aktiviert wird.
- UI
- API
- Navigieren: Gehe zur Seite mit der Service-Tabelle.
- Löschen: Suche die Schaltfläche „Delete“ im 3-Punkte-Menü.

- Bestätigen: Du wirst aufgefordert, die Aktion zu bestätigen, indem der Name des Service eingegeben wird.
Ein Managed Service kann über den Endpunkt DELETE /managed-services/{id} gelöscht werden.
curl -X DELETE "<your-codesphere-instance-url>/api/managed-services/YOUR_SERVICE_ID" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Um den finalen Backup-Schritt zu überspringen und direkt mit der Löschung beim Anbieter fortzufahren, kann forceDelete: true im Request-Body übergeben werden:
curl -X DELETE "<your-codesphere-instance-url>/api/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 finale Backup übersprungen und direkt mit der Löschung beim Anbieter fortgefahren. Standardmäßigfalse(normaler Löschablauf).
Die vollständigen Schema-Details findest du in der API-Dokumentation.
Das Löschen eines Managed Service ist endgültig. Dabei werden sowohl die Rechenressourcen als auch das persistente Datenvolume entfernt. Diese Aktion kann nicht rückgängig gemacht werden. Kürzlich gelöschte Services können durch Aktivieren des Kontrollkästchens „Show recently Deleted“ eingesehen werden, lassen sich jedoch nicht wiederherstellen.
Force Delete
Wenn ein Service im Status Deleting feststeckt, weil das finale Backup nicht erfolgreich ist (dies lässt sich im Ereignisprotokoll überprüfen), kann Force Delete verwendet werden, um das Warten auf das finale Backup zu umgehen und den Service-Eintrag sofort zu entfernen.
So wird ein Service über die UI zwangsweise gelöscht:
- Öffne den Menüpunkt „Delete“ für den feststeckenden Service.
- Aktiviere im Bestätigungsdialog das Kontrollkästchen „Force Delete“.
- Gib zur Bestätigung den Servicenamen ein und klicke dann auf Delete.
Force Delete umgeht die Datensicherheitsprüfungen und führt zu endgültigem Datenverlust. Alle noch nicht gesicherten Daten sind unwiederbringlich verloren. Verwende diese Option nur, wenn der Standard-Löschablauf fehlgeschlagen ist und das Risiko eines Datenverlusts akzeptiert wird.