Deutsch
Anwendungsfälle und Beispiele
Die meisten Anwendungen bestehen aus mehr als einer Website. Eine Web-App braucht meist eine Datenbank, vielleicht einen Cache oder eine Queue und oft einen Worker, der Aufgaben im Hintergrund abarbeitet. In Hostly ist jeder dieser Teile ein eigener Service im selben Workspace.
Dieser Bereich zeigt, welche Service-Konfiguration zu welchem Teil einer Anwendung passt, und führt durch vollständige Beispiele.
Drei Arten von Services
Jeder Service wird durch zwei Entscheidungen bestimmt: Bekommt er eine öffentliche Domain, und hat er einen Port?
| Art | Öffentliche Domain | Port | Erreichbar von |
|---|---|---|---|
| Öffentlicher Service | Hostly-Subdomain oder Custom Domain | ja | dem Internet und anderen Services des Workspace |
| Interner Service | keine ("Nur intern erreichbar") | ja | nur anderen Services des Workspace |
| Service ohne Port | keine | keiner | niemandem, er baut nur selbst Verbindungen auf |
Typische Anwendungsfälle
Websites, Web-Apps und APIs
Alles, was Nutzer oder externe Clients über eine URL aufrufen. Nutze einen öffentlichen Service mit aktiviertem SSL.
Beispiele: ein Frontend, eine REST- oder GraphQL-API, ein Dashboard, ein Webhook-Empfänger.
Datenbanken
Datenbanken dürfen nie aus dem Internet erreichbar sein. Deploye sie als internen Service mit dem Datenbank-Port und einem Volume für die Daten.
Beispiele: PostgreSQL (5432), MySQL oder MariaDB (3306), MongoDB (27017).
Für persistente Daten ist ein Volume nötig
Ohne Volume gehen alle Daten der Datenbank bei jedem Neustart oder Redeployment verloren. Volumes sind nur im bezahlten Tarif verfügbar. Aktiviere für eine Datenbank keine High Availability: Alle drei Instanzen würden sich dasselbe Volume teilen.
Caches und Queues
Schnelle In-Memory-Speicher und Message Broker, mit denen nur deine eigenen Services sprechen. Nutze einen internen Service mit dem Port des Brokers.
Beispiele: Redis oder Valkey (6379), RabbitMQ (5672), NATS (4222).
Hintergrund-Worker
Prozesse, die Aufgaben aus einer Queue oder Datenbank abholen, E-Mails versenden, Berichte erzeugen oder Daten synchronisieren. Niemand verbindet sich mit ihnen, sie brauchen also keinen Port und keine öffentliche Domain.
Beispiele: ein Queue-Consumer, ein Scheduler, ein Bot, der sich mit einer externen Chat-API verbindet.
Interne APIs und Microservices
Backends, die nur deine öffentlichen Services aufrufen, z. B. ein Authentifizierungsdienst, ein Rendering-Dienst oder ein KI-Modell hinter deiner eigenen API. Nutze einen internen Service, damit das Backend nicht direkt erreichbar ist.
Wie Services sich gegenseitig erreichen
Jeder Service hat einen Service-Namen, der innerhalb seines Workspace eindeutig ist. Andere Services desselben Workspace erreichen ihn unter:
text
<service-name>:<port>Eine Datenbank mit dem Namen db, die auf 5432 lauscht, ist zum Beispiel unter db:5432 erreichbar. Nutze diese Adresse in den Connection Strings anderer Services:
dotenv
DATABASE_URL=postgres://app:${DB_PASSWORD}@db:5432/app- Die Service-Detailseite zeigt die Adresse als Intern erreichbar unter an. Die Service-Liste zeigt sie bei internen Services.
- Intern funktioniert jedes TCP-Protokoll, nicht nur HTTP.
- Auch öffentliche Services sind intern erreichbar, über ihren Service-Namen und Container-Port.
- Services anderer Workspaces erreichen deine Services nicht intern. Mehrere Services in einem Workspace erfordern den bezahlten Tarif, der Free Tier erlaubt einen Service pro Workspace.
- Interner Datenverkehr wird von Hostly nicht verschlüsselt. Er verlässt das Netzwerk deines Workspace nicht.
Beispiele
- Web-App mit PostgreSQL: eine öffentliche Web-App und eine interne Datenbank.
- Hintergrund-Worker mit Queue: eine öffentliche App, eine interne Redis-Queue und ein Worker ohne Port.
