Einführung

Verteilte Systeme

Bild

  • 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

Bild

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

Bild

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

Bild

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

Bild

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

Bild

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