Bereitstellen von Diensten
Diese Anleitung bietet einen umfassenden Überblick über den Lebenszyklus eines Managed Service in Codesphere. Sie behandelt die praktischen Schritte zum Bereitstellen, Konfigurieren, Warten und schließlich Löschen von Diensten.
Bereitstellen von Managed Services
Das Bereitstellen eines Managed Service kann über die Codesphere-UI oder die öffentliche API erfolgen.
Ein Managed Service kann entweder eine eigenständige Bereitstellung sein oder in den Landscape-Lebenszyklus integriert werden. Diese Anleitung behandelt die Bereitstellung eines eigenständigen Dienstes. Informationen zur Bereitstellung von Diensten als Teil einer Landscape finden sich im Abschnitt Managed Services in Landscapes.
- UI
- API
-
Navigieren: Wechsle zum Tab Managed Services.

-
Auswählen: Wähle den gewünschten Service-Provider aus dem Katalog. Dienste sind mit Kategorien gekennzeichnet (z. B. Database, Cache). In diesem Beispiel wählen wir PostgreSQL. Klicke auf „Start Setup“.
-
Konfigurieren: Es erscheint ein Konfigurationsdialog. 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. Bewege den Mauszeiger über das „Info“-Symbol, um mehr zu erfahren. Klicke auf „Define Secrets“, um fortzufahren.

-
Secrets: Die meisten Dienste erfordern Secrets. Erzeuge sie auf deinem Rechner und gib sie hier ein. Codesphere zeigt diese Secrets nach diesem Schritt nicht erneut an, daher solltest du sie sicher aufbewahren. Gehen sie verloren, müssen die Secrets zurückgesetzt werden, was zu einer Ausfallzeit des Dienstes 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 Dienst von
CreatingzuSynchronizedwechselt.
Nutze das Ereignisprotokoll, um weitere Details zum Bereitstellungsprozess zu erhalten. Sollte es während der Bereitstellung Probleme geben, liefert das Ereignisprotokoll Hinweise darauf, was schiefgelaufen ist und wie es behoben werden kann.

Ein Managed Service kann über den Endpunkt POST /managed-services erstellt werden.
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 Dienst erstellt wird.name(string, erforderlich): Ein eindeutiger Name für den Dienst.provider(object, erforderlich):name: Der Name des Service-Providers (z. B.postgresql,redis).version: Der Versions-Tag (z. B.15).
plan(object, erforderlich):id: Die Plan-ID.parameters: Plan-spezifische Parameter (z. B. Speichergröße in GB).
secrets(object): Schlüssel-Wert-Paare der geheimen Zugangsdaten des Dienstes.backups(object): Konfiguration automatisierter Backups. Für Provider, die dies unterstützen. Details siehe Managed Service Backups.recoverFrom(object): Automatisches Initialisieren der Instanz über ein Backup-Point-in-Time-Objekt oder ein bestimmtes Backup. Erfordert diebackups-Konfiguration und Secrets. Siehe Managed Service Backups.
Vollständige Schema-Details finden sich in der API-Dokumentation.
info
Für alle Lebenszyklus-Operationen wie Bereitstellung, Konfigurationsaktualisierungen, Pausieren und Löschen stehen API-Endpunkte zur Verfügung.
info
Die Bereitstellungszeiten variieren je nach Dienst. Komplexe Datenbanken können einige Minuten benötigen, bis sie vollständig einsatzbereit sind.
Wie geht es weiter?
Sobald der Dienst läuft, geht es in der Managed Service Provider Referenz weiter, um zu erfahren, wie auf diesen speziellen Dienst aus dem Workspace zugegriffen werden kann.
Aktualisieren / Konfigurieren
Die Konfiguration eines laufenden Dienstes kann angepasst werden, um sich ändernden Anforderungen gerecht zu werden.
- UI
- API
- Finden: Suche den bereitgestellten Dienst, der aktualisiert werden soll.
- Einstellungen öffnen: Klicke auf das Zahnrad-Symbol rechts in der Tabellenzeile, um die Detailansicht des Dienstes zu öffnen.
- Ändern: Wechsle zum Tab Configuration und klicke auf „Edit Configuration“. Dadurch werden konfigurierbare Parameter bearbeitbar. Beachte, dass nicht jede Option, die beim Erstellungsvorgang verfügbar war, auch für Updates verfügbar ist. Muss ein nicht bearbeitbarer Parameter geändert werden, muss der Dienst gelöscht und mit der gewünschten Konfiguration neu erstellt werden.

