Bevor der Zugriff auf Cloud-Ressourcen beschrieben wird, stellen wir hier einige bekannte, bzw. nützliche Beispiele vor, die wir privat oder geschäftlich selbst sehr intensiv nutzen.
Auf IaaS-Cloud Ressourcen zugreifen
An die Ressourcen der Cloud kommt man ziemlich einfach heran, besonders da viele Cloud-Anbieter ein Freikontingent bereitstellen, mit dem man ohne Hürden eigene Dienste um Cloud-
Drawing 3: links: Bild, was über die Amazon-Instanzen berechnet werden soll rechts: Berechnungszeit eines Bildes abh. von unterschiedlichen Instanztypen. Quelle: Lukas Meyer, Live-Rendering für webbasierte Produktkonfiguratoren mit Cycles, Bachelor-Thesis, Hochschule Mannheim, 2015.
Dienste anderer herumbauen kann. Jeder Cloud-Provider bietet eine webbasierte Konfigurations-Oberfläche an, in der die gewünschten Ressourcen zusammengestellt und gemietet werden. Bei der Elaspix Cloud von Amazon werden System-Images1, die Rechenleistung einer Instanz2 und die Anzahl der gewünschten Instanzen ausgewählt.
Eine Instanz besitzt eine oder mehrere virtuelle Kerne. Diese sind in ihrer Leistungsfähigkeit unterschiedlich stark (siehe Abb. 5): Je mehr Kerne, desto höher ist der Preis.
Neben der Administration über Weboberflächen bieten Cloud-Provider auch selbst API’s an, so dass die komplette Cloud-Infrastruktur mit selbst erstellten Kontroll-Programmen manuell oder automatisch gesteuert werden kann.
Zugriff auf SaaS-Cloud Ressourcen
Angenommen, wir wollen einen Service verwenden, den ein Dritter in der Cloud bereitstellt. Hierzu benötigen wir eine URL, mit dem wir den Cloud-Service aufrufen können und eine Möglichkeit, die Antwort des Cloud-Service zu empfangen und zu verarbeiten. Die URL mit den konkreten Parametern zum Einstellen der Antwort finden wir in der Online-Dokumentation des Cloudservice. Ist diese dann bekannt, können wir eine Nachricht an den Cloud-Server schicken. Angenommen die URL ist die Zeichenkette „weather.com/API/temperatur?ort=Mannheim“ dann geben wir an, dass wir vom Wetterservice die Mannheimer Temperatur anfragen. Der Aufruf kann mit vielen verschiedenen Anwendungen und Programmiersprachen erfolgen:
-
direkt im Browser, wenn in der Adresszeile der Inhalt der obigen URL eingegeben wird
-
mit Javascript, welches im Browser läuft und der Bibliothek JQuery:
-
$.get(URL, function(data, status){ alert(„Data: “ + data);});
-
auf dem Bildschirm wird die Antwort ausgegeben.
-
-
oder auf einem Linux-PC mit dem Programm curl
-
curl(URL)
-
auf der Konsole wird die Antwort vom Server ausgegeben.
-
-
Oder in einem Java-Programm
-
BufferedReader reader=new BufferedReader(new InputStream(new URL(URL).open)); System.out.println(reader.readLine());
-
die Antwort wird auf der Konsole ausgegeben.
-
In den meisten Fällen wird der Aufruf einer SaaS aus einer Programmierumgebung heraus erfolgen, da dann das Ergebnis sofort vom Programm verarbeitet und in der besten Darstellungsart dem Benutzer ausgegeben werden kann. Damit die Programme verstehen, was der Cloudservice geantwortet hat, gibt es Standard-Dokumentenformate, die in der Dokumentation ausgewiesen werden. Üblich sind folgende Formate:
-
eine direkte Angabe der Temperatur als Zeichenkette, ohne weitere Informationen, wie z.B.
-
7.5°
-
-
die Temperatur ist gekapselt in ein XML oder JSON-Dokument, welches gleichzeitig Zusatzdaten enthalten kann, um die Information besser einzuordnen
-
<xml><temperature ort=“mannheim“>7.5°</temperatur> </xml>
-
{„location“:“Mannheim“,“value“:“7.5°“}
-
Die Einbettung in ein XML- oder JSON Dokument hat den Vorteil, dass selbst bei umfangreichen Antworten die Maschine weiß, wie man die Antwort verarbeiten muss.
Best practices
Neben den regulär zu kaufenden virtuellen PCs (z.B. On-Demand EC2-Instanzen bei Amazon) werden diese auch am Markt gehandelt (Spot-Instanzen) und können für bis zu 1/10 des regulären Preises gekauft werden. Der Preis hängt allerdings von der aktuellen Nachfrage ab und kann sich minütlich ändern (siehe Abb. 8). Solange das eigene abgegebene Gebot über dem aktuellen Mindestpreis liegt, steht die Instanz zur Verfügung, wird aber sofort entzogen, wenn man überboten wird. Beim Entzug fährt sich die Instanz allerdings nicht erst ordentlich herunter, sondern der PC wird einfach abgeschaltet und jemand anderem zugewiesen. Auf dieses harte Ausschalten sollte die laufende Software bzw. das Gesamtsystem vorbereitet sein, damit es nicht zu Unterbrechungen im Gesamt-System kommt.
Eine wichtige Voraussetzung, um mit Cloudsystemen produktiv zu arbeiten ist eine geeignete Service-Orientierte-Architektur (SOA). Die SOA kapselt funktionale Module durch klar definierte Schnittstellen voneinander ab und ermöglicht so Wiederverwendbarkeit, Austauschbarkeit, Testbarkeit und schlicht und einfach das Beherrschen einer noch zu komplexen Gesamtanwendung. Wenn Cloudsysteme (man sagt auch verteilte Systeme) nicht genügend voneinander isoliert sind, kann bei einer kleinen Änderung das Gesamtsystem einstürzen (siehe Abb.).
Drawing 6: Wand aus Bausteinen, die nicht nach dem SOA-Prinzip gruppiert sind. Quelle: https://www.youtube.com/watch?v=zU2-Lzy6_7c
1Amazon S3: Simple Storage Service
2Image: eine „Festplatte“ mit lauffähigen Programmen und Betriebssystem
3Instance: ein virtueller Rechner mit 1 bis 36 virtuellen CPU-Kernen
Whitepaper Cloud basierte Geschäftsmodelle für Startups – alle Teile
- Übersicht
- Teil 1 – Bedarf von Startups
- Teil 2 – Einsatz von Cloud-Computing
- Teil 3 – Zugriff auf Iaas und Saas Ressourcen
- Teil 4 – Integration am Beispiel einer Shopanwendung
- Teil 5 – Risiken