Services bereitstellen
Dieser Leitfaden bietet einen umfassenden Überblick über den Lebenszyklus eines Managed Service in Codesphere. Er behandelt die praktischen Schritte zum Bereitstellen, Konfigurieren, Verwalten 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 Lifecycle einer Landscape integriert werden. Dieser Leitfaden beschreibt, wie ein eigenständiger Service bereitgestellt wird. Informationen zum Bereitstellen von Services als Teil einer Landscape finden sich 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. 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 initialen Parameter fest. Nicht erforderliche Parameter können bei ihren Standardwerten bleiben und später bei Bedarf angepasst werden. Manche Parameter (wie der Benutzername in diesem PostgreSQL-Beispiel) haben spezifische Anforderungen. Bewege den Mauszeiger über das Info-Symbol, um mehr zu erfahren. Klicke auf „Define Secrets“, um fortzufahren.

-
Secrets: Die meisten Services erfordern Secrets. Generiere sie auf deinem Rechner und trage sie hier ein. Codesphere zeigt diese Secrets nach diesem Schritt nicht erneut an, also stelle sicher, dass sie sicher gespeichert werden. Gehen sie verloren, müssen die Secrets zurückgesetzt werden, was zu einer Downtime 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
CreatingzuSynchronizedübergeht.
Verwende das Event-Log, um weitere Details zum Bereitstellungsprozess zu erhalten. Bei Problemen während des Deployments liefert das Event-Log Einblicke, 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 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: 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 mit geheimen Service-Zugangsdaten.backups(object): Konfiguration automatisierter Backups. Für Anbieter, die dies unterstützen. Details siehe Managed Service Backups.recoverFrom(object): Bootstrapped die Instanz automatisch anhand eines Point-in-Time-Objekts oder eines bestimmten Backups. Erfordert diebackups-Konfiguration und die zugehörigen Secrets. Siehe Managed Service Backups.
Vollständige Details zum Schema finden sich in der API-Dokumentation.
info
API-Endpunkte stehen für alle Lifecycle-Operationen zur Verfügung, einschließlich Deployment, Konfigurationsänderungen, Pausieren und Löschen.
info
Die Bereitstellungszeit variiert 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, findest du in der Managed Service Provider Reference Informationen, wie auf den jeweiligen 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
- Auffinden: Suche den bereitgestellten Service, der aktualisiert werden soll.
- 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 Option, die im Erstellungs-Workflow verfügbar war, auch für die Aktualisierung verfügbar ist. Muss ein nicht editierbarer 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 Status des Service ändert sich während der Anwendung der Änderungen von
SynchronizedzuUpdating. Nach Abschluss kehrt er zuSynchronizedzurück. Weitere Details zum Aktualisierungsprozess finden sich im Event-Log.
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, Pfad-Parameter): Die UUID des zu aktualisierenden Managed Service.config(object, optional): Konfigurationsänderungen.plan(object, optional):id: Die neue Plan-ID.parameters: Aktualisierte Plan-Parameter (z. B. Speicher).
secrets(object, optional): Aktualisierte Secrets.backups(object, optional): Konfiguration automatisierter Backups.name(string, optional): Neuer Name für den Service.pause(boolean, optional): Auftruesetzen, um den Service zu pausieren.version(string, optional): Der neue Versions-Tag (z. B.1.2.0). Weitere Details im Abschnitt Upgrade auf eine neue Version.
Vollständige Details zum Schema finden sich in der API-Dokumentation.
warnung
Manche Konfigurationsänderungen können einen Neustart des Service auslösen, was zu einer kurzen Downtime führt.
Upgrade auf eine neue Version
Enthält eine Aktualisierungsanfrage eine Änderung des Versionsparameters, löst dies ein Version-Upgrade oder Downgrade aus. Der Fortschritt kann im Event-Log 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 verwaltete Landscape führt einen Git-Checkout der im 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 das Pullen vom Remote verwendet.
2. Neustart
Die CI/CD-Pipeline der verwalteten 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
Es gibt kein automatisches Rollback, falls das Upgrade fehlschlägt. Teste den Managed Service nach der Durchführung des Upgrades gründlich. Bei auftretenden Problemen kann durch das Senden einer Aktualisierungsanfrage mit der vorherigen Version wieder ein Downgrade durchgeführt werden.
Pausieren
Codesphere ermöglicht das Pausieren bestimmter Managed Services, wenn diese nicht aktiv genutzt werden. Dies ist ideal für Entwicklungsumgebungen oder Prototypen.
Funktionsweise
Nicht jeder Service unterstützt das Pausieren. Wenn ein Service pausiert werden kann, wird diese Option unter den capabilities des Service angezeigt. Die Capabilities können über den GET providers-Endpunkt der öffentlichen API abgerufen werden.
- Pausieren: Nimmt den Service offline und gibt die Compute-Ressourcen (CPU & RAM) frei. Der Service-Status ändert sich zu
PausedoderStopped. - Fortsetzen: Stellt die Compute-Ressourcen 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. Nutze den API-Tab für Anweisungen.
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 dem Service zugeordnete persistente Volume (Disk) wird nicht gelöscht. Beim Fortsetzen des Service wird es wieder an dasselbe Volume angehängt, 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-Lifecycles 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 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 (z. B. PostgreSQL und Babelfish). Dadurch können Daten sicher in einem externen S3-kompatiblen Dienst gespeichert werden.
Vollständige Anweisungen zur Konfiguration automatisierter Backups, zur Durchführung manueller Backups und zur Wiederherstellung eines Service zu einem früheren Zeitpunkt oder anhand einer Backup-ID finden sich im dedizierten 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 dabei 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 deletedAt-Zeitstempel markiert und wechselt in den Status Deleting.
Löschablauf
- Soft Delete: Der Service wird mit einem
deletedAt-Zeitstempel markiert. Der Service-Status ändert sich zuDeleting. - Finales Backup (falls aktiviert): Unterstützt der Anbieter Backups und sind Backups für den Service aktiviert, stellt der Reconciler sicher, dass nach Beginn der Löschung 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 daraufhin Compute-Ressourcen und persistente Daten entfernt.
- Aufbewahrungszeitraum: Der soft-gelöschte Service-Datensatz bleibt für einen Aufbewahrungszeitraum sichtbar und wird anschließend durch den Cleanup-Prozess 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 der Service-Tabelle.
- Löschen: Finde die Schaltfläche „Delete“ im 3-Punkte-Menü.

- Bestätigen: Zur Bestätigung der Aktion muss der Name des Service 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, Pfad-Parameter): Die UUID des zu löschenden Managed Service.
Vollständige Details zum Schema finden sich 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 widerrufen werden. Kürzlich gelöschte Services können über das Kontrollkästchen „Show recently Deleted“ angezeigt werden, sie können jedoch nicht wiederhergestellt werden.