MDH GROUP · BLOG

Affilentra in Containern betreiben: Docker‑ & Kubernetes‑Deployment für stabile self‑hosted Installationen

Einleitung Self‑hosted Partnervertrieb verlangt verlässliche Betriebsabläufe: verlässliches Tracking, sichere Datenhaltung und planbare Updates ohne Unterbrechung. Affilentra liefert die Software‑Basis als PHP/MySQL‑Applikation. Dieser Leitfaden zeigt praxisnah, wie Sie Affilentra als containerisier

← Alle Beiträge

Affilentra in Containern betreiben: Docker‑ & Kubernetes‑Deployment für stabile self‑hosted Installationen

Einleitung

Self‑hosted Partnervertrieb verlangt verlässliche Betriebsabläufe: verlässliches Tracking, sichere Datenhaltung und planbare Updates ohne Unterbrechung. Affilentra liefert die Software‑Basis als PHP/MySQL‑Applikation. Dieser Leitfaden zeigt praxisnah, wie Sie Affilentra als containerisierte Anwendung betreiben — mit Docker‑Compose für einfache Setups und Kubernetes für skalierbare, ausfallsichere Produktionsumgebungen. Fokus: Persistenz für MySQL, Backups, Secrets‑Management und Zero‑Downtime‑Updates für PRO & NETWORK Editionen.

Architekturüberblick

Typische Komponenten einer Affilentra‑Installation:

  • PHP‑Applikation (Affilentra): Web‑Frontend, API, Scheduler/Jobs
  • Webserver (Nginx/Apache) oder Reverse‑Proxy (Traefik/Ingress)
  • MySQL‑Datenbank (persistente Speicherung)
  • Optional: Redis für Session/Cache, SMTP für Mail‑Versand, Objekt‑Storage für Assets
  • Monitoring, Logging, Backup‑Jobs

Rollenbasiert bleiben Betreiber, Händler und Partner logisch getrennt – die Plattform stellt die technischen Rahmenbedingungen bereit.

Docker‑Compose: pragmatisches Produktionssetup

Für kleine bis mittlere Installationen ist Docker‑Compose oft ausreichend. Wichtige Bestandteile:

  • Service "app": PHP‑FPM oder PHP + eingebetteter Webserver. Mounten Sie den Anwendungscode read‑only, konfigurieren Sie persistenten Upload‑Ordner.
  • Service "db": MySQL 8, mit einem persistenten Volume für /var/lib/mysql.
  • Reverse‑Proxy: Traefik oder ein Nginx‑Container, externe TLS‑Zertifikate.
  • Optional: redis, mailer, backup‑container.

Umgebungsvariablen (DB_HOST, DB_NAME, DB_USER, DB_PASSWORD) sollten nicht im Compose‑File offenstehen. Verwenden Sie eine .env‑Datei mit restriktiven Berechtigungen oder Docker Secrets in Swarm‑Setups. Persistenz: setzen Sie Named Volumes oder Host‑Mounts auf dedizierten Datenträgern.

Backup & Restore: planen Sie einen separaten Backup‑Container oder Cron‑Job, der regelmäßig ein konsistentes mysqldump erstellt und die Dumps verschlüsselt in ein externes Ziel (S3‑kompatibel) schreibt. Testen Sie Restore‑Prozesse regelmäßig.

Kubernetes: Produktionsreife Manifeste

Kubernetes bietet bessere Skalierung, Ausfallsicherheit und Integrationen. Empfohlene Ressourcen:

  • Deployment für die Affilentra‑App mit Readiness/Liveness‑Probes (z. B. Health‑Endpoint der Anwendung).
  • StatefulSet für MySQL mit PersistentVolumeClaims (PV/PVC) und einer passenden StorageClass (CSI‑Plugin für Cloud/On‑Prem).
  • Service (ClusterIP) für interne Kommunikation; Ingress (oder Ingress Controller) für externen Zugriff mit TLS.
  • ConfigMap für nicht‑sensible Konfiguration; Secrets für Datenbank‑Credentials, API‑Keys, SMTP‑Passwörter.
  • Job/CronJob für Datenbankmigrationen, Backups und regelmäßige Wartungsaufgaben.

StatefulSet sorgt dafür, dass MySQL‑Pods stabil an persistente Volumes gebunden bleiben. Nutzen Sie VolumeSnapshots (wenn Ihr Storage‑Provider das unterstützt) zusätzlich zu mysqldump für schnellere Wiederherstellung.

Persistenz für MySQL & Backup‑Strategien

Grundregeln für Datenintegrität:

  • Nutzen Sie dedizierte PersistentVolumes mit einer zuverlässigen StorageClass. Vermeiden Sie ephemeral Storage für Datenbanken.
  • Führen Sie regelmäßige Logical‑Backups (mysqldump oder mydumper) zur Erfüllung von Prüf- und Migrationsanforderungen durch.
  • Ergänzen Sie bei Bedarf durch physische Backups (z. B. Percona XtraBackup) oder Storage‑Snapshots für große Datenmengen.
  • Sichern Sie Backups verschlüsselt und redundant (mindestens offsite). Testen Sie Wiederherstellungen in einer isolierten Umgebung.
  • Planen Sie Backup‑Retention und Aufbewahrungsrichtlinien passend zu Compliance‑Anforderungen.

