ngpaas.eu

Container-Deployment für kleine Teams: 3 Wege

Container ohne eigenes Plattform-Team betreiben: Docker Compose auf dem Server, PaaS mit Dockerfile oder Managed Kubernetes und wann welcher Weg passt.

Cloud-nativeVeröffentlicht

Container lassen sich auch ohne eigenes Plattform-Team zuverlässig betreiben. Kleine Teams haben dafür drei praktikable Wege: Docker Compose auf einem oder wenigen Servern, ein Platform as a Service (PaaS), das Ihr Dockerfile baut und ausführt, oder Managed Kubernetes. Compose ist am einfachsten und günstigsten, ein PaaS übernimmt den größten Teil der Betriebsarbeit, Kubernetes lohnt sich ab vielen Diensten oder bei feiner Skalierung. Das Container-Image bleibt in allen drei Fällen gleich, ein späterer Wechsel auf die nächste Stufe ist also gut machbar.

Weg 1: Docker Compose auf einem Server

Docker Compose beschreibt mehrere Container (App, Worker, Datenbank, Reverse Proxy) in einer YAML-Datei und startet sie gemeinsam. Laut Dokumentation startet dieser Befehl alle Dienste im Hintergrund:

docker compose up -d

Quelle: Docker-Dokumentation, docker compose up.

Passt zu: einer oder wenigen kleinen Anwendungen, planbarer Last und einem Team, das sich mit Linux wohlfühlt.

Sie kümmern sich um: Server-Updates, Firewall, TLS-Zertifikate (etwa über einen Reverse Proxy), Backups, Monitoring und Deployments. Für Letzteres genügt ein einfacher CI-Job, der das Image baut, in eine Registry schiebt und auf dem Server ausrollt.

Grenzen: Alles läuft auf einer Maschine. Fällt sie aus, steht die Anwendung, bis Sie sie wiederherstellen. Skalieren heißt: größerer Server.

Für den Start reicht ein Server bei einem europäischen Anbieter, etwa mit Rechenzentrum in Deutschland; Optionen zeigt der VPS-Vergleich für Entwickler.

Weg 2: PaaS mit Dockerfile

Die meisten Plattformen nehmen ein Dockerfile entgegen oder erkennen die Programmiersprache selbst. Sie verbinden ein Git-Repository, die Plattform baut das Image, liefert es aus, stellt HTTPS bereit und startet abgestürzte Prozesse neu. Ein Rollback ist meist ein Klick.

Es gibt zwei Varianten:

  • Gehostetes PaaS wie Railway, Render oder Fly.io, oder europäische Angebote wie Clever Cloud, Scalingo und Koyeb. Keine Server, um die Sie sich kümmern müssen. Einen Überblick gibt Heroku-Alternativen im Vergleich.
  • Selbst gehostetes PaaS wie Coolify, Dokku oder CapRover auf dem eigenen Server. Die Serverkosten bleiben niedrig und die Daten auf Infrastruktur Ihrer Wahl, für den Server selbst sind Sie aber weiter zuständig. Mehr unter selbst gehostetes PaaS.

Passt zu: Teams, die sich auf den Code konzentrieren wollen, mehreren Apps oder Umgebungen (Staging, Vorschau-Deployments) und festen Abläufen.

Grenzen: weniger Kontrolle über Netz- und Infrastrukturdetails; bei gehosteten Plattformen steigen die Kosten mit der Nutzung.

Weg 3: Managed Kubernetes

Kubernetes verteilt Container auf viele Maschinen, startet und verschiebt sie bei Fehlern, skaliert sie und leitet Anfragen weiter. Beim Managed-Dienst betreibt der Anbieter die Steuerungsebene. Sie beschreiben Ihre Workloads in Manifesten und wenden sie an, laut Dokumentation zum Beispiel so:

kubectl apply -f deployment.yaml

Quelle: kubernetes.io, Deployments.

Passt zu: vielen Diensten, einheitlichen Deployments über mehrere Umgebungen, hohen Skalierungsanforderungen oder dem Wunsch nach einer Plattform über mehrere Anbieter hinweg.

Sie kümmern sich um: Manifeste oder Helm-Charts, Ingress, Zertifikate, Secrets, Monitoring und Upgrades Ihrer Workloads, dazu das Wissen, einen Cluster zu debuggen. Planen Sie echte Einarbeitungszeit ein.

Die europäischen Angebote vergleicht Managed Kubernetes in Europa.

Entscheidungstabelle

Frage Compose PaaS Managed Kubernetes
Anzahl Dienste wenige wenige bis viele viele
Betriebsaufwand mittel gering hoch
Hochverfügbarkeit über Server nein je nach Plattform ja
Kosten im Kleinen am niedrigsten niedrig bis mittel mittel bis hoch
Lernkurve flach flach steil

Gute Praxis für jeden Weg

  1. Images in der CI bauen, nicht auf dem Laptop, und mit dem Git-Commit taggen.
  2. Secrets nicht ins Image, sondern als Umgebungsvariablen oder über den Secret-Speicher der Plattform.
  3. Nicht als root laufen, wo es geht, und Basis-Images aktuell halten.
  4. Logs auf die Standardausgabe schreiben, damit die Plattform sie einsammeln kann.
  5. Volumes und Datenbanken sichern und die Wiederherstellung regelmäßig testen.
  6. Health Checks einrichten, damit die Plattform kranke Container selbst neu startet.

Unsere Empfehlung

Starten Sie mit der einfachsten Lösung, die Ihre heutigen Anforderungen erfüllt. Für ein einzelnes Produktteam ist das meist ein PaaS, gehostet oder selbst betrieben, oder Compose auf einem gut gepflegten Server. Wechseln Sie zu Kubernetes, wenn Sie das konkrete Problem benennen können, das es löst. Ob Sie Ihre Anwendung in viele Dienste aufteilen, ist eine eigene Entscheidung; lesen Sie vorher Microservices oder Monolith?.

Häufige Fragen

Taugt Docker Compose für den Produktivbetrieb?

Für viele kleine Anwendungen ja, auf einem Server mit automatischem Deployment, Monitoring und Backups. Grenzen sind Hochverfügbarkeit über mehrere Maschinen und automatisches Umziehen nach einem Serverausfall. Wer das braucht, wechselt zu einem PaaS oder zu Kubernetes.

Brauche ich eine Container-Registry?

Wenn Sie Images in der CI bauen und auf Server verteilen, ja. Viele Git-Plattformen und Cloud-Anbieter, auch europäische, bieten Registries an. Ein PaaS, das direkt aus dem Repository baut, macht eine eigene Registry oft überflüssig.

Was ist mit Docker Swarm oder Nomad?

Beide sind schlankere Orchestrierer als Kubernetes und noch im Einsatz. Ihr Ökosystem ist kleiner, verwaltete Angebote sind selten. Für die meisten kleinen Teams fällt die Wahl deshalb zwischen Compose, PaaS und Managed Kubernetes.

Wohin mit der Datenbank?

Eine Datenbank im Container ist möglich, dann gehören Backups, Upgrades und Wiederherstellung aber Ihnen. Eine verwaltete Datenbank beim Cloud-Anbieter ist den Aufpreis oft wert, gerade bei Produktivdaten.

Mehr aus Cloud-native