Heroku hat ein Zwölf-Faktoren-Manifest für moderne Anwendungen veröffentlicht. Wir nutzen es als Checkliste für unsere Projekte — und stellen fest, wie viele Regeln wir brechen.
Zentrale Faktoren¶
I. Codebase: Ein Repository = eine Anwendung. Geteilter Code gehört in Bibliotheken. III. Config: Konfiguration in Umgebungsvariablen, nicht im Code. Keine hartcodierten URLs. IV. Backing Services: Datenbanken, Caches und Messaging als anschließbare Ressourcen. VI. Processes: Stateless Prozesse. Session-Daten in einem externen Store (Redis).
Abhängigkeiten und Ports¶
II. Dependencies: Explizit deklariert (Maven pom.xml). Kein „ist auf dem Server installiert”. VII. Port Binding: Die Anwendung exportiert HTTP als Service auf einem Port. Embedded Server (Spring Boot). VIII. Concurrency: Über Prozesse skalieren, nicht über Threads. Horizontale Skalierung.
Deploy und Betrieb¶
V. Build, Release, Run: Strikte Trennung der Phasen. Ein Build erzeugt ein Artefakt; ein Release fügt Config hinzu. IX. Disposability: Schneller Start, Graceful Shutdown. Container unterstützen dies natürlich. X. Dev/Prod Parity: Unterschiede zwischen Umgebungen minimieren. Docker löst das. XI. Logs: Auf stdout loggen und die Infrastruktur sammeln lassen. XII. Admin Processes: Einmalige Admin-Aufgaben als Teil der Codebasis.
Die 12-Factor App als Kompass¶
Sie müssen nicht alle zwölf Faktoren vom ersten Tag an befolgen. Aber sie zu kennen und darauf hinzuarbeiten — das ist der Unterschied zwischen einer modernen Anwendung und Legacy-Code vom allerersten Commit an.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns