Evaluation der Qualität Cloud-nativer Software Architekturen

Cloud-native Anwendungen werden explizit für moderne Cloud-Umgebungen entwickelt und sind darauf ausgelegt, die Vorteile des Cloud Computing optimal auszunutzen. Dies umfasst mehrere Aspekte, wie z.B. eine fein-granulare modulare Architektur, die Verwendung vorhandener Cloud Services statt eigener Entwicklungen, die Ausnutzung der durch die Cloud ermöglichten Elastizität, die Robustheit der Anwendung durch die Verteilung auf unabhängige Rechner, sowie einen insgesamt schnelleren und agileren Entwicklungsprozess.
In diesem Projekt soll erforscht werden, wie eine Entwicklung solcher cloud-nativen Anwendungen unter Beachtung der schon genannten Aspekte unterstützt werden kann. Der Fokus liegt dabei auf der Gesamtarchitektur einer cloud-nativen Anwendung, d.h. wie die einzelnen Komponenten betrieben werden, in Zusammenhang stehen und miteinander interagieren.

Ziel ist es, ein Qualitäts-Modell zu erstellen, welches die verschiedenen Charakteristiken Cloud-nativer Anwendungen umfasst und anhand einer Hierarchie übergeordneten Qualitätsaspekten zuordnet. Diese Zuordnungen sollen dabei sowohl positive als auch negative Auswirkungen auf Qualitätsaspekte umfassen können und es sollen sich Zuordnungen einzelner Charakteristiken zu mehreren verschiedenen Qualitätsaspekten formulieren lassen. Mit Hilfe einer geeigneten Darstellung der Architektur einer cloud-nativen Anwendung soll es dann möglich sein, das Qualitäts-Modell auf eine solche Architektur anzuwenden und anhand aussagekräftiger Kennzahlen und Metriken die verschiedenen Qualitätsaspekte zu evaluieren. Einerseits soll es mit dem Qualitäts-Modell somit möglich sein, die Qualität einer Architektur für einen bestimmten Aspekt zu evaluieren und zu verbessern und andererseits sollen auch Tradeoffs zwischen verschiedenen Qualitätsaspekten anhand von Architektur-Alternativen sichtbar werden.

Das Qualitäts-Modell soll dabei in verschiedenen Kontexten einsetzbar sein, z.B. beim Architekturdesign und der Planung einer neuen Anwendung aber auch bei der Analyse und Verbesserung einer bestehenden Anwendung.

Um das Qualitäts-Modell auch praktisch anwendbar zu machen, ist eine geeignete Tool-Unterstützung essentiell. Eine prototypische Umsetzung sollte daher mit der Entwicklung einhergehen. Die Tool-Unterstützung sollte es ermöglichen Software Architekturen Cloud-nativer Anwendung zu modellieren, sodass dann eine Qualitäts-Evaluation auf Basis des Qualitätsmodells für eine modellierte Architektur durchgeführt werden kann. Bei der Umsetzung soll dabei auf einen möglichst hohen Grad der Automatisierung geachtet werden und auch die Integration mit anderen verbreiteten Tools sollte möglich sein.