Diese Seminararbeit hat zum Ziel, die Microservice-Architektur vorzustellen. Hierfür werden im zweiten Kapitel die Merkmale einer monolithischen Architektur skizziert. Anschließend werden die zentralen Eigenschaften von Microservices herausgearbeitet, um im Anschluss sowohl die Vorteile als auch die Herausforderungen einer Microservice-Architektur darzustellen. In diesem Zusammenhang werden die beiden Architekturen Microservices und Monolith gegenübergestellt. In Bezug auf die Unabhängigkeit der einzelnen Services, welches als einer der zentralen Eigenschaften einer Microservice-Architektur herausgearbeitet wurde, ergibt sich die Frage, wie Querschnittsaspekte, wie zum Beispiel Authentifizierung und Autorisierung innerhalb einer Microservice-Architektur, umgesetzt werden können. Aus diesem Grund wird im vierten Kapitel die Fragestellung untersucht, wie Authentifizierung und Autorisierung innerhalb eines aus Microservices bestehenden Anwendung funktionieren. Der letzte Teil der vorliegenden Arbeit verdeutlicht anhand eines Beispiels, wie die Umsetzung einer Microservice-Architektur innerhalb eines Unternehmens erfolgen kann.
Inhaltsverzeichnis
1 Einleitung
2 Monolithische Architektur
3 Microservices
3.1 Charakteristika
3.2 Vorteile
3.3 Herausforderungen
4 Authentifizierung und Autorisierung
5 E-Commerce-Legacy-Anwendung
6 Fazit
Zielsetzung & Themen
Die vorliegende Arbeit setzt sich zum Ziel, die Microservice-Architektur als Alternative zur klassischen monolithischen Struktur vorzustellen, deren Merkmale, Vorteile und Herausforderungen zu analysieren und Lösungsansätze für zentrale Querschnittsaufgaben wie die Authentifizierung in einer verteilten Umgebung aufzuzeigen.
- Vergleichende Analyse von Monolithen und Microservices
- Technische und organisatorische Vorteile dezentraler Architekturen
- Herausforderungen bei der Systemzerlegung und Infrastrukturautomatisierung
- Umsetzung von Authentifizierung und Autorisierung mittels OAuth 2.0
- Szenario-basierte Modernisierung von Legacy-Systemen
Auszug aus dem Buch
3.1 Charakteristika
Eine wesentliche Eigenschaft von Microservice-Architektur ist die Komponententrennung durch Services. Dabei bezeichnet eine Komponente eine Softwareeinheit, die unabhängig austauschbar und erweiterbar ist. Services sollen lose gekoppelt sein, damit eine Änderung eines Microservice keine Änderung weiterer Microservices impliziert. Somit soll ermöglicht werden, dass Microservices unabhängig voneinander deployt werden können, ohne das andere Services davon beeinflusst oder beeinträchtigt werden. Selbst wenn im Rahmen einer Änderung ein Microservice ausfällt, hat dies nicht zur Folge, dass dadurch weitere Microservices wegfallen, wodurch die Funktionsfähigkeit der Anwendung gewährleistet wird.
Des Öfteren erfolgt die Zerlegung eines Softwaresystems auf technischer Ebene, was zu einer Organisation in Benutzeroberflächen-, Backend- und Datenbank-Teams führt. Aufgrund dessen führt bereits eine kleine Änderung am System zu erheblichem Kommunikationsaufwand, da Absprachen teamübergreifend stattfinden und letztlich enorme Kosten verursachen. Im Gegensatz zur technischen Zerlegung erfolgt beim Microservice-Architekturmuster die Aufteilung eines Softwaresystems nach Fachlichkeit. Für die fachliche Modellierung einer Anwendung kann das Domain-Driven Design (DDD) herangezogen werden. Die Kernidee von DDD ist, die Domäne bei der Softwareentwicklung in den Mittelpunkt zu rücken und das alle Beteiligten unabhängig von ihrer jeweiligen Disziplin ein gemeinsames Fachverständnis für die Thematik und die dazugehörige Fachsprache besitzen.
Zusammenfassung der Kapitel
1 Einleitung: Diese Einleitung führt in die Microservice-Thematik ein, motiviert durch die "Two Pizza Teams" Regel und das Ziel, die Grundlagen sowie die Anwendung moderner Softwarearchitekturen zu beleuchten.
2 Monolithische Architektur: Das Kapitel definiert den klassischen Monolithen als homogenes System, erläutert dessen Aufbau und arbeitet zentrale Probleme wie Wartungsschwierigkeiten und Skalierungseinschränkungen heraus.
3 Microservices: Dieses Kapitel erläutert den Architekturstil der Microservices, detailliert deren fachliche Charakteristika, die Vorteile der Unabhängigkeit sowie die Herausforderungen bei der Umsetzung.
4 Authentifizierung und Autorisierung: Hier wird die Implementierung von Sicherheitsmechanismen in dezentralen Systemen am Beispiel von OAuth 2.0 als Lösung für verteilte Umgebungen analysiert.
5 E-Commerce-Legacy-Anwendung: Basierend auf einem Online-Shop-Szenario wird aufgezeigt, wie die Modernisierung historisch gewachsener Altsysteme durch schrittweise Einführung von Microservices gelingen kann.
6 Fazit: Das Fazit fasst zusammen, dass Microservices zwar komplexe Anforderungen an die Infrastruktur stellen, aber durch Modularität und Skalierbarkeit eine nachhaltige Antwort auf moderne IT-Herausforderungen bieten.
Schlüsselwörter
Microservices, Monolith, Softwarearchitektur, DevOps, Skalierbarkeit, Modularisierung, Authentifizierung, Autorisierung, OAuth 2.0, Legacy-System, Domain-Driven Design, Continuous-Delivery, Cloud-Infrastruktur, IT-Management, Systemmodernisierung
Häufig gestellte Fragen
Worum geht es in dieser Arbeit primär?
Die Arbeit untersucht das Konzept der Microservice-Architektur, beleuchtet deren Vor- und Nachteile gegenüber monolithischen Systemen und zeigt Anwendungsbeispiele für die Modernisierung von Software auf.
Welche zentralen Themenfelder werden abgedeckt?
Die Schwerpunkte liegen auf der Architekturtheorie, den organisatorischen Auswirkungen (DevOps), technologischen Herausforderungen und der sicheren Implementierung von Authentifizierung in verteilten Systemen.
Was ist das primäre Ziel der Untersuchung?
Das Ziel ist es, ein tiefgreifendes Verständnis für die Vor- und Nachteile der Microservice-Architektur zu vermitteln und den strategischen Nutzen bei der Ablösung von Legacy-Systemen darzustellen.
Welche wissenschaftliche Methode kommt zum Einsatz?
Es handelt sich um eine theoretische Arbeit, die auf einer umfassenden Literaturanalyse aktueller Fachpublikationen und etablierter Architekturmodelle basiert.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die theoretische Abgrenzung von Monolithen und Microservices, die Analyse ihrer jeweiligen Charakteristika, die Behandlung von Sicherheitsaspekten sowie ein konkretes Modernisierungsszenario.
Durch welche Schlüsselwörter lässt sich die Arbeit zusammenfassen?
Die Arbeit lässt sich durch Begriffe wie Microservices, Monolith, DevOps, Skalierbarkeit, Modernisierung und Domain-Driven Design charakterisieren.
Wie trägt das "Two Pizza Teams" Prinzip zum Verständnis bei?
Das Konzept verdeutlicht, wie kleine, funktionsübergreifende Teams durch Dezentralisierung die Effizienz in der Softwareentwicklung steigern, was die Basis für den Microservice-Architekturstil bildet.
Welche Rolle spielt OAuth 2.0 innerhalb der Architektur?
OAuth 2.0 dient als standardisierter Rahmen für die Authentifizierung und Autorisierung in den hochgradig verteilten Umgebungen, die bei Microservices entstehen.
Warum wird von einer vollständigen Neuentwicklung abgeraten?
Aufgrund der hohen Komplexität und der benötigten Expertise bei Automatisierung und Monitoring wird eine stückweise, schrittweise Einführung von Microservices empfohlen.
Wie unterscheidet sich die Kommunikation bei Microservices von Monolithen?
Während bei Monolithen die Kommunikation intern abläuft, erfordern Microservices als verteiltes System spezialisierte Methoden (z. B. REST über HTTP oder Message-Busse), was neue Herausforderungen hinsichtlich Latenz und Bandbreite schafft.
- Quote paper
- Döndü Emili (Author), 2021, Microservice-Architektur und DevOps. Eine Einführung, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/1126310