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.
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.



