Der moderne Ansatz Cloud-native-Computing bedeutet für Dich als Unternehmer ein hohes Maß an Flexibilität. Damit trägst Du der Tatsache Rechnung, dass heutzutage Ideen nicht monatelang im Hinterzimmer diskutiert werden können, sondern möglichst schnell auf dem Markt erprobt werden müssen. Auch die Ansprüche der Nutzer an die von Dir zur Verfügung gestellten Systeme sind gewachsen. User erwarten schnelle Reaktionsfähigkeit, innovative Tools und vor allem keine Ausfallzeiten. Mit Systemen, die in und für die Cloudumgebung konzipiert wurden, bist Du auf all das bestens vorbereitet.

Was sind die Vorteile des Zwölf-Faktor-Prinzips

Eine in der IT-Branche sehr weit verbreitete Methode, um eine cloudbasierte Anwendung zu erstellen, ist das Zwölf-Faktor-Prinzip. Die folgenden zwölf Faktoren bilden eine solide Grundlage für die Entwicklung Deiner Vision. Systeme, die nach diesem Prinzip konzipiert wurden, können schnell bereitgestellt werden, lassen sich jederzeit ergänzen und reagieren flexibel auf aktuelle Marktanforderungen.
Das Zwölf-Faktor-Prinzip:
  1. Codebasis
    Jeder Microservice basiert auf einem eigenen Programm-Code, der jeweils unabhängig gespeichert und verwaltet wird. Von diesem Programm-Code können beliebig viele Services gleichzeitig erstellt werden.
  2. Abhängigkeiten
    Jeder Microservice kann unabhängig angepasst und verändert werden. So musst Du bei Änderungswünschen oder Optimierungen nicht das gesamte System anfassen. Abhängigkeiten müssen explizit deklariert und isoliert werden, damit bei Änderungen keine Überraschungen auftreten.
  3. Konfiguration
    Konfiguriert wird nie ein spezifisches System, sondern umgebungsunabhängig. Damit ist sicher, dass Deine Services in der Cloud überall laufen können.
  4. Unterstützende Dienste
    Deine Services wie beispielsweise Cashes, Nachrichtenbroker oder Datenspeicher werden als angehängte Ressourcen behandelt. Damit sind sie von der Anwendung entkoppelt und somit austauschbar.
  5. Build, Release, Run
    Die Phasen der Erstellung und der Nutzung eines Services werden durch den Release-Prozess strikt voneinander getrennt. Dadurch werden in der Cloud keine Entwicklungswerkzeuge mehr benötigt und Dein Service auf das minimal Nötige reduziert – das erhöht die Sicherheit und spart Kosten im Betrieb.
  6. Stateless
    Um einen Service jederzeit austauschen oder skalieren zu können, müssen Services selbst ohne gespeicherte Zustände funktionieren. Nur so ist ein Zero-Downtime-Update ohne Datenverluste möglich.
  7. Bindung an Ports
    Dienste müssen durch das Binden an Netzwerk-Ports bereitgestellt werden, um dadurch die Isolation von anderen Microservices zu erreichen. So stellst Du sicher, dass Deine Anwendung in der Cloud skaliert werden kann.
  8. Parallelität
    Wenn die Kapazität erhöht werden muss, kannst Du sie horizontal über mehrere identische Services hinweg hochskalieren. Dies ist die größte Stärke der Cloud-native Architektur – automatische Anpassung an die gerade erforderliche Leistung.
  9. Austauschbarkeit
    Microservices können schnell gestartet und problemlos gestoppt werden. Diese Austauschbarkeit macht es möglich, bei einem Service-Ausfall in kürzester Zeit einen Ersatz bereit zu stellen oder hoch und herunter zu skalieren, wie es gerade nötig ist.
  10. Dev-Prod Parity
    Möglichst identische Umgebungen in Entwicklung, Staging und Produktion helfen dabei, alles vorab zu testen und vermeidbaren Probleme nicht erst im Produktionsbetrieb zu entdecken. Dabei wird nicht nur auf technische Nähe geachtet, sondern auch auf zeitliche (kurze Zeit von Entwicklung zu Deploy) und personelle Nähe (Entwickler sind für Betrieb mitverantwortlich – DevOps-Kultur).
  11. Logs
    Logs sollten als „event stream“ behandelt und archiviert werden. In einer Cloud-native-Anwendung dient dafür nicht mehr die klassische Log-Datei, sondern ein über Netzwerk-Ports angebundener Service. Die zentrale Erfassung aller Logs des gesamten Systems ermöglicht dem DevOps-Team Fehler zu erkennen, noch bevor Störungen im Betrieb auftreten.
  12. Admin-Prozesse
    Du solltest Admin-Aufgaben wie Datenbank-Updates als einmalige, unabhängige Vorgänge auslegen. Während ein Deploy den Produktionscode des Microservice automatisch in Betrieb nimmt, werden administrative Aufgaben von diesem Prozess unabhängig ausgelöst. Der notwendige Programm-Code für diese Aufgaben ist im Produktionscode mit enthalten, die Ausführung erfolgt aber davon unabhängig.

Mach´s einfach digital