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

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

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

  3. 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. Managed Service Create General Setup

  4. 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. 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 überwachen. Die Statusanzeigen aktualisieren sich, während der Service von Creating zu Synchronized wechselt. Managed Service Table Synchronized 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. Managed Service Details Events

info

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.

  1. Finden: Suche den bereitgestellten Service, den du aktualisieren möchtest.
  2. Einstellungen öffnen: Klicke auf das Zahnrad-Symbol rechts in der Tabellenzeile, um die Detailansicht des Service zu öffnen.
  3. 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. Managed Service Details Config
  4. Anwenden: Klicke auf Save, um die Änderungen anzuwenden. Der Service-Status wechselt während der Anwendung der Änderungen von Synchronized zu Updating. Nach Abschluss kehrt er zu Synchronized zurück. Weitere Details zum Aktualisierungsprozess finden sich im Ereignisprotokoll.
warnung

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.

warnung

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 Paused oder Stopped.
  • Fortsetzen: Stellt die Rechenressourcen 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. Anleitungen dazu finden sich im Tab API.

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.

Landscape-basierte und benutzerdefinierte Anbieter

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.

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 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​

  1. Soft Delete: Der Service wird mit einem Zeitstempel deletedAt markiert. Der Service-Status ändert sich zu Deleting.
  2. 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.
  3. Löschung beim Anbieter: Der Reconciler sendet die Löschanfrage an das Backend des Anbieters, welches Rechenressourcen und persistente Daten entfernt.
  4. 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.
  1. Navigieren: Gehe zur Seite mit der Service-Tabelle.
  2. Löschen: Suche die Schaltfläche „Delete“ im 3-Punkte-Menü. Managed Service Table Delete
  3. Bestätigen: Du wirst aufgefordert, die Aktion zu bestätigen, indem der Name des Service eingegeben wird.
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 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:

  1. Öffne den Menüpunkt „Delete“ für den feststeckenden Service.
  2. Aktiviere im Bestätigungsdialog das Kontrollkästchen „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 unwiederbringlich verloren. Verwende diese Option nur, wenn der Standard-Löschablauf fehlgeschlagen ist und das Risiko eines Datenverlusts akzeptiert wird.