Cloud Computing - Technologien

Innerhalb der Grafik sind die untersten Blöcke die drei Hauptressourcen. Rechen-,Netzwerk- und Speicherressourcen. Diese Elemente stellen die unterste Infrastrukturschicht dar. Der erste Arbeitsschritt virtualisiert die drei genannten Hauptressourcen. Für die Virtualisierung wird die Hypervisortechnologie benötigt, die die Schnittelle zu den oberen Applikationen darstellt, als auch zu den virtuellen Maschinen.  

Durch den Hypervisor wird die Provisionierung ermöglicht. Die Orchestrierung kümmert sich um das Resultat der zusammenarbeitenden Technologien und liefert als Gesamtergebnis die Services.

 

Während der gesamte Prozess durchlaufen wird, muss die Sicherheit parallel gewährleistet werden und zwar auf allen Schichten.

Auf jeder Ebene gibt es eigene Sicherheitsbetrachtungen und Sicherheitsmechanismen die greifen müssen.

 

Zusätzlich ist der Lebenszyklus wichtig, da sich innerhalb dieser Technologien um die Effizienz zu steigern ständig etwas ändert.
Es muss also mit Upgrades und andren zusätzlichen störenden Prozessen gerechnet werden.


Virtualisierung

Die Virtualisierung ist die Abstraktionsschicht zwischen den Hardwaresystemen und der Software. Die Software wird als logische Einheit wahrgenommen. Die Software läuft auf einer VM. Diese VM kann auf beliebigen Hauptressourcen ausgeführt werden.

Die Software wird also verteilt und geschaltet. Dabei dient die Virtualisierung als eine Abstraktionsschicht.

Mathematisch betrachtet ist die Virtualisierung ein Isomorphismus mit einen virtuellen Zustand, der auf der Hardware abgebildet wird.

Wenn eine Operation im virtuellen Zustand vorgenommen wird, wird parallel auf der Hardware die Bedeutungsgleichheit wiedergegeben.

 

Bei der Virtualisierung wird zwischen Host und Guest unterschieden. Wobei Host die reale Hardware darstellt und Guest die virtuelle Hardware. Es finden auf dieser Ebenen Unterscheidungen statt zwischen der Hardware, dem OS und der Applikation.

 

Die bekanntesten drei Eigenschaften der Virtualisierung sind: Partionierung, Isolation und Kapselung.

 

Partitionierung

 

Die Idee das verschiedene Anwendungen und Betriebssysteme auf einer physischen Ressource laufen und sich gemeinsam diese Ressource teilen.

 

Isolation

 

Virtuelle Maschinen sind gegenseitig voneinander vollständig isoliert.

 

Kapselung

 

Der gesamte Zustand einer VM kann in hardwareunabhängigen Dateien gekapselt werden. Der Hintergrund der Kapselung ist der, dass die verwendeten Ressourcen schnell und effizient auf andere Virtuelle Maschinen übertragen werden können.

 

Virtuelle Maschine

Die VM ist die Schnittelle zwischen Guest und Hostsystem. Die VM als solche hat verschiedene Kapselungsstufen und kann von der Prozessorarchtitektur bis über das Betrierbsystem hinaus einen Computer simulieren, der es einer bestimmten Applikation ermöglich ausgeführt zu werden.

 

Instruction Set Architecture - Architektur

 

 

Diese Architektur visualisiert die Grenzen zwischen Software und Hardware. Die Architektur wirkt auf Hardware Modellreihen, dass bedeutet das auch wenn sich die Hardware verändert, bleibt dieses Konzept erhalten. Dabei bleibt das Instruction Set gleich. Diese Architektur besteht aus zwei Hauptteilen, die diese Grenze aufzeichen. Einmal den User ISA und den System ISA Anteil. Die User ISA hat Zugriff und die Sichtbarkeit auf Bibliotheken, Applikation und Anwendungen, während die System ISA auf das Betriebssystem zugreift. Das Betriebsystem unterteil sich noch weiter in den Scheduler, den Memory Manager und die Treiberdateien.

 

Application Binary Interface - Schnittstelle

