10. November 2022

Libelle IT-Glossar Teil 19: Was ist die “The Twelve-Factor App” Methode?

AuthorMattia de Filippo

Software as a Service (SaaS) ist seit Jahren ein wichtiger Bestandteil der IT-Landschaft, besonders im Bereich der Software-Entwicklung.

Dabei gibt es ganz bestimmte Anforderungen zu erfüllen:

  • automatisierte Konfiguration
  • optimale Kompatibilität mit dem Betriebssystem
  • bedarfsgerechte Cloudnutzung
  • flexible Skalierbarkeit

Bei der Entwicklung einer Softwarelösung beziehungsweise Web-App wird besonders nach diesen Kriterien geschaut und von den Anwendern auch bewertet. Die Twelve-Factor App ist eine Methode, um die Entwicklung objektiv und effizient umzusetzen.

Doch was genau ist die “The Twelve-Factor App” Methode?

Die Methode soll vor allem Entwickler beim Bauen von Apps, die als Dienste laufen, unterstützen. Aber auch die Administratoren, die diese Apps managen oder deployen.

Sie bietet die Möglichkeit, das Bewusstsein zu schärfen für systembedingte Probleme in der aktuellen Applikationsentwicklung, ein gemeinsames Vokabular zur Diskussion dieser Probleme zu liefern und ein Lösungsportfolio zu diesen Problemen mit einer zugehörigen Terminologie.

Die Entwickler hinter dem 12-Factor-Framework sind Experten, die an vielen App-Entwicklungen für die Cloud Application Platform „Heroku“ mitgewirkt haben. Ein großer Vorteil der Heroku-Cloud ist, dass sie den Entwicklern und Anwendern als Open-Source-Projekt eine effiziente Entwicklungsarbeit durch international tätige Experten ermöglicht. (Quelle)

Allgemeine Anforderungen

Für die Automatisierung der Konfiguration wird ein deklaratives Format genutzt. Somit können Zeit und Kosten für neue Entwickler im Projekt minimiert werden.

Es wird eine saubere Basis mit dem zugrundeliegenden Betriebssystem geschaffen, um eine maximale Portierbarkeit zwischen Ausführungsumgebungen zu bieten.

Die Einigung auf eine moderne Cloud-Plattform ist für das Deployment wichtigum die Aufwände für Server und deren Administration zu reduzieren.

Um ein maximal agiles Continuous Deployment zu ermöglichen, gilt es die Abweichung zwischen Entwicklung und Produktion zu minimieren.

Die Skalierbarkeit in der Architektur oder den Entwicklungsverfahren ohne wesentliche Änderungen im Tool ist ebenfalls eine allgemeine Anforderung.

Zudem kann die Zwölf-Faktoren-Methode auf Apps angewendet werden, die in einer beliebigen Programmiersprache geschrieben sind, und die eine beliebige Kombination von unterstützenden Diensten benutzen (Datenbank, Queue, Cache, …). (Quelle)

Die zwölf Faktoren im Überblick

Diese zwölf Punkte sind eine Synthese zahlreicher Erfahrungen und der Beobachtungen einer großen Bandbreite von Software- as a Service Apps:

  • Codebase
    Eine im Versionsmanagementsystem verwaltete Codebase, viele Deployments
  • Abhängigkeiten
    Abhängigkeiten explizit deklarieren und isolieren
  • Konfiguration
    Die Konfiguration in Umgebungsvariablen ablegen
  • Unterstützende Dienste
    Unterstützende Dienste als angehängte Ressourcen behandeln
  • Build, release, run
    Build- und Run-Phase strikt trennen
  • Prozesse
    Die App als einen oder mehrere Prozesse ausführen
  • Bindung an Ports
    Dienste durch das Binden von Ports exportieren
  • Nebenläufigkeit
    Mit dem Prozess-Modell skalieren
  • Einweggebrauch
    Robuster mit schnellem Start und problemlosem Stopp
  • Dev-Prod-Vergleichbarkeit
    Entwicklung, Staging und Produktion so ähnlich wie möglich halten
  • Logs
    Logs als Strom von Ereignissen behandeln
  • Admin-Prozesse
    Admin-/Management-Aufgaben als einmalige Vorgänge behandeln (Quelle)

In den folgenden Blogbeiträgen der „The Tweleve-Factor App“ werden wir auf die zwölf Faktoren genauer eingehen.

Noch mehr IT-Begriffe und spannende Themen gefällig? Dann besuchen Sie gerne die anderen Teile unseres Libelle IT-Glossars, unseren IT-Blog oder folgen Sie uns auf LinkedIn, Facebook oder Twitter.


Empfohlenene Artikel
22. Dezember 2022 Libelle IT-Glossar Teil 22: Was ist DevOps?
30. November 2022 Die 12-Faktor-App Teil 3: (Einweggebrauch, Dev-Prod-Vergleichbarkeit, Logs, Admin-Prozesse)

Alle Blogartikel