Verteilte Systeme

- Vorteile von verteilten Anwendungen
- Funktionale Trennung
- Trennung von Funktionen, Dienste, Leistungsfähigkeit und Zweck
- Verteilung
- Alle Informationen und Funktionalitäten sind von Natur aus verteilt
- Elastizität
- selbständig reparieren nach Ausfall oder Schäden
- Skalierbarkeit
- dynamische Verteilung von Ressourcen
- Ressourcen an Last anpassen
- Fehlertoleranz
- korrekte Funktion trotz Ausfall einiger Komponenten
Fehlertoleranz
- Redundanz
- Mehrere identische Systeme
- Systeme sequentiell nutzen
- Bei Fehler: wechsel auf anderes System
- Replikation
- Mehrere identische Systeme
- Alle Systeme parallel nutzen
- Ergebnis auf basis von Mengen an gleich Ergebnissen
Skalierbarkeit
- Vertikal
- Erweitern einzelner Systeme um mehr Ressourcen
- Horizontal
- Anzahl der Systeme erhöhen
Cloud Computing
- On-Demand-Zugang
- Zugriff auf Pool von Ressourcen, Netzwerk, Server, Speicher, Anwendungen …
- schnell und mit minimalem Verwaltungsaufwand
- besteht aus
- 5 Charakteristiken
- On Demand eigener Zugang
- Zugang über Netzwerk mit Standardmethoden
- Pools an Ressourcen die zusammen arbeiten, teilen der Ressourcen untereinander
- Skalierbarkeit
- Messung der Auslastung
- 3 Service Modellen
- Software as a Service
- Platform as a Service
- Infrastructure as a Service
- 4 Bereitstellungsmodellen
- Private Cloud
- Public Cloud
- Community Cloud
- Hybric Cloud
Virtualisierung
Virtualisierung Arten

Hypervisor
- VMMM Type 1
- direkt auf Hardware
- Einfaches OS um VMs zu starten
- Pro: Effizienter
- Con: Benötigt spezielle Treiber
- Bare Metal Hypervisor
- VMM Type 2
- VMM als Prozess auf dem Host OS
- VMs als Prozess
- Pro: keine extra Treiber nötig
- Con: Mehr Overhead
- hosted virtualization

Vollständige Virtualisierung
- Hypervisor emuliert Geräte
- Hardware kann auf VMs aufgeteilt werden
- Binäre übersetzung
- unprivilegierte Befehle direkte auf CPU ausführen
- emulieren von privilegierten Befehlen
- kritische Befehle finden und durch Ausnahme ersetzten
- Problem: Unterscheidung zwischen kritisch und regulären Befehlen hängt manchmal von Parametern ab

Paravirtualisierung
- gestützt durch OS
- Gast OS weiß das es eine VM ist
- Code des Gastsystems muss geändert werden um Unterstützung von VMM so weit wie möglich zu trennen
- Treiber für Geräte unterstützt durch OS-Assisted Virtualization

Accelerated Virtualization
- Unterstützung durch Hardware
- Ziel ist beschleunigte Datenübertragung zwischen Host und Gast
- direkte Zuweisung von Geräten
- Gast besitzt spezifische Hardware
- Hardware kann nicht geteilt werden
- Gast nutzt direkt Treiber ohne Ebene darüber
- Problem: VMM muss trotzdem Integrität und Isolation aufrechterhalten+
Vergleich

Application Server
- Process Virtualization
- Beispiel: Java - JVM (Java Virtual Machine)
- Application ist isoliert
- teilen sich OS und JVM
- Bibliotheken und Funktionen werden geteilt
- Pro:
- Kein Overhead
- schnelle Deployment
- Con:
- Keine Limits
- Keine Isolierung der Hardware
Last modified 2024.04.11