Security ist ein stets aktuelles Thema in der IT. Deshalb widmet sich das ADMIN-Magazin 04/2012 speziell Sicherheitsaspekten und gibt Antworten auf die Fragen: ... (mehr)

Cloud Abstraction APIs

Neben Deltacloud gibt es weitere Open-Source-Projekte, die Cloud Abstraction APIs entwickeln. Zu nennen sind hier Jclouds [9] , Libcloud [10] , Boto [11] und Fog [12] . All diese Bibliotheken sind jedoch jeweils an eine bestimmte Programmiersprache gebunden: jclouds an Java, libcloud und boto an Python und fog an Ruby. Es handelt sich immer um sprachspezifische Libraries. Deltacloud ist dagegen völlig sprachunabhängig und die einzige Cloud Abstraction API, die sich als Webservice nutzen lässt. Der Vorteil: Durch den Einsatz vorhandener und weit verbreiteter Standards wie HTTP und XML entsteht eine offene Architektur, die unabhängig von den verwendeten Plattformen und Programmiersprachen ist.

Die Realisierung der Deltacloud-API als Webservice statt als Bibliothek ermöglicht es, den Deltacloud-Server in einer von zwei Grundkonfigurationen zu betreiben: entweder nahe am Benutzer, etwa auf einem lokalen Rechner im LAN, oder nahe an der nativen API des Cloudanbieters, was besonders für private Clouds von Interesse ist. Anbieter von Cloud Services können Deltacloud natürlich auch direkt als ihr einziges Interface bereitstellen.

Architektur

Der Deltacloud-Server selbst ist in Ruby programmiert, genauer gesagt, mit dem Ruby-Framework Sinatra. Intern besteht der Server-Code aus zwei großen Bereichen: Der erste generische Teil widmet sich den für einen Web-Service typischen Aufgaben, wie dem Entgegennehmen und Deserialisieren von HTTP-Requests und dem Formatieren der Responses. Den zweiten Teil bilden die Treiber für verschiedene Clouds: Amazon EC2, vCloud, Azure und so weiter. Beide Teile sind über eine einfache interne Schnittstelle miteinander verbunden. So lassen sich Treiber für neue Cloud-APIs ohne allzu tief gehendes Wissen über den eigentlichen Server programmieren. Er-sten Erfahrungen zufolge braucht man für die Implementation eines neuen Treibers nur wenige Tage.

Ein vereinfachter Ablauf sieht dann so aus: Ein Client schickt einen Request via REST-Interface an den Server. Anschließend leitet der Treiber im Deltacloud-Server die Anfrage an die angesprochene dedizierte Cloud weiter. Der Server ist stateless, es werden keine Zustands- oder Sitzungsinformationen gespeichert. Stattdessen sendet der Client die für die jeweils gewählte Cloud benötigten Zugangsinformationen im Header für Basic-HTTP-Authentication mit jedem Request mit. Im Moment erfährt der Deltacloud-Server beim Start, welche Cloud mit welcher API er unter welcher URL ansprechen soll. In der nächsten Version soll es möglich sein, beides über zusätzliche HTTP Request Header auszuwählen. Dann sind beliebig viele Clouds mit demselben Deltacloud-Server nutzbar.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023