Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen: http://dx.doi.org/10.18419/opus-11621
Autor(en): Matejetz, Simon
Titel: Extending modeling concepts of OpenClams to support performance analysis with layered queuing
Erscheinungsdatum: 2021
Dokumentart: Abschlussarbeit (Master)
Seiten: 65
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-116387
http://elib.uni-stuttgart.de/handle/11682/11638
http://dx.doi.org/10.18419/opus-11621
Zusammenfassung: For the last couple of years, cloud computing has become a more and more prevalent topic in software engineering. The ability to deploy software on a readily provided infrastructure naturally brings many opportunities, especially for smaller businesses. Additionally, many different cloud providers offer so-called backing services. Software developers can use these services as readily available components in their applications instead of implementing their own solutions for recurring use-cases like computation or data storage. The availability of readily available application environments and backing services led to new architectural styles, like microservice and cloud-native. Instead of deploying a monolithic application in a single self-hosted environment, an application can use the advantages of cloud computing much more efficiently if its logical parts are split up into independent components. While splitting up an application into smaller components entails several advantages through the domain of cloud computing, like the possibility to scale each component’s environment up or down individually, these new architectural styles inevitably add a new layer of complexity to the system. In a monolithic application, the most critical aspect of its architecture regards the complex internal processes. In contrast, in a component-based application, each component is kept as simple and small as possible. Therefore, the main complexity stems from the interaction between these independent components instead of their internal behavior. For this reason, software architecture faces new challenges when it comes to the cloud domain when modeling these interactions between cloud components. Because of this, we need a means to model the components of a cloud application and their interactions after successful initialization. OpenClams is a cloud modeling framework developed at the University of Stuttgart that enables a cloud architect to model a component-based cloud application based on probabilistic user behavior. Further, OpenClams assists the cloud architect in deciding between different cloud offerings by comparing their cost and availability via so-called evaluation services. An application’s architecture, described with Clams, can further be analyzed and optimized for its availability and the predicted costs of the modeled application as a whole. This work further extends the modeling concepts of OpenClams, enabling a cloud architect to attach performance information in the form of annotations to cloud components and their interactions. An additional evaluation service was developed as a part of this thesis which uses these provided pieces of performance information to transform the Clams model into a Layered Queuing Network model to evaluate the approximate utilization of individual components and detect components representing possible bottlenecks in the systems architecture by using standardized tooling for analyzing Layered Queuing Networks.
In den letzten Jahren hat sich Cloud Computing zu einem immer wichtigeren Thema im Bereich der Softwareentwicklung entwickelt. Die Möglichkeit, Software auf einer bereitgestellten Infrastruktur auszubringen, bringt viele Möglichkeiten mit sich, insbesondere für kleinere Unternehmen. Zusätzlich bieten verschiedene Cloud-Anbieter sogenannte Backing-Services an. Softwareentwickler können diese Dienste als fertige Komponenten in ihren Anwendungen nutzen, anstatt eigene Lösungen für wiederkehrende Anwendungsfälle wie Computing oder Datenspeicherung zu implementieren. Diese Verfügbarkeit von fertigen Anwendungsumgebungen und Backing Services führte zu neuen Architekturstilen, wie Microservice und Cloud-Native. Anstatt eine monolithische Anwendung in einer einzigen selbst bereitgestellten Umgebung zu betreiben, kann eine Anwendung die Vorteile des Cloud Computing viel effizienter nutzen, wenn ihre logischen Bestandteile in unabhängige Komponenten aufgeteilt werden. Auch wenn die Aufteilung einer Anwendung in kleinere Komponenten durch die Domäne des Cloud Computings mehrere Vorteile mit sich bringt, wie z. B. die Möglichkeit, jede Komponente individuell zu skalieren, fügen diese neuen Architekturstile dem System unweigerlich eine neue Ebene der Komplexität hinzu. Bei einer monolithischen Anwendung betrifft der wichtigste Aspekt ihrer Architektur die komplexen internen Prozesse. Im Gegensatz dazu wird bei einer komponentenbasierten Anwendung jede Komponente so simpel und klein wie möglich gehalten. Die Hauptkomplexität ergibt sich daher nicht mehr aus dem internen Veralten ihrer Komponenten sondern aus der Interaktion zwischen diesen unabhängigen Bestandteilen. Aus diesem Grund steht die Softwarearchitektur in der Cloud-Domäne vor neuen Herausforderungen, wenn es um die Modellierung dieser Interaktionen zwischen Cloud-Komponenten geht. Daher benötigen wir ein Mittel, um die Komponenten einer Cloud-Anwendung und ihre Interaktionen nach erfolgreicher Initialisierung zu modellieren. OpenClams ist ein an der Universität Stuttgart entwickeltes Cloud-Modeling-Framework, das es einem Cloud-Architekten ermöglicht, eine komponentenbasierte Cloud-Anwendung auf der Basis von probabilistischem Benutzerverhalten zu modellieren. Weiterhin unterstützt OpenClams den Cloud-Architekten bei der Entscheidung zwischen verschiedenen Cloud-Angeboten, indem es deren Kosten und Verfügbarkeiten über sogenannte Evaluation Services vergleicht. Die mit Clams beschriebene Architektur einer Anwendung kann darüber hinaus hinsichtlich ihrer Verfügbarkeit und der prognostizierten Kosten der modellierten Anwendung als Ganzes analysiert und optimiert werden. Diese Arbeit erweitert die Modellierungskonzepte von OpenClams weiter und ermöglicht es einem Cloud-Architekten, Cloud-Komponenten und deren Interaktionen mit Performance-Informationen in Form von Annotationen zu versehen. Im Rahmen dieser Arbeit wurde ein zusätzlicher Evaluation Service entwickelt, der diese bereitgestellten Performance-Informationen nutzt, um das Clams-Modell in ein Layered-Queuing-Network-Modell zu transformieren, um anschließlich die ungefähre Auslastung der einzelnen Komponenten herauszufinden und Komponenten zu erkennen, die mögliche Engpässe in der Systemarchitektur darstellen, indem standardisierte Werkzeuge zur Analyse von Layered-Queuing-Networks verwendet werden.
Enthalten in den Sammlungen:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Dateien zu dieser Ressource:
Datei Beschreibung GrößeFormat 
Simon_Matejetz_MA_Ausarbeitung.pdf1,47 MBAdobe PDFÖffnen/Anzeigen


Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.