Diese Schnitstelle gewährt den Applikationsprogrammen den Zugriff auf Hardwareressourcen und Services. Dieses kann entweder über den USER ISA geschehen oder über das Systeminterface. Das ABI beinhaltet selbst keine Systeminstruktionen.

 

Application Programming Interface - Schnittstelle

Diese Schnitstelle gewährt Programmzugriff auf die Hardwareressourcen und Dienste. Dabei kommt eine High Level Language HLL zum Einsatz um genauere Instruktionen abzubilden.

 

Unterschiede zwischen Docker und einer reinen Virtualisierung

 

 

Der Unterschied ist das im Container die komplette Anwendung liegt mit der Datenbank, Konfiguration und allen Abhängigkeiten. Bzw. alle Komponenten die für die Docker-spezifische Applikation notwendig sind ohne ein eigenes Betriebssystem. Docker ist daher Leichtgewichtiger und die Verbindung zum Betriebssystem wird über die Docker Engine hergestellt.

 

Hypervisor 

Eigenschaften

 

Fidelity

Der Hypervisor muss für die VM genau das gleiche darstellen was auf der physischen Hardware vorhanden ist.

Es soll nicht gekapselt werden sondern die Ressourcen werden durchgereicht.

 

Isolation

Das Isolationssicherheitskonzept basiert auf den Hypervisor ,der die vollständige Kontroller über die Ressourcen hat.

Es gibt keine weiter Nebenläufigkeit, die einen zusätzlichen Zugriff auf die Ressourcen hat.

 

Performance

 Es sollen nur minimale bis gar keine Unterschiede innerhalb der Performance feststellbar sein.

 

 

Der Hypervisor ermöglicht eine logische isolierte Aufteilung von Partitionen, die auf physikalischen Systemressourcen zugrunde liegen.

 

Die Schnittstelle ermöglicht das, dass Guest OS auf dem Host OS laufen kann. Er stellt sicher das die Ressource so genutzt werden  wie die Virtualisierung es vorsieht. Es existieren bekannte Modelle wie VMware, Microsoft Hyper-V, Citrix XenServer, Oracle VM (Virtual Box). Der Hypervisor stellt den Zugang auf den Arbeitspeicher, Prozessor und auf die Netzwerkressourcen her.

Ohne Virtualisierung haben bestimmte Applikationen Serverabhängigkeiten, was z.B. durch unterschiedliche Betriebssystem verursacht werden kann. Das bedeutet, dass durch die Virtualisierung die Komponenten  und dessen Applikationen deutlich effizienter laufen ohne zusätzliche Serverressourcen zu beanspruchen. 

Es existieren dabei vier gängige Modelle von Virtuellen Maschinen. Die einfachste ist eine Softwarelösung die oft in der Form eines Emulators dargestellt ist. Diese ermöglicht ein gekapseltes Guest OS das wiederum die gewünschte Applikation zum laufen bringt

Das zweite VM Modell ist z.B. UMLinux (User Mote Linux). In diesen Szenario ermöglicht das Betriebssystem das direkte Aufsetzen von einem Guest OS. Dadurch wird kein Hypervisor benötigt.  Es wird ein spezieller Linux Kernel instanziiert, der andere Linux Kernel direkt hosten kann.

 

Das dritte Modell ist eine Paravirtualisierung. Ein prominentes Beispiel sind Citrix XenServer. In diesen Modell wird ein Hypervisor wieder eingesetzt. Dieser Hypervisor bietet verschiedene Betriebssystemdomänen. Diese Domäne steuert den Hypervisor.

Die Hypervisor Management Software läuft zusätzlich innerhalb der Domäne .

 

Das letzte Modell ist ein spezielles Hostsystem, das GUEST Applikationen isoliert und direkt erlaubt ausgeführt zu werden.
Z.B.  V Server

 

Provisionierung

 

Der Prozess, der dass Computing den Cloud Anwendern zur Verfügung stellt. Dabei werden Ressourcen in der Form von z.B. Softwaresystemen bereitgestellt. Das Gegenstück ist die De-Provisionierung, wo die Ressourcen den Anwendern entzogen bzw. reduziert werden können, um die Effizienz zu steigern falls diese derzeitig nicht verwendet werden. Innerhalb der Provisionierung existieren drei verschiedene Provisionierungsarten:

 

