Architekturmuster Flashcards
Was ist ein Architekturmuster?
dies beschreibt die grundlegende Organisation und Interaktion zwischen den Modulen einer Softwareanwendung
Welche Architekturmuster gibt es?
monolithische Architektur
Client-Server-Architektur
Microservice-Architektur
Wofür werden Monolithe verwendet?
für die Entwicklung einfacher Anwendungen;
keine explizite Gliederung in Teilsysteme oder Komponenten
Welche Vorteile besitz ein Monolith?
einfache Entwicklung für simple Geschäftsprozesse;
IDEs optimiert für monolithische Architekturen;
einfaches Testen
Welche Nachteile hat eine monolithische Architektur?
Komplexität nimmt mit Weiterentwicklung immer mehr zu;
Zuverlässigkeit des Gesamtsystems wird immer schlechter, weil alle Module im selben Betriebssystemprozess laufen;
schnelle Entwicklung bei hoher Komplexität erschwert
Was ist eine Client-Server-Architektur?
es gibt einen Server, der Client-Anfragen entgegennimmt (Request) und darauf antwortet (Response); z.B.: hier werden HTML, CSS und JS Dateien zurückgegeben (Response)
Was ist eine Microservice-Architektur?
basically: SOA
mehrere Module, die untereinander (wenige) Nachrichten (lose Koppelung) austauschen;
ein Microservice = self-contained system –> es enthält alle Abhängigkeiten für eine automone Ausführung (Depedency Injection)
Was sind Vorteile von Microservice-Architekturen? + Beschreibe!
Agile Softwareentwicklung (Projektmanagement);
hohe Wartbarkeit (Schnittstellen; Module; …);
offenes System (kann einfach erweitert werden);
Isoliertheit: hoher Grad der Entkoppelung führt zu unabhängiger Skalierung, Technologiefreiheit und Schutz vor Ausfällen);
Robustheit: Wenn Speicherleak, dann stürzt nur dieses Service ab;
Skalierbarkeit: unabhängig voneinander skalieren