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:
example/my-service:1.4.2Bei 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
| Bestandteil | Bedeutung |
|---|---|
| Docker-Image | Enthält die Anwendung. |
| Service-Domainfragment | Bestimmt die Service-Domain innerhalb des Workspace. |
| Interner Container-Port | Port, auf dem die Anwendung im Container erreichbar ist. |
| Environment Variables | Normale Konfigurationswerte. |
| Secrets | Vertrauliche Werte im verschlüsselten Secret-Store. |
| Dateien | Hochgeladene Dateien, die Hostly in den Container mountet. |
| Logs | Ausgaben aus stdout und stderr. |
| SSL | Aktiviert HTTPS mit einem automatischen Let's-Encrypt-Zertifikat. |
| High Availability | Startet zwei Instanzen desselben Services. |
| Volume | Persistenter Speicher im Paid Tier. |
Öffentliche Erreichbarkeit
Jeder Service erhält eine Service-Domain:
<Service-Domainfragment>.<Workspace-Domainfragment>.hostly.ninjaFür einen Service wird genau ein interner Container-Port öffentlich bereitgestellt. Hostly leitet die öffentliche HTTP- oder HTTPS-Verbindung an diesen Port weiter.
Beispiel:
Interner Port: 3000
Öffentliche URL: https://app.example.hostly.ninjaDer 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:
Service-Status
+ Health Check
+ Logs
+ konfigurierter interner PortSSL
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.
