Skip to content

Was ist ein Service?

Ein Service ist ein Anwendungscontainer, die Hostly ausführt und über eine öffentliche Domain erreichbar macht.

Typische Services sind:

  • Websites
  • Webanwendungen
  • HTTP-APIs
  • persönliche Tools
  • Dashboards
  • andere über HTTP oder HTTPS erreichbare Anwendungen

Beziehung zum Workspace

Ein Service gehört immer zu genau einem Workspace.

Der Workspace bestimmt insbesondere:

  • den Domain-Bereich des Services
  • den zugeordneten Tarif
  • die verfügbaren Funktionen
  • das Ressourcenbudget
  • die Mitglieder und Berechtigungen, unter denen der Service verwaltet wird

Ein Service entsteht durch ein Deployment

In Hostly existiert ein Service erst, nachdem ein Docker-Image deployt wurde.

Hostly verwendet in der Benutzeroberfläche den Begriff Deployment für den Vorgang mit dem Hostly eine Anwendung bereitstellt und Service für die daraus resultierende Instanz einer Anwendung.

Diese Dokumentation unterscheidet soweit möglich:

  • Service: die verwaltete Anwendung,
  • Deployment: die Bereitstellung oder Ersetzung dieser Anwendung.

Docker-Image

Ein Docker-Image ist ein vorbereitetes Paket mit der Anwendung und den Bestandteilen, die sie zum Starten benötigt.

Hostly unterstützt derzeit bereits gebaute Docker-Images. Hostly baut selbst kein Image aus Quellcode oder einem Git-Repository.

Unterstützt werden Docker Hub und alternative Registries. Für private Registries können im Deployment passende Zugangsdaten hinterlegt werden.

Image-Tags

Ein fester Tag bezeichnet eine veröffentlichte Image-Version:

text
example/my-service:1.4.2

Bei der (beliebten) Option latest lädt Hostly die Version, auf die der Tag zum Zeitpunkt des Deployments verweist. Ändert sich latest später in der Registry, aktualisiert sich der laufende Service nicht automatisch. Auch ein Neustart lädt das Image nicht erneut herunter. Das Deployment des Service muss geändert werden, um ein Update zu erzwingen.

Bestandteile eines Services

BestandteilBedeutung
Docker-ImageEnthält die Anwendung.
Service-DomainfragmentBestimmt die Service-Domain innerhalb des Workspace.
Interner Container-PortPort, auf dem die Anwendung im Container erreichbar ist.
Environment VariablesNormale Konfigurationswerte.
SecretsVertrauliche Werte im verschlüsselten Secret-Store.
DateienHochgeladene Dateien, die Hostly in den Container mountet.
LogsAusgaben aus stdout und stderr.
SSLAktiviert HTTPS mit einem automatischen Let's-Encrypt-Zertifikat.
High AvailabilityStartet zwei Instanzen desselben Services.
VolumePersistenter Speicher im Paid Tier.

Öffentliche Erreichbarkeit

Jeder Service erhält eine Service-Domain:

text
<Service-Domainfragment>.<Workspace-Domainfragment>.hostly.ninja

Für einen Service wird genau ein interner Container-Port öffentlich bereitgestellt. Hostly leitet die öffentliche HTTP- oder HTTPS-Verbindung an diesen Port weiter.

Beispiel:

text
Interner Port: 3000
Öffentliche URL: https://app.example.hostly.ninja

Der interne Port muss - wie bei anderen Webseiten auch - nicht in der öffentlichen URL angegeben werden.

Health Check

Ein Container kann im Cluster laufen, obwohl die Anwendung nicht über ihre öffentliche Domain erreichbar ist. Das passiert beispielsweise, wenn die Anwendung nicht auf dem konfigurierten Port erreichbar ist.

Hostly prüft deshalb mit einem Health Check, ob der Service aus dem Internet erreichbar ist.

Der technische Zustand eines Services ergibt sich daher nicht nur aus dem Containerstatus, sondern aus mehreren Informationen:

text
Service-Status
+ Health Check
+ Logs
+ konfigurierter interner Port

SSL

SSL ist im Free Tier und Paid Tier verfügbar.

Bei aktiviertem SSL:

  • erstellt Hostly automatisch ein Let's-Encrypt-Zertifikat
  • ist keine manuelle Zertifikatskonfiguration erforderlich
  • ist der Service über HTTPS erreichbar
  • leitet Hostly HTTP-Anfragen automatisch auf HTTPS um

Die Oberfläche verwendet den Begriff SSL; technisch wird TLS eingesetzt. Eine Deaktivierung erfordert ein neues Deployment, durch "Deployment ändern" oder das Löschen und Neuerstellen des Services.

High Availability

Mit High Availability startet Hostly zwei Instanzen desselben Services. Dadurch kann eine zweite Instanz verfügbar bleiben, wenn eine Instanz ausfällt.

High Availability ist in beiden Tarifen verfügbar. Compute- und RAM-Grundverbrauch verdoppeln sich dadurch ungefähr.

Mehrere Versionen

Ein Service kann im Laufe der Zeit mehrfach deployt werden. Ein neues Deployment ersetzt jedoch immer die vorherige Version.

Hostly bietet derzeit keinen automatischen Rollback. Für eine Rückkehr zu einer früheren Version muss deren Image-Tag erneut deployt werden.

Verwandte Konzepte