Zum Hauptinhalt springen
Version: Weekly Build

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 beschreibt, wie ein eigenständiger Service bereitgestellt wird. Informationen zur Bereitstellung von Services als Teil einer Landscape finden sich im Abschnitt Managed Services in Landscapes.

  1. Navigieren: Gehe zum Tab Managed Services. Managed Service Catalog

  2. 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".

  3. Konfigurieren: Ein Konfigurationsdialog erscheint. Lege die anfänglichen Parameter fest. Nicht erforderliche Parameter können auf ihren Standardwerten belassen und bei Bedarf später angepasst werden. Manche Parameter (wie der Benutzername in diesem PostgreSQL-Beispiel) haben spezifische Anforderungen. Fahre mit der Maus über das "Info"-Symbol, um mehr zu erfahren. Klicke auf "Define Secrets", um fortzufahren. Managed Service Create General Setup

  4. Secrets: Die meisten Services benötigen Secrets. Erzeuge diese auf deinem Rechner und gib sie hier ein. Codesphere zeigt diese Secrets nach diesem Schritt nicht mehr an, daher sollten sie sicher gespeichert werden. Gehen sie verloren, müssen die Secrets zurückgesetzt werden, was zu einem Ausfall des Services führt. Klicke auf "Create Service", um fortzufahren. Managed Service Create Secrets

  5. 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 Creating zu Synchronized wechselt. Managed Service Table Synchronized Nutze das Event-Log, um weitere Details zum Bereitstellungsprozess zu erhalten. Bei Problemen während der Bereitstellung liefert das Event-Log Hinweise darauf, was schiefgelaufen ist und wie es behoben werden kann. Managed Service Details Events

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 der Service läuft, folge der Managed Service Provider Referenz, um zu erfahren, wie dieser spezifische Service aus dem Workspace heraus angesprochen wird.

Aktualisieren / Konfigurieren​

Die Konfiguration eines laufenden Services kann geändert werden, um sich an geänderte Anforderungen anzupassen.

  1. Suchen: Finde den bereitgestellten Service, der aktualisiert werden soll.
  2. Einstellungen öffnen: Klicke auf das Zahnrad-Symbol rechts in der Tabellenzeile, um die Detailansicht des Services zu öffnen.
  3. Ändern: Wechsle zum Tab Configuration und klicke auf Edit Configuration. Dies aktiviert die Bearbeitung konfigurierbarer Parameter. Zu beachten ist, dass nicht jede Option, die im Erstellungsprozess verfügbar war, auch für Updates 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. Managed Service Details Config
  4. Anwenden: Klicke auf Save, um die Änderungen anzuwenden. Der Service-Status wechselt von Synchronized zu Updating, während die Änderungen angewendet werden. Nach Abschluss kehrt er zu Synchronized zurück. Weitere Details zum Aktualisierungsprozess finden sich im Event-Log.
warnung

Manche Konfigurationsänderungen können einen Neustart des Services auslösen, was zu einem kurzen Ausfall führt.

Upgrade auf eine neue Version​

Enthält eine Update-Anfrage eine Änderung des Versionsparameters, löst dies ein Versions-Upgrade oder -Downgrade aus. Der Fortschritt kann im Event-Log des Managed Service verfolgt werden.

Bei REST-basierten Providern hängt der Upgrade-Prozess von der jeweiligen Implementierung des Providers ab. Bei Landscape-basierten Providern läuft er stets 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. Dabei kann es sich um einen Branch, einen Commit-Hash oder einen Tag handeln. Es wird der Git-Token des Nutzers verwendet, der die Aktualisierung ausgelöst hat, um vom Remote zu pullen.

2. Neustart​