- Anwenden: Klicke auf Save, um die Änderungen zu übernehmen. Der Dienststatus wechselt während der Anwendung der Änderungen von
SynchronizedzuUpdating. Nach Abschluss kehrt er zuSynchronizedzurück. Weitere Details zum Aktualisierungsprozess finden sich im Ereignisprotokoll.
Ein Managed Service kann über den Endpunkt PATCH /managed-services/{id} aktualisiert werden.
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): Konfigurationsaktualisierungen.plan(object, optional):id: Die neue Plan-ID.parameters: Aktualisierte Plan-Parameter (z. B. Speicherplatz).
secrets(object, optional): Aktualisierte Secrets.backups(object, optional): Konfigurationen für automatisierte Backups.name(string, optional): Neuer Name für den Dienst.pause(boolean, optional): Auftruesetzen, um den Dienst zu pausieren.version(string, optional): Der neue Versions-Tag (z. B.1.2.0). Weitere Details siehe Abschnitt Upgrade auf eine neue Version.
Vollständige Schema-Details finden sich in der API-Dokumentation.
warnung
Manche Konfigurationsaktualisierungen können einen Neustart des Dienstes auslösen, was zu kurzen Ausfallzeiten führt.
Upgrade auf eine neue Version
Enthält eine Aktualisierungsanfrage eine Änderung des Versionsparameters, löst dies ein Versions-Upgrade oder eine Downgrade aus. Der Fortschritt kann im Ereignisprotokoll des Managed Service verfolgt werden.
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 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 Benutzers, der die Aktualisierung ausgelöst hat, wird verwendet, um vom Remote zu pullen.
2. Neustart
Die CI/CD-Pipeline der kontrollierten Landscape wird neu gestartet (stop all gefolgt von run all). Dabei wird das in der Provider-Definition für die neue Version angegebene CI-Profil verwendet. Während der Dauer des Neustarts ist der Dienst nicht verfügbar.
warnung
Es gibt kein automatisches Rollback, falls das Upgrade fehlschlägt. Teste den Managed Service nach der Durchführung des Upgrades gründlich. Bei Problemen kann durch das Senden einer Aktualisierungsanfrage mit der vorherigen Version erneut ein Downgrade durchgeführt werden.
Pausieren
Codesphere ermöglicht das Pausieren bestimmter Managed Services, wenn diese nicht aktiv genutzt werden. Dies eignet sich ideal für Entwicklungsumgebungen oder Prototypen.
Funktionsweise
Nicht jeder Dienst unterstützt das Pausieren. Wenn ein Dienst pausiert werden kann, ist diese Option unter den capabilities des Dienstes sichtbar. Die Capabilities können über den öffentlichen API-Endpunkt GET providers endpoint eingesehen werden.
- Pause: Nimmt den Dienst offline und gibt die Rechenressourcen (CPU & RAM) frei. Der Dienststatus wechselt zu
PausedoderStopped. - Resume: Stellt die Rechenressourcen erneut bereit und bringt den Dienst wieder online.
Landscapes pausieren ihre eigenen Dienste automatisch, wenn sie abgebaut werden.
- UI
- API
Derzeit wird das Pausieren von Managed Services nur über die öffentliche API unterstützt. Anleitungen finden sich im API-Tab.
Ein Managed Service kann pausiert werden, indem die Eigenschaft pause über den Endpunkt PATCH /managed-services/{id} auf true gesetzt wird.
Dienst 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
}'
Dienst 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 Diensten wie Managed Storage oder Object Store bleiben die Daten während einer Pause sicher. Das mit dem Dienst verknüpfte persistente Volume (Disk) wird nicht gelöscht. Beim Fortsetzen des Dienstes 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 Diensten, 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 Dienste ist eine gute 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 können Daten sicher in einem externen S3-kompatiblen Dienst gespeichert werden.
Vollständige Anleitungen zum Konfigurieren automatisierter Backups, zum manuellen Ausführen von Backups und zum Wiederherstellen eines Dienstes aus einem früheren Zeitpunkt oder einer Backup-ID finden sich in der dedizierten Anleitung Managed Service Backups.
Löschen von Managed Services
Beim Löschen eines Dienstes wird der Löschendpunkt eines Managed-Service-Backends aufgerufen. Bei von Codesphere angebotenen Managed Services werden dabei alle mit diesem Dienst verbundenen Ressourcen entfernt.
Beim Auslösen einer Löschung beginnt Codesphere immer mit einem Soft Delete. Der Dienst wird mit einem deletedAt-Zeitstempel markiert und wechselt in den Status Deleting.
Löschablauf
- Soft Delete: Der Dienst wird mit einem
deletedAt-Zeitstempel markiert. Der Dienststatus wechselt zuDeleting. - Abschließendes Backup (falls aktiviert): Unterstützt der Provider Backups und sind diese für den Dienst aktiviert, stellt der Reconciler sicher, dass nach dem Löschvorgang ein Backup geplant wird, und wartet, bis dieses Backup bestätigt wurde, bevor fortgefahren wird.
- Löschen beim Provider: Der Reconciler sendet die Löschanfrage an das Provider-Backend, wodurch Rechenressourcen und persistente Daten entfernt werden.
- Aufbewahrungszeitraum: Der als Soft Delete markierte Dienstdatensatz bleibt für einen Aufbewahrungszeitraum sichtbar und wird anschließend vom Bereinigungsprozess endgültig gelöscht. Während dieses Zeitraums kann der Dienst weiterhin eingesehen werden, indem in der Diensttabelle „Show recently Deleted“ aktiviert wird.
- UI
- API
- Navigieren: Gehe zur Seite mit der Diensttabelle.
- Löschen: Suche die Schaltfläche „Delete“ im Drei-Punkte-Menü.

- Bestätigen: Zur Bestätigung der Aktion muss der Name des Dienstes eingegeben werden.
Ein Managed Service kann über den Endpunkt DELETE /managed-services/{id} gelöscht werden.
curl -X DELETE "<your-codesphere-api-endpoint>/managed-services/YOUR_SERVICE_ID" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Parameter:
id(string, Pfadparameter): Die UUID des zu löschenden Managed Service.
Vollständige Schema-Details finden sich in der API-Dokumentation.
warnung
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 Dienste können über das Kontrollkästchen „Show recently Deleted“ eingesehen werden, sie können jedoch nicht wiederhergestellt werden.