Die Architektur einer von Anfang an für die Cloud entwickelten Anwendung zeichnet sich durch hohe Flexibilität, Resilienz und Wartungsfreundlichkeit aus. Die Software ist in einzelne Services aufgeteilt, was deren parallele Entwicklung in unterschiedlichen Teams ermöglicht. Die Aufgaben für das Deployment und die Überwachung dieser Services müssen automatisiert sein, um alle Vorteile einer Cloud nutzbar zu machen. Der Betrieb bekommt diese nach Fertigstellung in einem Standardformat bereitgestellt, etwa als Docker-Image. Dadurch kann er sie ohne weitere Komplikationen in Produktion bringen.
Der grundlegende Standard für den professionellen Betrieb von Cloud-basierter Software ist Kubernetes beziehungsweise davon abgeleitete kommerzielle Derivate, etwa OpenShift. Kubernetes versetzt den IT-Betrieb in die Lage, Services ohne Downtime in Betrieb zu nehmen, Lastspitzen durch automatische Skalierung abzufedern und die einzelnen Services kontinuierlich zu monitoren.
Weitere wichtige Bestandteile der Cloud-basierten Softwareentwicklung sind
- Swagger: Werkzeugsammlung zur Definition, Validierung und Dokumentation von Schnittstellen (APIs), insbesondere RESTful-APIs
- DevOps: Prozess zur weitgehenden Automatisierung der Entwicklung, Bereitstellung und Wartung von Anwendungen unter gleichzeitiger Anpassung der Kollaborationskultur zwischen allen an Umsetzung und Betrieb beteiligten Parteien Fachlichkeit und IT
- Continuous Integration und Continuous Delivery (CI/CD): automatisierte Test- und Deployment-Prozesse machen schnelle und effiziente Änderungen an Anwendungen möglich
- Testautomatisierung: stellt die Qualität der Anwendung sicher und muss möglichst nahtlos in den Entwicklungsprozess integriert sein
- Infrastructure as Code (IaC): beschreibt Infrastruktur als Code und sichert so deren Konsistenz sowie die Wiederholbarkeit von Deployments; dadurch kann aus mehreren Services auf Knopfdruck eine Applikation aufgesetzt werden
Cloud-native Entwicklung ist keineswegs ein rein technisches Thema. Schließlich ermöglicht sie allen Beteiligten, sich auf bankfachliche Anwendungsfälle zu konzentrieren. Es entstehen verständliche Lösungen für konkrete bankfachliche Problemstellungen. Zugleich lassen sie sich von mehreren Abnehmern verwenden, was eine Integration in verschiedene Kontexte möglich macht. Cloud-native-entwickelte Lösungen können dadurch bankfachliche Ende-zu-Ende-Prozesse unterstützen.
Cloud-native Softwaresysteme sind aufgrund ihrer Architektur deutlich flexibler, leichter skalierbar und unterstützen einen 24/7-Betrieb. Unser PPI-Softwareentwicklungsteam stellt sicher, dass Ihnen diese Vorteile voll zugutekommen. Dafür setzen unsere Spezialisten auf eine hochgradige Automatisierung sowie eine durchdachte Modularisierung, um die parallele Bearbeitung möglichst vieler Aufgaben zu gestatten. So ist eine Umsetzung in kleinen, weitgehend unabhängigen Teilteams realisierbar. Dabei steht für uns die Fachlichkeit im Vordergrund. Die sich daraus ergebenden Requirements setzen wir leicht und verständlich in Cloud-native entwickelte Softwaresysteme um. Aus unserer Sicht handelt es bei der Cloud-native Softwareentwicklung keineswegs um einen Hype, sondern um eine neue Art, Softwareentwicklung und -betrieb zu denken.