Technologien

← Startseite
Infrastruktur & Deployment

Cloud, Docker & DevOps — schnelle, zuverlässige Deployments

Wir containerisieren alle Anwendungen mit Docker, orchestrieren sie mit Docker Compose (oder Kubernetes bei Enterprise-Projekten), richten Caddy als Reverse Proxy mit automatischem SSL ein und automatisieren den gesamten Deployment-Zyklus über GitHub Actions — vom Commit bis zur Produktion.

Containerisierung mit Docker und Docker Compose

Jeder Dienst hat sein eigenes mehrstufiges Dockerfile: eine Build-Stufe, die Abhängigkeiten installiert und kompiliert, und eine minimale finale Stufe (distroless oder Alpine), die nur die nötigen Artefakte enthält. Ein typisches Next.js-Image bleibt unter 150 MB, ein FastAPI-Image unter 80 MB. Die Images werden bei jedem Merge auf main neu gebaut und semantisch getaggt (`v1.2.3` + `latest`).

Docker Compose beschreibt den gesamten Stack: Frontend, API, Datenbank, Redis und Worker. Sensible Variablen (Datenbankpasswort, API-Schlüssel, Stripe-Secret) liegen in einer `.env`, die von Git ausgeschlossen ist — niemals fest im Image. Health Checks in Compose stellen sicher, dass Abhängigkeiten bereit sind, bevor gestartet wird (Datenbank bereit → API startet → Frontend startet).

  • Build-Cache mit `--mount=type=cache` — `npm ci` in unter 30 s in der CI
  • Optimierte Layer-Reihenfolge: stabile Abhängigkeiten zuerst, dann der Quellcode
  • Secrets-Verwaltung mit Docker Secrets oder HashiCorp Vault bei Enterprise-Projekten
  • `restart: unless-stopped` + `docker compose up --no-deps` für atomare Deployments

Caddy — moderner Reverse Proxy mit automatischem SSL