1. On-Demand

Hier werden die Ressourcen zur Laufzeit bereitgestellt. Wenn eine Applikation Ressourcen braucht werden diese durch den Hypervisor

freigegeben.

 

2. Self-Service

Der Anwender muss aktiv, bewusst seine Ressourcen selbst fordern.

 

3. Advance Provisionierung

Der Kunde sagt direkt was er braucht und genau diese Ressourcen werden dem Kunden nach Vertragsabschluss zur Verfügung gestellt. Dieses Verfahren widerspricht allerdings der Elasticity Eigenschaft. Paketkäufe mit ungünstigen Leistungsspitzen sind die Folge dieser Provisionierungsart.

 

Orchestrierung

 

Die Orchestrierung versucht die Geschäftsanfrage vom Kunden mit allen Mitteln die zur Verfügung stehen zu realisieren. Dazu gehört die Anbindung, Daten und die Infrastruktur. Es wird die Frage geklärt, welcher Kunde welchen Service nutzt und wie die Services untereinander verbunden sind. Zusätzlich werden hier die Benutzerregel, Service-Levels und das Datenmanagement definiert.

Innerhalb der Orchestrierung sind vier verschiedene Bereiche von höherer Bedeutung.

 

1. Ressourcenmanagement

 

-Zusammenfassung aller Register die für die Hardware-Ressourcen zuständig sind.

-Monitoring von Software-Lizenznehmern.

-unausgelastete Server werden stillgelegt

 

 

2. Service Monitoring

 

-Einhaltung von Service Level Agreement und dessen Qualitätsansprüche

-Überwachen von Anwendung und der Verfügbarkeit

-Backup Automatisierung

-Client Recovery mit den Images der VMs

 

3. Change Management

 

-Umverteilung und die Provisionierung der Hardware

-Upgrade der Hardware

-Konfiguration

 

4. Messen und Abrechnung

 

-Kostenmanagement und Abrechnungen

 

Eigene Gedanken und Anmerkungen

 

Das Material zu dieser Vorlesung war etwas zäh und eine kleine Textwüste. War aber sehr gut zusammengetragen und sehr informativ, deswegen trotzdem interessant. Besonders die Quelle: http://cloudpatterns.org ist gut dokumentiert.

 

Die Idee beim Non-Disruptive Service Relocation Pattern,  dass ein Dienst immer erreichbar sein soll, wo ein zweiter Hypervisor hinzugeschaltet wird, fand ich sehr interessant. Erst wenn die duplizierte VM nach der erfolgreichen Migration läuft wird die erste eigentliche Haupt VM abgeschaltet und deaktiviert, so dass der Dienst weiterhin ungestört weiterlaufen kann. Somit wird das NIST Konzept von Portability und Interoparibility sauber umgesetzt.

 

Virtual Server-to-Host Anti-Affinity Pattern dient als ein gutes Beispiel für Ausnahmeregelung für VMs an diesen Pattern ist die Aufgabe vom Virtual Infrastructure Manager deutlicher geworden. Ein gutes Einsatzgebiet für dieses Pattern wäre wenn zwei gleiche VMs eine und die selbe kritische Anwendung anbieten. Dadurch will der Cloud Provider nie das diese beiden VMs vom gleichen Hypervisor gesteuert werden.

 

Bare-Metal Provisioning Pattern

Zeigt deutlich wie eine automatisierte Konfiguration eines Rechners, auf dem kein Betriebssystem vorhanden ist, konfiguriert wird. Die Automatisierung wie der Discovery Agent kann den Bare-Metal-Server auffinden und der Cloud Consumer kann per Virtual Infrastructure Manager sein gewünschtes Betriebssystem auswählen. Es wurde an dieser Stelle erneut deutlich wie das NIST Konzept unter dem Punkt Provisoning and Configuration funktioniert.

 

Hypervisor Clustering Pattern

Zeigte deutlich was zu tun ist, wenn ein Hypervisor ausfällt und wie darauf automatisiert reagiert wird. Hier wird der Bereich Ressource Abstraction and Control Layer verdeutlicht. Ich fand das Beispielt mit  Heartbeats und den verschiedenen VMs sehr veranschaulicht.