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