Praxis: Ein CronJob erstellt tägliche Dumps, ein wöchentlicher Snapshot sorgt für schnelle Restore‑Punkte; automatisierte Verify‑Jobs stellen sicher, dass Dumps lesbar sind.

Secrets‑Management

Secrets sind kritisch für Sicherheit und Betriebssicherheit:

  • Docker‑Compose: nutzen Sie Docker Secrets oder eine verschlüsselte .env; beschränken Sie Dateiberechtigungen.
  • Kubernetes: legen Sie sensible Werte in Secrets ab und verwenden Sie Tools wie Sealed‑Secrets oder External‑Secrets, um GitOps‑Workflows sicher zu ermöglichen.
  • Für zentralisiertes Management in größeren Umgebungen empfiehlt sich ein Secret‑Store wie HashiCorp Vault oder ein Cloud‑KMS.

Ersetzen Sie Secrets zyklisch und dokumentieren Sie Zugriffskontrollen pro Rolle (Betreiber vs. Händler vs. Partner).

Zero‑Downtime‑Updates

Updates ohne Unterbrechung sind in Partner‑Netzwerken entscheidend. Vorgehensweise:

  • Stellen Sie Rolling‑Updates für App‑Deployments ein und nutzen Sie Readiness‑Probes, damit nur gesunde Pods Traffic erhalten.
  • Für Datenbankschemata: setzen Sie auf rückwärtskompatible Migrationsschritte. Führen Sie migrations‑schritte in zwei Phasen durch (Write‑compatible, Read‑compatible) oder nutzen Sie Feature‑Flags.
  • Führen Sie migrationskritische Schritte als Kubernetes Jobs aus, die außerhalb der Produktionspfade laufen, oder nutzen Sie Blue‑Green/Canary‑Pattern auf Ingress‑Ebene, um Traffic schrittweise umzuschichten.
  • Sessions und Caches: externalisieren Sie Session‑State (z. B. Redis), damit Pods beliebig ersetzt werden können.
  • Bereiten Sie ein kurzes Fallback‑Szenario vor (Rollback‑Image, Datenbank‑Snapshot) anstelle langer Wartungsfenster.

So reduzieren Sie Ausfallrisiken bei Updates für PRO & NETWORK Editionen, auch wenn hohe Nutzerzahlen vorliegen.

Monitoring, Logging, Betrieb

Ein stabiles Deployment steht auf Überwachung und sichtbaren Metriken:

  • Sammeln Sie Logs zentral (ELK/EFK, Loki) und instrumentieren Sie App‑Metriken (Prometheus, Grafana).
  • Richten Sie Alerts für Fehler‑Raten, Latenzen, Disk‑Utilization und Backup‑Fehler ein.
  • Dokumentieren Sie Runbooks für gängige Vorfälle: DB‑Restore, Netzwerkausfall, TLS‑Erneuerung.

Praktische Checkliste für den Produktivstart

Kurze, handhabbare Schritte:

  • 1) Umgebung bereitstellen: Host, Kubernetes‑Cluster oder Docker‑Host mit ausreichend Storage.
  • 2) Storage und Secrets anlegen: PV/PVC, StorageClass, Secret‑Store einrichten.
  • 3) Basisdeployment: App + MySQL starten, Migrations‑Job ausführen, Smoke‑Tests durchführen.
  • 4) Backup und Monitoring aktivieren und Restore testen.
  • 5) Update‑Strategie festlegen: Rolling/Blue‑Green, Migrations‑Jobs und Feature‑Flags planen.
  • 6) Betriebshandbuch mit Rollen und Zuständigkeiten veröffentlichen.

Fazit und nächster Schritt

Affilentra lässt sich flexibel containerisieren — von unkomplizierten Docker‑Compose‑Setups bis zu skalierbaren Kubernetes‑Deployments. Entscheidend sind dauerhafte Persistenz für MySQL, getestete Backup‑ und Restore‑Prozesse, ein sicherer Umgang mit Secrets und eine Update‑Strategie, die Downtime minimiert. Setzen Sie auf Readiness‑Probes, externe Session‑Stores und migrations‑sichere Änderungen, um PRO & NETWORK Editionen stabil zu betreiben.

Einstieg wählen

Nächster Schritt

Affilentra selbst ausprobieren

Einheitliche Plattform, die Produktbereitstellung, Tracking, Conversion-Validierung, Provisionsberechnung und Auszahlung entlang klar getrennter Rollen transparent zusammenführt; Option zur self-hosted Installation mit Dauerlizenz ohne Umsatzbeteiligung; Händler behalten Kontrolle über Produkte, Konditionen und Werbemittel; Partner erhalten persönliche Trackinglinks und nachvollziehbare Auszahlungshistorie.

Einstieg wählen