Die CI/CD-Pipeline der kontrollierten Landscape wird neu gestartet (zuerst stop all, dann 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 Service 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 Senden einer Update-Anfrage mit der vorherigen Version ein Downgrade durchgeführt werden.

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. Falls ein Service pausiert werden kann, ist diese Option unter den capabilities des Services sichtbar. 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 Service-Status ändert sich zu Paused oder Stopped.
  • Resume: Stellt die Compute-Ressourcen erneut bereit und bringt den Service wieder online.

Landscapes pausieren ihre eigenen Services automatisch, wenn sie abgebaut werden.

Derzeit wird das Pausieren von Managed Services nur über die öffentliche API unterstützt. Anweisungen dazu finden sich im API-Tab.

Datenpersistenz​

Bei Codesphere-verwalteten Services wie Managed Storage oder Object Store bleiben die Daten während einer Pause sicher. Das mit dem Service verbundene persistente Volume (Disk) wird nicht gelöscht. Beim Fortsetzen des Services 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 hervorragende 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 lassen sich Daten sicher in einem externen S3-kompatiblen Service speichern.

Vollständige Anweisungen zur Konfiguration automatisierter Backups, zur Durchführung manueller Backups und zur Wiederherstellung eines Services aus einem früheren Zeitpunkt oder einer Backup-ID finden sich im entsprechenden Leitfaden Managed Service Backups.

Managed Services löschen​

Beim Löschen eines Services wird der Lösch-Endpunkt eines Managed-Service-Backends aufgerufen. Bei von Codesphere angebotenen Managed Services werden dadurch alle mit diesem Service verbundenen Ressourcen entfernt.

Beim Auslösen einer Löschung beginnt Codesphere stets mit einem Soft Delete. Der Service wird mit einem deletedAt-Zeitstempel markiert und wechselt in den Status Deleting.

Ablauf der Löschung​

  1. Soft Delete: Der Service wird mit einem deletedAt-Zeitstempel markiert. Der Service-Status wechselt zu Deleting.
  2. Finales Backup (falls aktiviert): Unterstützt der Provider Backups und sind Backups 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.
  3. Löschung beim Provider: Der Reconciler sendet die Löschanfrage an das Provider-Backend, wodurch Compute-Ressourcen und persistente Daten entfernt werden.
  4. Aufbewahrungsfrist: Der Soft-gelöschte Service-Datensatz bleibt für eine Aufbewahrungsfrist sichtbar und wird anschließend durch den Cleanup-Prozess endgültig gelöscht (Hard Delete). Während dieses Zeitraums ist der Service weiterhin sichtbar, indem in der Service-Tabelle "Show recently Deleted" aktiviert wird.
  1. Navigieren: Gehe zur Seite der Service-Tabelle.
  2. Löschen: Finde die Schaltfläche "Delete" im 3-Punkte-Menü. Managed Service Table Delete
  3. Bestätigen: Zur Bestätigung der Aktion muss der Name des Services eingegeben werden.
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 lassen sich über die Checkbox "Show recently Deleted" einsehen, können jedoch nicht wiederhergestellt werden.

Force Delete​

Bleibt ein Service im Status Deleting hängen, weil das finale Backup nicht erfolgreich abgeschlossen wird (dies lässt sich im Event-Log prüfen), kann Force Delete verwendet werden, um das Warten auf das finale Backup zu umgehen und den Service-Datensatz sofort zu entfernen.

So wird ein Service über die UI zwangsweise gelöscht:

  1. Öffne den Menüpunkt "Delete" für den hängenden Service.
  2. Aktiviere im Bestätigungsdialog die Checkbox "Force Delete".
  3. Gib zur Bestätigung den Servicenamen ein und klicke dann auf Delete.
gefahr

Force Delete umgeht die Datensicherheitsprüfungen und führt zu endgültigem Datenverlust. Alle noch nicht gesicherten Daten sind dann nicht wiederherstellbar. Diese Option sollte nur verwendet werden, wenn der Standard-Löschablauf fehlgeschlagen ist und das Risiko eines Datenverlusts akzeptiert wird.