Teil 3 – Zugriff auf IaaS und SaaS Ressourcen

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.

Startup-Beispiel1
Dropbox kennt jeder. Dropbox nutzt selbst Amazon S31 als Cloud-Dienst, kauft also je nach Bedarf aus der Cloud Speicher hinzu.

Startup-Beispiel2
Google Maps kennt auch jeder. Wird dieser Dienst auf Webseiten oder Apps eingebunden sind 2.500 Aufrufe pro Tag frei, danach zahlt der Betreiber 50 Cent für weitere 1000 Aufrufe.

Startup-Beispiel3
Social Networks lassen sich als Cloud-Dienst einbinden. Für Facebook gibts die Open Graph API und für Twitter die Twitter-API. Letztere startete mal sehr offen und wird leider fast nur noch gegen Gebühr bereitgestellt.

Startup-Beispiel4
Mit Cloud basierter Bildverarbeitung können Bilder automatisch beschnitten, Farben geändert oder auch Hintergründe entfernt werden. Oder komplette 3D-Renderings können über die Cloud beauftragt werden (einige unserer eigenen Services).

 

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-

Startup-BMW Startup-Diagramm

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.

 

step-2-2-amazon-ec2-instance1
Drawing 4: In der Management-Console hat der Administrator Zugriff auf alle IaaS Angebote. Bildquelle: https://thoughtsandideas.files.wordpress.com/2012/05/step-2-2-amazon-ec2-instance1.png

 

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.

Startup-EC2-Cloud
Drawing 5: Tages-zyklische Preisschwankung (gelb) einer Amazon EC2 c3.2xlarge Spot-Market-Instanz in Frankfurt zwischen 11.01.16 und 17.01.16.

 

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

 

Cookie Consent mit Real Cookie Banner