Keine Wolkenschlösser: Informatiker untersuchen Erfolgsfaktoren für den Entwurf von Cloud-Anwendungen
Was für die Nutzer häufig als eine einzige Anwendung erscheint, ist im Hintergrund wesentlich komplexer: Moderne Cloud-Anwendungen, die besonders im Unternehmenskontext eingesetzt werden, bestehen eigentlich aus einer Vielzahl von Teilanwendungen. Dazu zählen Dienste für die Datenspeicherung, Bezahlfunktionen, das Nutzermanagement und zahlreiche andere Aufgaben. Diese Teilsysteme können von Unternehmen selbst verwaltet oder bei Clouddienstleistern eingekauft werden.
Der Komplexität begegnen
Softwarearchitekten behalten in diesem Dickicht von Technologien, Diensten und Anbietern den Überblick. Ihre Aufgabe ist es, zu entscheiden, wie die verschiedenen Teile eines Systems umgesetzt werden, wie sie zusammenarbeiten und auf welcher Infrastruktur sie betrieben werden. Nur durch einen klugen Softwareentwurf können die Vorteile des Cloud Computing maximal ausgenutzt werden. Dazu gehören etwa eine hohe Verfügbarkeit und Performanz der Anwendung. Sie kann im Optimalfall auf variierende Belastung reagieren (Skalierbarkeit) und ist dadurch kosteneffektiv.
Um Softwarearchitekten in ihrer Arbeit zu unterstützen, entwickeln die Informatiker Robin Lichtenthäler und Prof. Dr. Guido Wirtz vom Lehrstuhl für Praktische Informatik ein Qualitätsmodell für den Entwurf von Cloud-Anwendungen. In diesem Qualitätsmodell ist beschrieben, wie sich Designentscheidungen auf verschiedene Qualitätsaspekte auswirken. Die Grundlage hierfür bietet das etablierte Meta-Modell Quamoco.
Was eine gute Architektur ausmacht
Ausgehend von einer Literaturrecherche in der Fachliteratur, praktischen Handbüchern und gängigen Standards identifizierten die Bamberger Informatiker zunächst 45 relevante Faktoren und 24 Qualitätsaspekte. Anschließend ließen sie Experten das Verhältnis zwischen beiden bewerten. Beispielsweise wurde ein positiver Zusammenhang zwischen dem Automatisierungsgrad der Infrastruktur und der Anpassbarkeit der Anwendung hergestellt. Wenn eine neue Version der Anwendung etwa mehr Leistung benötigt, zahlt es sich aus, wenn weitere Server automatisiert eingerichtet und an das System angebunden werden können. Manuelle Arbeitsschritte wirkten hier hinderlich.
Die Expertenbefragung erlaubte es den Wissenschaftlern, ihr Modell zu validieren und zu verfeinern. Unter anderem konnten mehrdeutige Faktoren in mehrere einzelne aufgeteilt werden. Insgesamt sahen sich die Informatiker aber in ihrem Modell bestätigt. Der aktuelle Zwischenstand des Projekts kann Entwicklern daher schon heute in ihrer Entscheidungsfindung helfen.
Qualität messbar machen
Designentscheidungen in der Softwareentwicklung basieren häufig auf sogenannten Entwurfsmustern (Patterns). Die Autoren heben als interessante Erkenntnis hervor, dass diese eng mit den in einem Qualitätsmodell formulierten Produktfaktoren verknüpft sind. Empfehlungen aus praktischen Handbüchern in Form von Entwurfsmustern lassen sich daher häufig in Produktfaktoren übertragen.
Für ihre zukünftige Arbeit nehmen sich die Wissenschaftler die weitere Validierung des Modells vor. Dabei sollen unter anderem negative Beziehungen stärker beleuchtet werden, die methodisch bedingt aktuell noch nicht so stark vertreten sind. Ein weiterer Ansatz für die künftige Arbeit ist die quantitative Validierung des Modells. Hierfür müssen die Produktfaktoren messbar gemacht werden.
Im zuvor genannten Beispiel der Automatisierung könnte eine Maßzahl sein, wie groß der Anteil der Dienste ist, die ohne manuelles Eingreifen ausgerollt werden können. Solche Maßzahlen können dann innerhalb eines Werkzeugs Entwicklern ermöglichen, die Qualität einer Anwendung zu evaluieren. Die Entwicklung eines solchen Werkzeugs steht jedoch vor der Herausforderung, die Vielzahl der verfügbaren Technologien abzudecken, mit denen Cloud-Anwendungen realisiert werden. Nichtsdestotrotz fokussieren sich die Autoren aktuell auf die Umsetzung eines solchen Werkzeugs für Modelle von Softwarearchitekturen.
Publikation: Lichtenthäler, R., & Wirtz, G. (2024). Formulating a quality model for cloud-native software architectures: conceptual and methodological considerations. Cluster Computing. DOI: 10.1007/s10586-024-04343-4