Caddy 2.8 verwaltet SSL/TLS automatisch über ACME (Let's Encrypt oder ZeroSSL) — kein abgelaufenes Zertifikat, keine manuelle Konfiguration. HTTP/2 und HTTP/3 (QUIC) sind standardmäßig aktiv. Sicherheits-Header (HSTS, X-Frame-Options, CSP) werden global über wiederverwendbare Snippets gesetzt. Die deklarative Caddyfile-Konfiguration lässt sich diffen und wird in Git versioniert.

Rate Limiting, gzip-/brotli-Komprimierung und strukturiertes JSON-Logging aktivieren wir über native Caddy-Direktiven — ohne Nginx-Module oder aufwendige Apache-Konfiguration. Zugriffe auf sensible Pfade (`/admin`, `.env`, `.git`) beantwortet ein globales Sicherheits-Snippet mit 444 (keine Antwort).

  • TLS-Konfiguration ausschließlich mit TLS 1.3 und modernen Cipher Suites
  • On-Demand-TLS für Multi-Tenant-SaaS mit dynamischen Subdomains
  • Reload ohne Downtime — `caddy reload` unterbricht keine aktiven Verbindungen
  • Caddy-Logs → Loki → Grafana — Traffic-Analyse und Alarme bei Anomalien

GitHub Actions CI/CD und Monitoring

Die CI-Pipeline läuft bei jedem PR: Lint, Typprüfung, Unit-Tests, Bau des Docker-Images und Schwachstellenscan (Trivy). Bestehen alle Schritte, wird das Image in die Registry gepusht und automatisch auf Staging ausgerollt. Ein Merge auf main bedeutet automatisches Deployment in die Produktion mit anschließendem Health Check. Schlägt dieser innerhalb von 60 Sekunden fehl, erfolgt ein automatischer Rollback.

Für das Monitoring nutzen wir Grafana und Prometheus für Anwendungsmetriken (Latenz, Fehlerrate, Queue-Größe) sowie Loki für die Log-Aggregation. Alarme laufen über Slack oder E-Mail: Fehlerrate über 1 %, P95-Latenz über 500 ms, Festplatte über 85 % Auslastung. Das externe Uptime-Monitoring übernimmt Better Uptime — ein öffentliches SLA-Dashboard stellen wir auf Wunsch bereit.

  • Trivy-Schwachstellenscan der Images — kritische CVEs blockieren das Deployment
  • Dependabot mit Auto-Merge für Patch-Updates (setzt eine grüne CI voraus)
  • Automatisches Datenbank-Backup in S3-kompatiblen Speicher (nächtlich, 30 Tage Aufbewahrung)

Vorteile und Grenzen

Vorteile

  • Deployment mit automatischem Rollback bei fehlgeschlagenem Health Check.
  • Automatisches SSL/TLS über Caddy — kein manuell abgelaufenes Zertifikat.
  • Reproduzierbare Umgebung: dasselbe Docker-Image in Entwicklung, Staging und Produktion.
  • Monitoring und Alarme (Grafana, Loki) — Probleme werden vor den Nutzern sichtbar.

Grenzen

  • Docker Compose skaliert bei Multi-Node-Enterprise-Setups nicht wie Kubernetes.
  • Das initiale CI/CD-Setup kostet Zeit und erfordert DevOps-Erfahrung.
  • Images und Logs belegen Speicherplatz — regelmäßiges Aufräumen ist nötig.
  • Vollständiges Monitoring (Prometheus + Grafana) bringt weitere zu pflegende Dienste mit sich.

Kurzes Fazit

Docker, Caddy und GitHub Actions sind die ideale Kombination für zuverlässige Deployments auf einem VPS oder wenigen Knoten. Bei Dutzenden Knoten mit aggressivem Auto-Scaling führt der Weg zu Kubernetes.

Technische Daten

FähigkeitGrenze / SchwelleTypischer Einsatz
OrchestrierungDocker Compose, kompletter StackEin Knoten; mehrere Knoten erfordern Swarm oder K8sVPS, kleine bis mittlere Projekte
Reverse ProxyCaddy 2.8, HTTP/3, automatisches SSLSehr komplexe Regeln erfordern eine ausführliche KonfigurationMehrere Domains, Multi-Tenant
CI/CDGitHub Actions, automatisiertes DeploymentCI-Minuten werden jenseits des Free-Tier abgerechnetAutomatisch vom Commit bis in die Produktion
Typische KostenVPS ab etwa 5 €/MonatMonitoring und Backup verursachen ZusatzkostenVon der einzelnen Website bis zum Multi-Brand-Betrieb

Docker Compose im Vergleich zu Kubernetes

KriteriumDocker ComposeKubernetes
Aufwand beim SetupGeringHoch
Multi-Node-Skalierung / Auto-ScalingEingeschränkt (ein Knoten)Ausgezeichnet
Geeignet fürVPS, kleine bis mittlere ProjekteGroße Flotten, Enterprise

Häufige Fragen

Warum Caddy und nicht Nginx?

Caddy verwaltet SSL/TLS automatisch über ACME, aktiviert HTTP/2 und HTTP/3 standardmäßig und kommt mit einer kurzen, deklarativen Konfiguration aus. Nginx benötigt für dasselbe Ergebnis Certbot und deutlich mehr manuelle Konfiguration.

Brauche ich Kubernetes?

Für die meisten Websites nicht. Docker Compose auf einem VPS betreibt eine Website oder einige Dienste zuverlässig. Kubernetes lohnt sich erst bei Dutzenden Knoten mit aggressivem Auto-Scaling.

Wie funktioniert ein Deployment?

GitHub Actions baut ein neues Image, startet es neben dem alten, führt einen Health Check aus und leitet dann den Traffic um. Schlägt der Health Check innerhalb von 60 Sekunden fehl, wird automatisch auf die vorherige Version zurückgerollt.

Welches Monitoring empfehlen Sie?

Grafana und Prometheus für Metriken (Latenz, Fehlerrate) sowie Loki für aggregierte Logs, mit Alarmen über Slack oder E-Mail. Für die externe Verfügbarkeitsüberwachung kommt ein unabhängiger Dienst wie Better Uptime hinzu.

4b2b.net
Business-Ökosystem
4conta.ro
Buchhaltung
4invoices.net
Rechnungs-App
4expenses.net
Spesenmanagement
4notify.net
Benachrichtigungen
4hosting.net
Hosting
4database.net
Datenbanken
4buildsite.net
Website-Baukasten
4myapp.net
App-Baukasten
4avatars.net
KI-Avatare
4chaty.net
KI-Chatbot
4webagency.net
Web-Agentur-Software
4softedu.net
Bildungs-Websites
4softcrm.net
CRM-Plattform
4softerp.net
ERP-System
4softhr.net
Personalverwaltung
4mystaff.net
Mitarbeiter-Portal
4myprojects.net
Projektmanager
4mycontracts.net
Verträge
4docs.net
Dokumentenmanagement
4appointments.net
Termine
4marketingonline.net
Marketing
4insurance.net
Versicherung
4property.net
Immobilien
4lawyers.net
Anwaltssoftware
4mygarage.net
Autowerkstatt
4driving.net
Fahrschulen
4fleet.net
Fuhrparkverwaltung
4myevents.net
Veranstaltungen
4therapy.net
Therapie
4clinics.net
Kliniken
4dental.net
Zahnarztpraxen
4restaurants.net
Restaurants
4beautify.net
Beautysalon
4gym.net
Fitnessstudios
4guards.net
Sicherheitsfirmen
4softvet.net
Tierarztpraxen
4softauto.net
Autohaus-Software
4construct.net
Bauunternehmen
4marketplace.net
Marktplatz
4shopy.net
Online-Shop
4pricing.net
Preisvergleich
4salefood.net
Essenslieferung
4rentify.net
Vermietung
4transports.net
Transport
4agencytravel.net
Reisebüro
4hotel.net
Hotelmanagement
4ong.net
NGO-Verwaltung