Result: Evaluierung von Architekturstilen anhand von nicht funktionalen Anforderungen ; Evaluation of architectural styles using non-functional requirements
Further Information
In den vergangenen Jahren haben Unternehmen wie Netflix, Uber oder Spotify global erfolgreiche Produkte gestartet. Was all diese gemeinsam haben ist, dass sie einen Microservice Ansatz verfolgen, welches sich stark von dem bisher üblichen Monolithen unterscheidet. Der Unterschied ist, dass Microservices durch horizontale Skalierung die Last auf mehrere Systeme verteilen um den Systemdurchsatz, also wieviele Requests das System bearbeiten kann, zu maximieren. Ebenso wird ein dritter architektonischer Ansatz untersucht: ein Cloud-Native Ansatz. In dieser Arbeit wird der Begriff „Cloud-Native“ dahingehend verwendet, um eine Implementierung zu bezeichnen, welche einem Design unterliegt, das es erlaubt die Applikation direkt in der Infrastruktur des gewählten Cloud Providers (in dieser Arbeit Amazon Web Services, AWS) auszuführen. Dieser dritte Weg beinhaltet eine Applikation, die dem Serverless Ansatz folgt, wo also die Applikation als Set von Lambda Funktionen existiert, welche über ein öffentliches API Gateway zugänglich sind. Deswegen konzentriert sich diese Ansätze, versucht diese miteinander zu vergleichen, indem sie Daten zur Performanz, Lastwiderstand und Kosten erhebt. Um diese drei Architekturansätze zu vergleichen wurden drei verschiedene Applikationen geschrieben, die dasselbe Szenario lösen. Es handelt sich hierbei um ein Bewertungssystem für Artikel. Ein/e Benutzer/in kann sich dabei ein- oder ausloggen bzw. registrieren oder die Registrierung löschen. Nach einer erfolgreichen Registrierung ist es möglich eine Anmeldung auf der Plattform durchzuführen und anschließend Artikeln und Bewertungen einzusehen und zu posten, sowie die akkumulierten Bewertungen zu einem Artikel. Die Bewertungen werden in der Implementierung des Monolithen und der Microservices in Datenbanken als zwei verschiedene Spalten gespeichert, die jede Zahl zulassen, jedoch werden während des Testverfahrens nur der Wertebereich zwischen eins und zehn verwendet. Der Cloud-Native Ansatz verwendet eine DynamoDB, die Dokumentenorientiert ...