Skip to content

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 DomainPortErreichbar von
Öffentlicher ServiceHostly-Subdomain oder Custom Domainjadem Internet und anderen Services des Workspace
Interner Servicekeine ("Nur intern erreichbar")janur anderen Services des Workspace
Service ohne Portkeinekeinerniemandem, 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 ​