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)

API-Prinzipien

Die Definition von Abstraction APIs birgt immer die Gefahr, dass die abstrakte API nur den kleinsten gemeinsamen Nenner der zugrunde liegenden APIs bereitstellt. Deltacloud vermeidet dieses Problem, indem es eine Basisschnittstelle definiert, die alle Treiber unterstützen. Einfache Mechanismen erkennen dann, ob und welche spezifischen Erweiterungen gegebenenfalls nutzbar sind. Das Ziel dieser Mechanismen ist, dass Clients niemals wissen müssen, mit welcher Cloud sie via Deltacloud verbunden sind, sondern alle Fragen über cloudspezifische Unterschiede mittels detaillierter Hinweise in den Antworten des Deltacloud-Servers entdecken können.

Die API verfügt über genau einen Single Entrypoint, was als Best Practice in der REST-Welt gilt. Das XML-Dokument, das unter der URL des Entrypoints zu erreichen ist, enthält vielfältige Informationen über alle Ressourcen, die über den Deltacloud-Server verfügbar sind ( Listing 2 ). Diese umfassen Images, Instances, Realms, Hardwareprofile und so weiter.

Abbildung 3: Mit Hilfe der Deltacloud-API lassen sich private Clouds implementieren und betreiben, die mit öffentlichen Clouds kommunizieren.

Listing 2

Cloud-Beschreibung

 

Listing 2 zeigt das XML des API Entry-points, von dem aus alle anderen Ressourcen des APIs erreicht werden können. Das »api« -Tag in Zeile 1 zeigt, dass dieses XML vom EC2-Driver generiert wurde und der Server die API-Version 0.2.0 unterstützt.

Resource Collections

Für jede Collection wird angegeben, unter welcher URL eine Liste aller Ressourcen in dieser Collection zu finden ist. Zum Beispiel gibt Zeile 8 die URL an, unter der eine Liste aller virtuellen Maschinen zu finden ist. Des Weiteren geben die »feature« -Tags in den »link« -Elementen an, welche optionalen Features des API unterstützt werden. Im Beispiel sind das »user_data« , »authentization_key« , »security_group« , und »register_to_load_balancer« . Jedes dieser Features deckt eine Besonderheit des EC2 API ab: So legt »user_data« fest, dass beim Anlegen einer Instanz benutzergenerierte Daten mit angegeben werden können. Das Vorhandensein dieses Features impliziert also auch, dass die Operation zum Anlegen einer Instanz einen zusätzlichen Parameter, »user_data« , akzeptiert.

Neben URLs zum Auflisten jeder dieser Resource Collections enthält das XML-Dokument auch Hinweise über treiberspezifische Erweiterungen. Clients erhalten zum Beispiel einen Hinweis, ob und mit welchem Mechanismus die jeweils verwendete Cloud es erlaubt, benutzerdefinierte Daten in neue VM-Instanzen bei deren Start zu injizieren. Diese Operation ist zum Personalisieren neuer Instanzen enorm wichtig. Sie wird aber leider nicht von allen Cloud-Providern unterstützt, und von denen, die sie unterstützen, in völlig unterschiedlicher Weise angeboten.

Die verschiedenen Zustände, die eine virtuelle Maschine während ihres Lifecycle durchläuft, unterscheiden sich von Cloud zu Cloud stark. Differenzen bestehen nicht nur in der Benennung von logisch äquivalenten Zuständen und Operationen, sondern auch in der Anzahl und Abfolge der Zustände. Deltacloud stellt Clients daher ein vereinheitlichtess Modell des cloudspezifischen Lifecycle in der Form eines endlichen Automaten zur Verfügung ( Abbildung 2 ). In diesem werden nicht nur Namensunterschiede nivelliert, sondern ein Client kann auch erkennen, welche Operationen durchzuführen sind, um zum Beispiel eine momentan laufende virtuelle Maschine anzuhalten und zu löschen.

Abbildung 2: Sehr nützlich sind Funktionen, um den genauen Status einer Instanz nachvollziehen zu können.
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