Tag: Architecture


openQRM Enterprise wird Partner des Canonical Software Partner Programms

Das Kölner Unternehmen openQRM-Enterprise, Anbieter der gleichnamigen Cloud Computing Plattform openQRM, ist dem Canonical Software Partner Programm beigetreten und wird in diesem Zuge mit Professional Services und einem langfristigen Support die openQRM Cloud auf den Ubuntu Server Distributionen unterstützen.

Canonical ist Distributor von Ubuntu Linux und stellt mit der Ubuntu Enterprise Cloud eine auf Eucalyptus basierende Cloud Computing Infrastruktur Lösung bereit.

Weitere Informationen sind auf den Webseiten von Ubuntu zu finden:

Quelle

  • openQRM-Enterprise



Scalarium

Scalarium, das Cloud Computing Produkt der Peritor GmbH dient zur Automatisierung der Kommunikation und Konfiguration von Amazon EC2 Cluster.

Eine Beispielkonfiguration für einen Cluster würde z.B. aus einem Load Balancer, drei Rails Applikations-Servern und einem Datenbankserver bestehen. Für den Start dieses Clusters ist anschließend Scalarium verantwortlich, indem es eine Verbindung zur Amazon Compute Cloud (EC2) herstellt und die entsprechenden Instanzen startet. Die Images werden geladen und der Scalarium Agent installiert.

Der Scalarium Agent wird auf jedem Server ausgeführt und ist über eine verschlüsselte Verbindung ständig mit Scalarium in kontakt. Webserver werden dabei automatisch mit Nginx konfiguriert, während Datenbankserver eine MySQL Installation erhalten. Nachdem der Scalarium Agent auf einer Instanz installiert wurde und das System konfiguriert hat, wird die Instanz als online markiert und kann durch den Cluster verwendet werden.

Scalarium bietet die folgenden vier Funktionen, die im Anschluß jeweils kurz vorgestellt werden.

  • Auto Config
  • Auto Healing
  • Auto Scaling
  • One Click Deploy

Auto Config

Mittels der Auto Configuration werden die Server automatisiert konfiguriert, indem die benötigte Software installiert und eingerichtet wird. Werden weitere Instanzen hinzugefügt, konfiguriert Scalarium automatisch die Anwendungen und den gesamten Cluster. Die einzigen Informationen die von Scalarium dazu benötigt werden sind die gewünschten Ubuntu Packages und Rubygems. Anschließend werden alle Pakete und Libraries auf jedem Server installiert und das zu jederzeit.

Weitere Informationen zu Auto Config sind HIER zu finden.

Auto Healing

Mit Auto Healing sorgt Scalarium dafür, dass die vorher festgelegten Services und Hosts des Cluster im Fehlerfall automatisch wiederhergestellt werden. Fällt z.B. ein Server aus, wird dieser durch Scalarium entfernt und in kurzer Zeit durch eine neue Instanz ersetzt, wodurch der gesamte Cluster automatisch neu konfiguriert wird.

Weitere Informationen zu Auto Healing sind HIER zu finden.

Auto-Scaling

Durch das Auto-Scaling können Schwellwerte festgelegt werden die dafür sorgen, dass entweder weitere Instanzen gestartet oder nicht mehr benötigte Instanzen beendet werden. Dazu überwacht Scalarium die CPU- und Arbeitspeicher-Auslastung, sowie die durchschnittliche Belastung jeder Instanz.

Weitere Informationen zu Auto Scaling sind HIER zu finden.

One Click Deploy

Mittels One Click Deploy können Anwendungen über den gesamten Cluster hinweg zu einem Zeitpunkt vollständig automatisiert verteilt, installiert und konfiguriert werden.

Weitere Informationen zu One Click Deploy sind HIER zu finden.

Demo Video

http://www.youtube.com/watch?v=F2UzrYOZNM4

Preise

Quelle



CloudCache

Mit CloudCache stellt das Unternehmen Quetzall eine flexible Caching Infrastuktur als Service bereit, in der über eine API beliebige Objekte zwischengespeichert werden können. Entwickler haben damit die Möglichkeit ihre Daten innerhalb eines in-memory Cache abzulegen um damit die Zugriffe auf die Datenbank zu verringern und die Performance zu erhöhen.

CloudCache kann u.a. für das Zwischenspeichern von Anfragen, Sessions oder Templates genutzt werden und funktioniert ebenfalls in Verbindung mit Amazon's Netzwerk Topologie.

Funktionen

  • Latenz: 1.5 ms
  • Multi-Get
  • Statistiken: Hits/Misses/Usage
  • Nutzung von 1 bis 1000 Caches
  • AJAX oder XML Unterstützung
  • Inkrementierungs- und Dekrementierungsmöglichkeiten
  • Konfigurierbare Time-to-Live der Objekte für das automatische Löschen

Dokumentation

CloudCache unterstützt derzeit die Programmiersprachen Ruby, Java, PHP und Python sowie eine Raw REST API. Um den Einstieg zu erleichtern existiert eine separate Dokumentationsseite auf der die ersten Schritte für den Umgang mit CloudCache erklärt werden.

Preise

  • $0.05/MB
  • 10 MB Cache frei bis zum 1.November 2010
  • Keine Vertragslaufzeit
  • Keine Einrichtungsgebühr
  • Abrechnung nach dem tatsächlichen Verbrauch
  • Monatliche Abrechnung

Demo Video

http://vimeo.com/7105046

Quelle

  • CloudCache


IBM Smart Business Services

Mit den IBM Smart Business Services bietet IBM standardisierte Services auf Basis der IBM Cloud oder Private-Cloud-Services die von IBM verwaltet werden. Zu dem Leistungsumfang gehören u.a. das Infrastrukturdesign, die Beachtung einer hohen Verfügbarkeit sowie Sicherheitsimplementierungen.

Zwei bereits definierte und veröffentlichte Angebote sind das Development und Test Workload Angebot, dazu gehört die IBM Smart Business Test Cloud und das Desktop Workload Angebot, zu welchem die IBM Smart Business Desktop Cloud gehört.

IBM Smart Business Test Cloud

Bei der IBM Smart Business Test Cloud handelt es sich um eine Privat Cloud die auf die Technologien und Konzepte der IBM Public Cloud basiert. Mit der IBM CloudBurst Hardware wird dazu die Implementierung und das Management der Cloud vorgenommen, um die vorhandene Infrastrukturen mit der IT-Topologie innerhalb der Cloud zu verbinden. IBM verspricht damit Einsparungen bei den Kapital- und Lizenzierungskosten von bis zu 75%, sowie eine Kostenreduzierung der Betriebs- und Personalkosten um bis zu 50%. Weiterhin sollen mit standardisierten und einfach bereitzustellenden Services Softwaremängel reduziert werden, die auf Grund von fehlerhaften Konfigurationen und mangelhafter Modellierung entstehen.

Funktionen und Vorteile der IBM Smart Business Test Cloud

  • Reduzierung von Personalkosten für Konfiguration, Betrieb und Überwachung durch automatisierte Self-Service-Bereitstellung.
  • Risikominderung und Verbesserung der Qualität durch ein vereinfachtes Management
  • Verringerung der Lizenzkosten.
  • Effektiverer Kapitaleinsatz und flexible Skalierung durch Virtualisierung.

IBM Smart Business Desktop Cloud

Mit dem IBM Smart Desktop Cloud können Benutzer mit einem Thin Client oder eines Desktop-PCs mit Java™ und einem Web-Browser eine Verbindung zu einem Betriebssystem (virtuelle Maschine) auf einem zentralen Server herzustellen. Als Betriebssysteme können Windows oder Linux verwendet werden, deren Desktopumgebungen vollständig standardisiert sind und als Image vorliegen.

Funktionen und Vorteile der IBM Smart Business Desktop Cloud

  • Schnelle Skalierung der IT-Infrastruktur.
  • Steigerung des Return-on-Investment (ROI) und Reduzierung des Total Cost of Ownership (TCO, Gesamtbetriebskosten), durch flexibleren Betrieb und Energieeinsparungen.
  • Abrechnung der Betriebskosten nach dem tatsächlichen Bedarf.

Quelle

  • IBM Smart Business Services


IBM Smart Business Systems

Mit den Smart Business Systems stellt IBM integrierte Plattformen für die Servicebereitstellung inkl. Managementfunktionen für Hardware, Speicher, Netze, Virtualisierung und Services bereit, mit denen Lastoptimierte Systeme aufgesetzt werden können.

Zu den aktuellen Angeboten gehören die IBM CloudBurst™ Family (IBM CloudBurst 1.1) und die WebSphere CloudBurst Appliance.

IBM CloudBurst™ Family

Bei der IBM CloudBurst™ handelt es sich um ein IBM Service Management-Paket, mit dem die vorhandene IT-Infrastruktur erweitert werden kann. Dazu zählen Hardware-, Software- und Service-Lösungen für den Einsatz einer Private Cloud.

IBM CloudBurst 1.1

IBM CloudBurst 1.1 bietet auf Basis der IBM BladeCenter®-Plattform bereits vorinstallierte und integrierte Management-Funktionen für die Verwaltung der Hardware, Middleware und vorhandener Applikationen.

Funktionen und Vorteile der IBM CloudBurst 1.1

  • Schnellere Wertschöpfung durch bereits vorinstallierte und vorkonfigurierte Umgebung.
  • Flexibilität auf Basis einer skalierbaren Plattform.
  • Self-Service-Portal zur schnellen Bereitstellung von Cloud-Services.
  • Eine zentrale Schnittstelle zur Verwaltung physischer und virtueller Workloads und Systeme.
  • Verringerung des Ausfalls des Gesamtsystems durch mehrere Redundanzebenen.
  • Steigerung der Energieeffizienz durch die Möglichkeit des aktiven Managements des Stromverbrauchs der BladeCenter.

WebSphere CloudBurst Appliance

Mit der IBM WebSphere CloudBurst Appliance kann auf virtuelle WebSphere-Images zugegriffen werden, um das Erstellen, Implementieren und Management von Anwendungsumgebungen in einer Private Cloud vorzunehmen.

Funktionen und Vorteile der WebSphere CloudBurst Appliance

  • Verringerung der Einrichtung von WebSphere-Umgebungen
  • Vordefinierte Muster und virtuelle Images
  • Überwachung der Nutzung zur Leistungsverrechnung (Abrechnung der tatsächlichen Nutzung) durch Managementberichte

Quelle

  • IBM Smart Business Systems



Enomalys – ECP Cloud Service Provider Edition

Mit der Enomaly Service Provider Edition steht eine von Enomaly auch "cloud in a box" genannte Plattform zur Verfügung, mit der Internetcarrier und Hosting Anbieter ihren Kunden Infrastructure as a Service Lösungen anbieten können.

Die Platform verfügt über eine Benutzerschnittstelle sowie eine REST API, mit der die Kunden die Verwaltung ihrer Cloud eigens vornehmen können. Ein weiteres Feature ist die "Theme Engine" mir der das Branding vom Internetcarrier oder Hosting Anbieter auf die jeweiligen Bedürfnisse angepasst werden kann. Weiterhin können mehrere Kunden eines Anbieters parallel auf einer einzigen Plattform verwaltet werden und ein Quota System sorgt für die gerechte Verteilung der Ressourcen. Die Plattform kann darüber hinaus in bereits bestehende Systeme für die Abbrechnung, Ressourcenversorgung und das Monitoring integriert werden.

Nach Angaben von Enomaly wird die Plattform derzeit von 15.000 Unternehmen weltweit eingesetzt.

Funktionen & Umgebung

Die Plattform verfügt u.a. über folgende Funktionen, die im weiteren Verlauf dieses Artikels jeweils kurz vorgestellt werden.

  • Managementkonsole für die Endkunden
  • Fernverwaltung
  • Flexible Hardware-Profile
  • Management für virtuelle Maschinen
  • Nutzungsabbrechnung
  • App Center
  • Virtual Private Cloud (Vlan)
  • Theme Engine
  • Gruppierung von virtuellen Maschinen

Managementkonsole für die Endkunden

Mit der Managementkonsole können Endkunden auf ihre virtuellen Maschinen zugreifen, diese verwalten und bekommen darüber die Fehlermeldungen des Systems angezeigt. Die Anbieter können mittels RSS Feeds die Inhalte entsprechend anpassen und darüber ihre eigenen Inhalte anzeigen.

Fernverwaltung

Mittels einer Remote Desktop Verbindung oder der Kommandozeile kann auf die virtuellen Maschinen zugegriffen werden, auch dann wenn keine Netzwerkverbindung nach Aussen hin besteht.

Flexible Hardware-Profile

Auf Basis von flexiblen Hardware Profilen können virtuelle Maschinen nach ihrer Bereitstellung durch den Endkunden angepasst und skaliert werden. Die Hochverfügbarkeit einer virtuellen Maschine wird dadurch garantiert, indem im Falle eines physikalischen Fehlers die virtuelle Maschine automatisch auf eine andere funktionsfähige Hardware übertragen wird.

Management für virtuelle Maschinen

Endkunden können entweder einzelne virtuelle Maschinen oder ganze Gruppen von virtuellen Maschinen weltweit und von jedem Rechner aus starten, stoppen und neu starten.

Nutzungsabbrechnung

Über die Nutzungsabbrechnung haben Endkunden einen Echtzeit-Überblick über die aktuell genutzen Ressourcen (virtuelle Maschinen, Arbeitsspeicher, CPUs und Speicherplatz) im Verhältnis zu den noch verfügbaren Ressourcen.

App Center

Mit dem App Center können Anbieter ihren Kunden bereits vor-konfigurierte Cloud Anwendungen, wie z.B. Betriebssysteme zur Verfügung stellen. Endkunden können aus den virtuellen Maschinen Images eines Anbieters virtuelle Maschinen erstellen und diese direkt ihrer Cloud hinzufügen, oder eigene virtuelle Maschinen verwenden.

Virtual Private Cloud (Vlan)

Für jeden Endkunden und dessen virtuellen Maschinen steht ein oder mehrere private VLANs zur Verfügung, die durch den Endkunden selber verwaltet werden können.

Theme Engine

Mit der Theme Engine kann jeder Anbieter das Branding, sowie das look & feel enstprechend seiner Bedürfnisse anapssen.

Gruppierung von virtuellen Maschinen

Mittels eines Tagging Systems (tags) können mehrere einzelne virtuelle Maschinen zu einer Gruppe von virtuellen Maschinen organisiert werden.

Quelle



Thin Clients

IT-Abteilungen leben neben einem erhöhten Kostendruck zusätzlich mit den Problemen der Sicherheit und der Aufrechterhaltung des IT-Betriebs.

Der in den letzten Jahren immer mal wieder aktuell gewordene und dann wieder verblasste Ansatz der Thin Client Nutzung kann der IT helfen diese Probleme zu bewältigen, verfügen Thin Clients doch gegenüber den klassischen Desktop PCs über einige Vorteile.

Zunächst sind Thin Clients - wie der Name schon andeutet - sehr einfach und weniger komplex als Desktop PCs. Das liegt zum einen an den geringeren und funktional beschränkten Hardwareressourcen, zum anderen an der eingesetzten Software. Die benötigte Software wird serverseitig betrieben, wodurch ein lokales "vollwertiges" Betriebssystem nicht benötigt wird. Diese beiden Kernpunkte sorgen dafür, das Thin Clients weniger sensibel bzgl. Fehler und Angriffe sind.

Von Desktop PCs wird heutzutage erwartet, dass sie 24/7 funktionsfähig sind. Dabei wird jedoch nicht bedacht, das nicht vorhersehbare Situationen, wie Hackerangriffe, der Ausfall der Hardware oder ganz einfach Benutzer dafür verantwortlich sind, das dem nicht so ist und niemand diese Erwartungen gewährleisten kann.

Speziell die Einflussnahme der Benutzer auf die Systemkonfiguration erhöht auf Thin Clients, durch das Beschränken oder vollständige entziehen der Rechte, die Systemstabilität und schützt den Benutzer und das gesamte Unternehmensnetzwerk vor Angriffen durch Viren, Würmer und jeglicher Form von Malware. Weiterhin wird die Stabilität und der Schutz erhöht, da Thin Clients ihre Anwendungen von einem oder mehreren zentralen Servern beziehen und nicht mehr - wie Desktop PCs - auf lokale Anwendungen und ein vollwertiges lokales Betriebssystem angewiesen sind.

Trotz hinreichender Anordnung speichern Benutzer ihre Daten generell auf der lokalen Festplatte und nicht wie gefordert auf die dafür vorgesehenen Netzlaufwerke, also auf den zentralen Servern. Nicht selten hört man von Fehlern der Festplatte die dazu führen, dass die Arbeit eines Tages in kurzer Zeit hinfällig war und erneut erledigt werden muss. Der Diebstahl der Daten sollte auch hier nicht außer acht gelassen werden. Auf der anderen Seite sind Benutzer in diesem Fall für Backups selber zuständig, was verständlicherweise gerne mal vergessen wird. Da Thin Clients über keine lokalen Daten verfügen, sind damit alle oben genannten Probleme hinfällig. Das Speichern der Daten erfolgt auf zentralen Servern, wo von ihnen jeden Tag automatisiert ein Backup vorgenommen wird. Dazu kommt, dass wenn keine lokalen Daten vorhanden sind, diese auch nicht gestohlen werden können. Zudem reicht es aus, Desktop-Firewall Konzepte serverseitig einzurichten, wodurch der Administrationsaufwand verringert wird.

Der letzte Themenbereiche behandelt die physikalische Sicherheit der Systeme. Werden Desktop PCs gestohlen, ist der Angreifer im schlimmsten Fall im Besitz unternehmenskritischer Daten (Festplattenverschlüsselung hin oder her). Thin Clients hingegen werden erst dann sinnvoll, wenn sie mit einem Server des Unternehmensnetzwerks verbunden sind und haben außerhalb des Unternehmens für den Angreifer keinen Nutzen. Auch der Diebstahl der Daten durch den Anschluss externer Geräte wie USB-Sticks oder USB-Festplatten oder das Übertragen von Viren etc. durch CDs stellt ein nicht zu verkennendes Problem dar. Der Zugriff kann bei Desktop PCs natürlich unterbunden werden. Das physikalische entfernen stellt sich jedoch als ziemlich schwierig und aufwendig dar. Fällt die Entscheidung daher auf Thin Clients, sollte mit den Gedanken gespielt werden sich gegen physikalische vorhandene USB-Ports und CD/DVD Laufwerke zu entscheiden.

All die oben beschriebenen Probleme der Desktop PCs können natürlich durch diverse Softwareangebote behoben werden. Jedoch verursachen diese wiederum Anschaffungs-, Installations- und Wartungskosten. Zudem ist die Verträglichkeit mit vorhandener (spezial)-Software nicht garantiert.

Erweitern wir den Thin Client Gedanken nun um das Thema Cloud Computing ist es durchaus vorstellbar, dass die Infrastruktur für die Terminalserver nun nicht mehr im eigenen Rechenzentrum steht, sondern als Appliance/Image oder einem Terminalserver in einer Cloud z.B. von Amazon, GoGrid oder einem anderen Anbieter gehostet wird. Ein Unternehmen müsste dann lediglich über die Hardwareressourcen (Thin Clients) und eine schnelle Internetverbindung verfügen. Das ist wohlgemerkt natürlich eine sehr abstrakte und ideale Sicht auf das Thema, die noch tiefer durchdrungen werden muss.

Quelle der Graphik

  • NetPoint


Glide OS

Mit eyeOS habe ich vor kurzem bereits einen Cloud Desktop vorgestellt. Heute folgt mit Glide OS nun der Zweite.

Wie bei eyeOS handelt es sich bei Glide OS in der aktuellen Version 4.0 um ein webbasiertes Betriebssystem, dass unabhängig von der Hardware und dem darauf ausgeführten "klassischen" Betriebssystem ausgeführt werden kann und auf das mit einem Standard Webbrowser zugegriffen wird. Der Zugriff kann dabei von einem gewöhnlichen PC (http://desktop.glidesociety.com/default.aspx) oder einem Smartphone (http://www.glidemobile.com/browser_index.aspx) stattfinden.

Zu folgenden Systemen ist Glide OS derzeit kompatibel:

  • Windows
  • Mac OS X
  • Linux
  • Solaris
  • Android
  • BlackBerry
  • iPhone
  • Palm Pre
  • Symbian
  • Windows Mobile

Für Android und Blackberry stehen zusätzlich proprietäre Anwendungen bereit, für iPhone/iPod Touch, sowie Palm und Symbian sollen welche folgen.

Für die Webbrowser Firefox, Internet Explorer und Chrome stehen darüber hinaus spezielle Plugins zur Verfügung.

Die Architektur von Glide OS basiert auf einem Mix aus C++, HTML, JavaScript (AJAX) und Flash Applikationen. Mit dem Glide Sync App können Daten zwischen dem Glide OS Desktop und dem lokalen PC ausgetauscht werden. Dabei werden die Daten zentral auf einem Glide OS Server gespeichert. Neben einem Programm zur Bildbearbeitung sind weitere Apps wie z.B. eine Office Suite (wobei ich eine Textverarbeitung nicht gefunden habe), ein E-Mail Client oder ein Kalender vorhanden. weitere Anwendungen inkl. Screenshots sind weiter unten zu sehen.

Glide OS ist ein zwei Versionen verfügbar. Die kostenlose bietet 30 GB Speicherplatz und kann von bis zu 6 unterschiedlichen Benutzern verwendet werden. Die Premium Variante kostet entweder $4.95 monatlich oder $49.95 pro Jahr. Das beinhaltet dann 250 GB Speicherplatz und 25 unterschiedliche Benutzer.

Screenshots & Anwendungen

Der Anmeldedialog

Der Startbildschirm nach der Anmeldung

Unter "Settings" können benutzerspezifische Einstellungen vorgenommen werden.

Mit "Draw" steht ein rudimentäres Malprogramm ähnlich Microsoft Paint zur Verfügung.

Mit dem "Address Book" können die Kontakte verwaltet werden.

Hinter "Stickies" verbergen sich Notizzettel für den Desktop.

Für die Synchronisation mit dem lokalen PC wird für jedes Betriebssystem eine spezielle Anwendung benötigt.

Mit dem "Calculator" steht auch ein wissenschaftlicher Taschenrechner bereit.

Beim Versuch den Text in der Textverarbeitung "Write" zu vergrößern, wurde meine Eingabe immer wieder gelöscht, daher nur fett!

Ein Blick auf den "Calender".

Die Präsentationsanwendung "Present".

Das Bildbearbeitungsprogramm "Photo Edit".

Mittels "Customize" kann das Aussehen des Desktops angepasst werden.

Quelle



Peecho's Printcloud – Printing as a Service

Mit der Printcloud bietet das Unternehmen Peecho aus den Niederlanden einen Cloud Service, mit der ein einheitlicher Zugang zu allen Druckumgebungen auf der ganzen Welt ermöglicht wird. Es reicht dafür aus, lediglich eine eigene Benutzerschnittstelle zu erstellen. Der Rest wird von der Printcloud auf Basis von pay-per-use und ohne eine erforderliche Menge abgewickelt. Der gesamte Prozess vom Auftragseingang über die Verarbeitung bis hin zur Produktion und dem Versand von personalisierten Produkten wird von der Printcloud übernommen.

Was bietet die Printcloud?

  • Grafik-Design
    Vollständige Unterstützung von Adobe Indesign IDML. Weltweit kann jeder Graphikdesigner für ein Unternehmen, dass die Printcloud nutzt, Produkte entwerfen.
  • Einfache Konnektivität
    Mit Hilfe der REST API kann sich jede Anwendung (z.B. eine Webseite, eine mobile Anwendung, eine Desktop Anwendung oder ein Gadget eines Sozialen Netzwerks) mit der Printcloud verbinden.
  • Software
    Programme stehen für das iPhone und Adobe Flex zur Verfügung.
  • Skalierbarkeit
    Auf Grund von Cloud Computing Technologien können die Kapazitäten in wenigen Minuten erhöht werden, wodurch kein Engpass entsteht.
  • Weltweite Produktion
    Auf Basis von Druckstandards wie JDF und JMT kommuniziert die Printcloud mit einem weltweiten Netzwerk von Druckumgebungen, um das endgültig gedruckte Produkt so nah wie möglich am Ziel der Auslieferung zu produzieren und dadurch die Versandkosten zu minimieren.
  • Faire Abbrechung
    Es müssen keine langfristigen Verträge eingegangen werden was ebenfalls bedeutet, dass Terminierungsentgelte, Vorab-Investitionen oder Einrichtungskosten entstehen. Die Abbrechnung erfolgt vollständig auf einer pay per use Basis. Es wird also tatsächlich nur das bezahlt, was genutzt wird.

Funktionen

  • Produktkatalog
    Es steht ein Produktkatalog für Anwendungen/ Produkte von Kunden bereit, die schnell erstellt werden können.
  • Produktvorlagen
    Schnelle Erstellung von Produktvorlagen durch die Nutzung von Adobe InDesign IDML.
  • Einkaufswagen
    Es können mehrere Produkte in einer Bestellung zusammengefasst werden.
  • Abbrechnung
    Die Rechnungsstellung an die Endkunden kann von der Printcloud ebenfalls übernommen werden.
  • Gutschein-Codes
    Für werden mobile Zahlungen oder Marketing-Kampagnen können Gutschein-Codes erstellt werden.
  • Status-Updates
    Der Status des gesamten Prozessverlaufs kann zu jederzeit mittels einer eigens entwickelten Anwendung oder via der Webseite der Printcloud dem Endkunden angezeigt werden.

  • REST API
    Zur Kommunikation steht eine REST API zur Verfügung.
  • iPhone
    Hilfe bei der Entwicklung einer iPhone Anwendung für eigene Produkte mittels der Printcloud Open Source iPhone Anwendung.
  • Adobe Flex
    Vollständige Unterstützung von Adobe Flex.
  • Skalierbarkeit
    Hohe Skalierbarkeit und Verfügbarkeit durch Cloud Computing Technologien.
  • Weltweite Produktion
    Mit der Printcloud kann jede Druckumgebung auf der ganzen Welt angesprochen werden.

Technik

Die Printcloud Plattform basiert vollständig auf der Architektur der Amazon Web Service.

  • Simple Storage Service
    Alle Daten werden in Amazons Cloudspeicher Simple Storage Service (S3), wodurch eine unbegrenzte Menge an Daten verwaltet und gespeichert werden kann und von überall aus verfügbar ist.
  • Elastic Compute Cloud
    Das Versprechen der Skalierbarkeit realisiert die Printcloud durch den Einsatz von Amazons Elastic Compute Cloud (EC2), mit der je nach Bedarf die Systeme erweitert oder verkleinert werden können und damit saisonale Lastspitzen abgefangen werden können.
  • Simple Queue Service
    Mit dem Amazon Simple Queue Service (SQS) werden die einzelnen Prozesse der Printcloud separiert, wodurch kein neuer Auftrag den gesamten Prozess stören kann.
  • Relational Database Service
    Mit dem Relational Database Service (RDS) steht der Printcloud eine skalierbare Datenbank in der Cloud zur Verfügung.
  • Cloudfront
    Mit Amazon CloudFront werden die benötigten Daten eines Druckauftrags der am nächsten gelegenen Druckumgebung des Auslieferungsorts bereitgestellt.

Für Druckereien

Die Printcloud stellt Anwendungen von Drittanbietern (Händlern) eine REST API für die Kommunikation bereit. Der gesamte Prozess vom Auftragseingang über die Verarbeitung bis hin zur Produktion und dem Versand von personalisierten Produkten wird von der Printcloud für den Händler übernommen.

Aus der Sicht einer Druckerei arbeitet Peecho als eine Art Broker für die eigenen Produkte. Dazu steht ein einziger Einstiegspunkt zur Verfügung, wodurch Peecho's Partner ihren Kunden jegliche Art von Produkt anbieten können. Diese Produkte können in verschiedenen Produktionsstätten auf der ganzen Welt hergestellt werden.

Die Infrastruktur basiert vollständig auf den Amazon Web Services, wobei Technologien wie Elastic Load Balancing und Auto-Scaling genutzt werden, um innerhalb von wenigen Minuten die Skalierung der Systeme vorzunehmen.

Der (Kommunikations)-Prozess zwischen einem Partner und der Printcloud funktioniert wie folgt:

Die Ausgabe der Printcloud für 2D Drucker basiert auf den folgenden Elementen:

  • Job Ticket in JMF (Job Messaging Format) und JDF (Job Definition Format).
  • Produktbeschreibung als Adobe Indesign IDML (InDesign Markup Language).

Die Bestellungen werden dabei nicht direkt zu den Druckereien geschickt, um diese nicht zu überlasten. Vielmehr basiert der gesamte Vorgang auf dem Pull Mechanismus, wodurch die Druckereien die Möglichkeiten haben, die Arbeitslast selber zu bestimmen und können die Aufträge in ihren Produktionsfluss integrieren.

  • Erster Schritt: Ein Jobticket beziehen
    Jeder Job wird einer Druckerei in einer eigenen Amazon SQS Job Ticket Queue abgelegt. Diese können z.B. mittels SOAP abgefragt werden. Das Job Ticket basiert auf einer kleinen XML Datei, in der ein Zeiger auf die Produktionsdatei und die Produkbeschreibung zeigt. Mit der JDF Datei kann die Druckerei entscheiden, wann und wie das Produkt gedruckt werden soll.

    Ist das Ticket von der Druckerei heruntergeladen worden, wird der Status des Tickets auf "Queue" gesetzt, was gleichermaßen bedeutet, dass der Auftrag in Produktion ist.

  • Zweiter Schritt: Das Produkt erhalten
    Jedes Job Ticket zeigt zusätzlich auf einer Produktdatei, die in Amazon S3 gespeichert ist. Auf diesen Service kann mit SOAP oder REST mittels eines Schlüssels oder direkt mit einer URL zugegriffen werden. Abhängig von der Job Beschreibung kann die Druckerei die Produktdatei herunterladen, wenn sie bereit sind zu produzieren.
  • Dritter Schritt: Produzieren, Versenden und auf "versendet" setzen
    Jetzt kann die Druckerei die IDML Datei in ein für sie passendes Format übersetzen, wie z.B. PDF oder PPML. Die Druckerei produziert das Produkt und versendet es an die Empfänger. Anschließend wird der Status des Job Tickets auf "versendet" gesetzt.

    Für die ersten Schritte wird eine Open Source Beispielanwendung bereitgestellt, die Job Tickets und Produkt Dateien aus der Printcloud in einen bestimmten Ordner herunterlädt.

Quelle

  • PRINTCLOUD by Peecho



Installation einer Private Cloud mit OpenNebula

Dieser Artikel beschreibt das Einrichten einer Private Cloud mit OpenNebula auf Ubuntu. Die Infrastruktur besteht dabei aus drei physikalischen Maschinen. Einem Front-End und zwei Nodes, auf denen die virtuellen Maschinen ausgeführt werden. Auf den Nodes muss zusätzlich eine Bridge konfiguriert werden, damit die virtuellen Maschinen das lokale Netzwerk erreichen können. Für das Einrichten der Brigde siehe den Bereich Bridging.

Installation

Auf dem System für das Front-End installieren wir OpenNebula mit folgendem Befehl:

sudo apt-get install opennebula

Für jeden Node installieren wir den OpenNebula-Node:

sudo apt-get install opennebula-node

Um später die SSH Schlüssel zu kopieren, benötigt der oneadmin (wird von OpenNebula erstellt) ein Passwort. Dazu führen wir auf jeder Maschine folgenden Befehl aus:

sudo passwd oneadmin

Nachfolgend müssen die Namen für node01 und node02 entsprechend der eigenen Installation angepasst werden.

Nun kopieren wir den SSH Schlüssel des oneadmin auf jeden Node und in die Datei authorized_keys des Front-Ends.

sudo scp /var/lib/one/.ssh/id_rsa.pub oneadmin@node01:/var/lib/one/.ssh/authorized_keys
sudo scp /var/lib/one/.ssh/id_rsa.pub oneadmin@node02:/var/lib/one/.ssh/authorized_keys
sudo sh -c "cat /var/lib/one/.ssh/id_rsa.pub >> /var/lib/one/.ssh/authorized_keys"

Der SSH Schlüssel jedes Nodes muss in die Liste der bekannten Hosts unter /etc/ssh/ssh_known_hosts auf dem Front-End hinzugefügt werden. Nun muss die SSH Session beendet werden und der SSH Schlüssel von ~/.ssh/known_hosts nach /etc/ssh/ssh_known_hosts kopiert werden.

sudo sh -c "ssh-keygen -f .ssh/known_hosts -F node01 1>> /etc/ssh/ssh_known_hosts"
sudo sh -c "ssh-keygen -f .ssh/known_hosts -F node02 1>> /etc/ssh/ssh_known_hosts"

Diese Schritte erlauben dem oneadmin SCP ohne ein Passwort oder manuellen Eingriff zu nutzen, um eine Image auf den Nodes bereitzustellen.

Auf dem Front-End muss ein Verzeichnis zum Speichern der Images für die virtuellen Maschinen erstellt und dem oneadmin Zugriff auf das Verzeichnis gegeben werden.

sudo mkdir /var/lib/one/images
sudo chown oneadmin /var/lib/one/images/

Nun kann eine virtuelle Maschine in das Verzeichnis /var/lib/one/images kopiert werden.

Eine virtuelle Maschine auf Basis von Ubuntu kann mit dem vmbuilder erstellt werden, siehe dazu JeOS and vmbuilder.

Konfiguration

Der OpenNebula Cluster kann nun konfiguriert werden. Weiterhin können virtuelle Maschinen dem Cluster hinzugefügt werden.

Auf dem Front-End geben wir dazu folgenden Befehl ein:

onehost create node01 im_kvm vmm_kvm tm_ssh
onehost create node02 im_kvm vmm_kvm tm_ssh

Als nächstes erstellen wir eine Template-Datei mit dem Namen vnet01.template für das virtuelle Netzwerk:

NAME = "LAN"
TYPE = RANGED
BRIDGE = br0
NETWORK_SIZE = C
NETWORK_ADDRESS = 192.168.0.0

Die NETWORK_ADDRESS sollte dem eigenen lokalen Netzwerk entsprechen.

Mit dem onevnet Befehl fügen wir das virtuelle Netzwerk OpenNebula hinzu:

onevnet create vnet01.template

Jetzt erstellen wir eine Template-Datei für eine virtuelle Maschine mit dem Namen vm01.template:

NAME = vm01

CPU = 0.5
MEMORY = 512

OS = [ BOOT = hd ]

DISK = [
source = "/var/lib/one/images/vm01.qcow2",
target = "hda",
readonly = "no" ]

NIC = [ NETWORK="LAN" ]

GRAPHICS = [type="vnc",listen="127.0.0.1",port="-1"]

Mit dem Befehl onevm starten wir die virtuelle Maschine:

onevm submit vm01.template

Mit dem Befehl onevm list können wir weitere Informationen über die gestarteten virtuellen Maschinen abfragen. Mit dem Befehl onevm show vm01 erhalten wir detaillierte Informationen zu einer bestimmten virtuellen Maschine.

Quelle



Eigenschaften einer Cloud Platform

Ich habe bisher einige Cloud Computing Plattformen, darunter openQRM, OpenNebula oder OpenECP vorgestellt und ein paar weitere werden noch folgen. Daher erläutere ich in diesem Artikel die grundsätzlichen Eigenschaften die eine Cloud Plattform (meiner Meinung nach) hat bzw. haben sollte.

1. Zunächst sollten ausreichend virtualisierte Serverressourcen zur Verfügung stehen. Weiterhin müssen, (vor allem dann) wenn sich mehrere Kunden auf einem System befinden, jedem Kunden diese virtualisierten Serverressourcen garantiert werden und die einzelnen virtuellen Instanzen isoliert und damit vollständig von einander getrennt betrieben werden.

2. Zum Bereitstellen von umfangreichen Enterprise-Class-Services wie z.B. hohe Verfügbarkeit, Systemwiederherstellungen nach Datenverlusten, automatische Skalierung während Lastspitzen und Ressourcenoptimierungen muss eine große (unbegrenzte) Menge an virtualisierten Serverressourcen vorhanden sein.

3. Für ein zustandsbehaftetes Lifecycle Management, wozu Snapshots, schnelles Cloning (duplizieren) und eine dynamische Versorgung mit Ressourcen über große Server Infrastrukturen gehören, wird ein virtualisierter Cloud Speicher benötigt.

4. Für die Anpassung der virtuellen Topologie - durch das Hinzufügen weiterer Netzwerkfunktionen für Sicherheit, Routing, Load Balancing, Application Firewalls, Protokol Optimierung, etc. in den OSI Schichten 3 bis 7 - und die Möglichkeit die jeweiligen (Teil)-Netzwerke auf Multi-Kunden Systemen zu isolieren und Ressourcen zu garantieren, werden virtuelle Netzwerk Ressourcen benötigt.

5. Es müssen umfangreiche und offene APIs zur Kontrolle sämtlicher Ressourcen vorhanden sein, damit Cloud Computing Anbieter ihren Kunden die vollständige Kontrolle über deren privaten virtuellen Rechenzentren anbieten können.

6. Die Cloud Plattform muss für allen gängigen Virtualisierungs-Plattformen vollständige Kompatibilität bieten und jede virtuelle Maschine unterstützen, um u.a. einen Vendor Lock-in zu vermeiden. Des Weiteren müssen Funktionen für die Migration von virtuellen Maschinen zwischen unterschiedlichen Virtualisierungs-Technologien (P2V, V2P und V2V) vorhanden sein.

7. Zu guter letzt sollte die Cloud Plattform auf Open Source basieren, um eine größtmögliche Kompatibilität zu allen möglichen Clouds aufzuweisen und um einfach adaptiert und angenommen zu werden.



OpenECP

Sam Johnston hat mit OpenECP (Open Elastic Computing Platform) einen Fork von Enomalys ECP entwickelt und veröffentlicht, den ich in diesem Artikel vorstelle.

Bei OpenECP handelt es sich um einen Open Source Fork von Enomaly's Elastic Computing Platform (ECP), welche im November 2009 kommerzialisiert wurde. Der Fork beinhaltetdabei die vollständige ECP und behebt darüber hinaus einige schwerwiegende Sicherheitslücken.

OpenECP ist eine Web basierte Management Plattform für Linux basierte Hypervisor, einschließlich KVM und Xen und kann dafür genutzt werden um Public und Privat Cloud Computing Umgebungen aufzubauen.

OpenECP soll immer frei verfügbar sein, weshalb es unter die Affero General Public License v3 gestellt wurde.

Funktionen

  • Unterstützung von Xen, KVM, Qemu, OpenVZ und Amazon EC2
  • Unterstützung von mehreren OpenECP Server
  • REST Web Service API
  • Ein Dashboard zur Auswertung und Steuerung (Last-Ausgleich)
  • Automatisiertes Deployment von virtuellen Maschinen

Screenshots

OpenECP Cluster Manager

OpenECP Repository

OpenECP User Manager

Quelle

Vielen Dank auch an Andre Westbunk



Enomaly's Elastic Computing Platform

Enomaly’s Elastic Computing Platform (ECP) dient Internet Carriern, Hosting-Providern und deren Kunden dazu, die Stärken von Cloud Computing, wie Flexibilität und Kosteneinsparungen zu nutzen. Mit ECP können vollständige Cloud Computing Plattformen verwaltet und Infrastrukturen on-Demand bereitgestellt werden. Weitere Möglichkeiten bestehen in der dynamischen Versorgung mit Ressourcen und der Skalierung nach Bedarf.

Enomaly's Elastic Computing Platform bietet folgende Funktionen:

Unbegrenzte Skalierbarkeit
Mit der ECP Architektur können große Cloud Plattformen über mehrere Rechenzentren in unterschiedlichen geographischen Regionen hinweg aufgebaut werden.

Eigene Konfigurationsmöglichkeiten für die optimale Anpassung an das Unternehmen
Unternehmen können, unterstützt durch eine Echtzeit-Überwachung, sowie umfangreichen Befehls- und Kontrollmöglichkeiten, ihre Cloud Infrastrukturen bzgl. Lastspitzen entsprechend anpassen.

Sicherheit trotz mehrerer unterschiedlicher Nutzer auf einer Plattform
Auf Basis von sehr fein granular einstellbaren Zugriffskontrollen kann ein Benutzer den Zugriff auf die Cloud Plattform (für Multi-User) so einstellen, dass nur die jeweils eigenen Ressourcen eingesehen und verwaltet werden können. Darüber hinaus kann ein Anbieter eine unbegrenzte Anzahl von VLANs für jeden Kunden erstellen und damit das Netzwerk zwischen mehreren Kunden so aufteilen und die Teilnetzwerke so isolieren, dass jedem Kunden innerhalb der Cloud die Privatsphäre seiner Daten garantiert wird. Ein Quota System schützt die Cloud gegen den Missbrauch.

Automatisierte Versorgung mit Ressourcen
ECP verfügt über eine Regelbasis zur automatischen Versorgung mit Ressourcen und kann damit den optimalen Standort einer virtuellen Anwendung bestimmen. Dazu stellt ECP sicher, dass ein Node einem optimalen physikalischen als auch virtuellen Standort zugeordnet ist. Weiterhin ist ECP in der Lage, ein offline Image einer virtuellen Maschine zu ändern, um den Speicherplatz, die Vernetzung, den Zustand des Clusters, etc. für schnelle Deployments und Off-Site Migrationen vorzunehmen.

Integration in vorhandene Infrastrukturen
ECP verfügt über eine API, mit der Benutzer die Verwaltung ihrer Cloud Infrastruktur automatisieren können, um z.B. externe SLAs oder andere Systeme für die Verwaltung zu integrieren. Darüber hinaus stellt ECP eine Back-Office API bereit, mit der weitere Systeme zur Ressourcenversorgung und Abbrechnung von (anderen) Anbietern integriert und administrative Aufgaben automatisiert werden können.

Integration von ECP im Rechenzentrum

Quelle



Die Xen Cloud Platform

In diesem Artikel stelle ich die Xen Cloud Platform (XCP) vor, die im August 2009 erstmals veröffentlicht wurde. Dabei handelt es sich um eine Initiative, mit der eine vollständige Open Source Lösung auf Basis einer von der Industrie unterstützenden API für Cloud Anbieter zur Verfügung stehen soll. Mit einer XCP Infrastruktur sollen andere Open Source Projekte wie z.B. Eucalyptus, Convirture, OpenNebula, OpenXenCenter, Xen VNC Proxy, und Nimbus in der Lage sein den Xen Hypervisor besser nutzen zu können, in dem die neue API speziell auf das Cloud Computing ausgerichtet ist.

Die Xen Cloud Platform versteht sich als eine Kombination der Eigenschaften der Xen Virtualisierung Platform (Mobilität, Offenheit, Isolation und der Möglichkeit mehrere Instanzen parallelen auszuführen) mit neuen und verbesserten Speicher-, Sicherheits- und Netzwerk- Virtualisierungstechnologien. Damit soll eine Vielzahl von virtuellen Infrastruktur Cloud Services angeboten werden können. Darüber hinaus werden Anforderungen bzgl. der Sicherheit, Verfügbarkeit, Performance und Isolation von Hybrid Clouds erfüllt.

Aktuelle Funktionen

  • Xen 3.4.1
  • Linux 2.6.27 Kernel
  • Windows PV Treiber, Microsoft Zertifiziert
  • XAPI Enterprise-class Management Tool Stack
    • Lebenszyklus einer virtuellen Maschine: Live Snapshots, Checkpoint, Migration
    • Ressourcen Pools: Sichere Neuverteilung (Live), Autokonfiguration, DR
    • Host Konfiguration: Flexibles Speichermanagement, Netzwerkbetrieb, Power Management
    • Verfolgen von Ereignissen: Fortschritt, Benachrichtigung
    • Sichere Kommunikation durch SSL
    • Möglichkeit für Upgrades und Patching
    • Überwachung und Benachrichtung bzgl. der Perfomance in Echtzeit
  • Unterstützung von Single-Root I/O Virtualization
  • Installation des Host per CD-ROM und Netzwerk
  • Vollständige "xe" Kommandozeile und Web Service API
  • Openvswitch
  • Fehlertoleranz (Marathon FT products)
  • VNC Console Proxy und Web Front-End
  • Unabhängiges Front-End

Roadmap für XCP 1.0

  • VSwitch Integration
    Mehrere Nutzer einer Netzwerkinfrastruktur; Übernahme der Firewall- und Routingregeln von migrierten virtuellen Maschinen; Flexible Überwachung des Datenverkehrs von virtuellen Ports
  • Netchannel 2 Integration
    Verbesserung der Skalierbarkeit der Xen Vernetzung auf größeren Systemen; Beschleunigung des Datenverkehrs zwischen virtuellen Maschinen
  • Single-Root I/O Virtualization (SR-IVO) Vernetzung
    Xen unterstützt bereits SR-IVO Netzwerkkarten, allerdings müssen diese noch manuell konfiguriert werden.
  • Starten der Gast Systeme von SR-IOV Host-Bus-Adapters (HBAs)
  • Libvirt bindings
  • Native Unterstützung für das Open Virtualization Format (OVF)
  • DMTF (Distributed Management Task Force) Standards für Virtualisierung und Cloud
  • Intelligente Fehlerbehebung um die Auswirkungen von Hardware-Fehlern zu minimieren
  • Unterstützung von Web-basierten Management mehrere Nutzer für unterschiedliche Anbieter wie z.B. Eucalyptus, Enomaly oder OpenNebula
  • Verbesserung der Skalierbarkeit des Managements für die Verwaltung von mehr als 1.000 Xen-Hosts
  • Zusammenschluss von günstigen lokalen Speicher durch die Integration von DRDB und Parallax
  • Oracle Cluster File System 2 (ocfs2) Integration

Quelle

Xen Cloud Platform



Skalierung eines Cluster mit Amazon EC2

Dieses Beispiel zeigt welche Komponenten erstellt und konfiguriert werden müssen, um einen Mini Cluster innerhalb eines privaten Netzwerks unter der Verwendung von NIS und NFS aufzubauen. Zusätzlich werden externe Amazon EC2 Nodes per VPN mit dem Server verbunden und am Ende der Cluster mittels der Sun Grid Engine (SGE) aufgebaut.

Architektur

Folgende technische Voraussetzungen werden benötigt:

  • Das private Netzwerk darf nur über ein VPN erreichbar sein, damit die Nodes die sich darin befinden vollständig isoliert sind.
  • Der Server muss NFS, NIS und VPN unterstützen.
  • Die internen Nodes müssen den NFS und NIS Dienst automatisch vom Server starten.
  • Die externen Nodes sind von Amazon EC2.
  • Die externen Nodes müssen automatisch eine Verbindung in das VPN aufbauen und den NFS und NIS Dienst vom Server starten.

Auf Basis dieser Anforderungen werden 3 Images benötigt.

  • 2 Xen Images - einen Server und einen internen Node
  • 1 Amazon Machine Image (AMI) von Amazon EC2 mit derselben Konfiguration wie der interne Node.

Die Konfigurationen sehen in diesem Beispiel wie folgt aus:

Server

  • Private IP-Adresse: eth0 10.1.1.99
  • Öffentliche IP-Adresse: eth1 147.96.1.100
  • Hostname: oneserver

Xen Node (lokal)

  • Private IP-Adresse: eth0 10.1.1.55
  • Hostname: local01

Amazon EC2 Node (IP-Adress Bereich: 10.1.1.100 bis 10.1.1.254)

  • VPN IP-Adresse: tap0 10.1.1.100 (wird durch den VPN Server vergeben)
  • Öffentliche IP-Adresse: eth0 - wird automatisch von Amazon vergeben
  • Hostname: workernode0

Konfiguration

Konfiguration der Images

Nun wird eine Kopie des Image erstellt und die /etc/hostname und /etc/network/interfaces für den Server (oneserver) editiert. Eine weitere Kopie des Image dient als Node, die oben genannten Dateien müssen für diesen ebenfalls angepasst werden. Nach dem unmount der Images werden diese mit Xen gestartet. Für die Konfiguration von NFS und NIS helfen die beiden nachfolgend verlinkten Howtos.

Bei der Konfiguration des VPN Server ist darauf zu achten, dass alle Clients die Zertifikate doppelt verwenden können. Das liegt daran, da keine separaten Amazon EC2 Instanzen erstellt werden sollen und es sich bei den EC2 Instanzen daher um dieselben handelt. Dazu muss in der Konfigurationsdatei von OpenVPN /etc/openvpn/server.conf in Zeilt "duplicate-cn" eingefügt werden. Die Konfiguration von OpenVPN findet nur auf dem Server statt. Eine Howto für die Konfiguration von OpenVPN ist unter dem folgenden Link zu finden.

Für das Erstellen eines Amazon Machine Images wird der Befehl bundle benötigt, dazu kann der lokale Node genutzt werden. Weiterhin muss der VPN Client und die Sun Grid Engine installiert und konfiguriert werden. Auf dem schnellsten Wege sollte das funktionieren, indem eine Kopie des lokalen Node erstellt und konfiguriert wird, anschließend wird es mit dem Befehl ec2-bundle-image gebündelt.

Während des Boot-Vorgangs wird nun noch ein Skript benötigt, in welchem der IP-Adressbereich von OpenVPN für die Amazon EC2 Instanzen von 10.1.1.100 bis 10.1.1.254 reserviert wird. die Konfiguration erfolgt in der /etc/hosts auf dem Server (oneserver).

EC2 Konfiguration mit OpenNebula

Nach der Konfiguration werden nun die Templates benötigt, um die Maschinen zu starten. Für alle lokalen Maschinen wie den oneserver und die Nodes wird jeweils ein Template benötigt, für die EC2 Maschinen reicht ein Template aus.

clouduser@machine:bin$ ec2-describe-images
IMAGE ami-e4a94d8d one-w2/image.manifest.xml 587384515363 available private i386 machine
IMAGE ami-cdb054a4 sge-dolphin/image.manifest.xml 587384515363 available private i386 machine
IMAGE ami-d8b753b1 sge-parrot/image.manifest.xml 587384515363 available private i386 machine
IMAGE ami-dcb054b5 sge-squirrel/image.manifest.xml 587384515363 available private i386 machine

Auf Basis des Images "ami-dcb054b5" wird das EC2 Template erstellt.

CPU=1

MEMORY=1700

EC2=[ AMI="ami-dcb054b5", KEYPAIR="gsg-keypair", ELASTICIP="75.101.155.97", INSTANCETYPE="m1.small", AUTHORIZED_PORTS="22-25"]

REQUIREMENTS = 'HOSTNAME = "ec2"'

Deployment und Tests

Um den Test zu starten muss zunächst OpenNebula gestartet und der EC2 Host hinzugefügt werden.

clouduser@machine:one$ one start
oned and scheduler started
lgonzalez@machine:one$ onehost create ec2 im_ec2 vmm_ec2
lgonzalez@machine:one$ onehost list
HID NAME RVM TCPU FCPU ACPU TMEM FMEM STAT
0 ec2 0 0 100 on

Als nächstes wird die EC2 Instanz gestartet.

clouduser@machine:one$ onevm create ec2.template
ID: 0

Die virtuelle Maschine wird später automatisch auf Amazon EC2 bereitgestellt.

clouduser@machine:one$ onevm list
ID NAME STAT CPU MEM HOSTNAME TIME
0 one-0 pend 0 0 00 00:00:05
lgonzalez@machine:one$ onevm list
ID NAME STAT CPU MEM HOSTNAME TIME
0 one-0 boot 0 0 ec2 00 00:00:15

Mittels onevm show id können alle Informationen eingesehen werden.

clouduser@machine:one$ onevm show 0
VID : 0
AID : -1
TID : -1
UID : 0
STATE : ACTIVE
LCM STATE : RUNNING
DEPLOY ID : i-1d04d674
MEMORY : 0
CPU : 0
PRIORITY : -2147483648
RESCHEDULE : 0
LAST RESCHEDULE: 0
LAST POLL : 1216647834
START TIME : 07/21 15:42:47
STOP TIME : 01/01 01:00:00
NET TX : 0
NET RX : 0

....: Template :....
CPU : 1
EC2 : AMI=ami-dcb054b5,AUTHORIZED_PORTS=22-25,ELASTICIP=75.101.155.97,INSTANCETYPE=m1.small,KEYPAIR=gsg-keypair
IP : ec2-75-101-155-97.compute-1.amazonaws.com
MEMORY : 1700
NAME : one-0
REQUIREMENTS : HOSTNAME = "ec2"

In diesem Beispiel ist die EC2 Instanz über die Adresse ec2-75-101-155-97.compute-1.amazonaws.com zu erreichen.

Nun muss geprüft werden, ob alle virtuellen Maschinen im Cluster gestartet sind. Es existiert eine lokale virtuelle Maschine auf Basis von Xen (local01) und eine von Amazon EC2 (workernode0).

oneserver:~# qstat -f
queuename qtype used/tot. load_avg arch states
----------------------------------------------------------------------------
all.q@local01 BIP 0/1 0.05 lx24-x86
----------------------------------------------------------------------------
all.q@workernode0 BIP 0/1 0.04 lx24-x86
----------------------------------------------------------------------------

Um den Cluster zu testen können ein paar Jobs mittels qsub an die Sun Grid Engine geschickt werden.

oneserver:~# qsub test_1.sh; qsub test_2.sh;

Nun ist zu sehen, welche Jobs im Hybrid Cluster geplant und gestartet sind.


clouduser@oneserver:~$ qstat -f
queuename qtype used/tot. load_avg arch states
----------------------------------------------------------------------------
all.q@local01 BIP 0/1 0.02 lx24-x86
----------------------------------------------------------------------------
all.q@workernode0 BIP 0/1 0.01 lx24-x86
----------------------------------------------------------------------------
############################################################################
- PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS
############################################################################
1180 0.00000 test_1.sh clouduser qw 07/21/2008 15:26:09 1
1181 0.00000 test_2.sh clouduser qw 07/21/2008 15:26:09 1

clouduser@oneserver:~$ qstat -f
queuename qtype used/tot. load_avg arch states
----------------------------------------------------------------------------
all.q@local01 BIP 1/1 0.02 lx24-x86
1181 0.55500 test_2.sh clouduser r 07/21/2008 15:26:20 1
----------------------------------------------------------------------------
all.q@workernode0 BIP 1/1 0.07 lx24-x86
1180 0.55500 test_1.sh clouduser r 07/21/2008 15:26:20 1
----------------------------------------------------------------------------

Es können beliebig viele externe Amazon EC2 Instanzen automatisch zum Cluster als Nodes hinzugefügt werden und damit die Skalierbarkeit dynamisch erhöht werden.

Quelle



Skalierung von Web-Servern auf Amazon EC2

Dieses Beispiel zeigt, wie eine skalierbare Web Anwendung auf einer virtuellen Infrastruktur bereitgestellt wird. Um dies zu erreichen wird ein Load Balancer als Master Node für diese Web Anwendung eingesetzt. Hinter dem Load Balancer werden Slave Nodes eingesetzt, die über eine Kopie dieser Web Anwendung verfügen, für den Fall, dass eine Anfrage zu ihnen weitergeleitet wird. Die Leistung (Anfragen pro Sekunde) der Web Anwendung kann durch das Starten oder Herunterfahren von virtuellen Instanzen, die als Nodes des Load Balancer dienen, dynamisch erhöht oder verringert werden.

Ein Teil dieses Beispiels zeigt, wie Remote Nodes (Amazon EC2) eingesetzt werden, wenn die lokale Infrastruktur (auf Basis von Xen) ausgelastet ist.

Architektur

Folgende Komponenten werden für den Aufbau der virtuellen Infrastruktur genutzt:

  • Ein NGinx Server als Load Balancer - zur Aufteilung der Anfragen an die Webserver.
  • Mehrere NGinx Server als Webserver (die einzelnen Nodes des Load Balancer), die jeweils auf einer virtuellen Maschine ausgeführt werden.

Mit den folgenden Eigenschaften:

  • Die virtuellen Maschinen, auf welchen die Webserver ausgeführt werden, können sich lokal (auf dem Xen Hypervisor innerhalb der lokalen Infrastruktur) oder remote (auf Amazon EC2 Instanten) befinden.
  • Die Verwaltung (Monitoring, Deployment, Miration, ...) der virtuellen Maschinen wird mit OpenNebula vorgenommen.

Die obere Graphik beschreibt folgende Eigenschaften:

  • Die grünen Pfeile stehen für Web-Anfragen durch die Web-Clients an den Load Balancer.
  • Die roten Pfeile sind die Anfragen der Web-Clients, die von dem Load Balancer an die Webserver weitergeleitet werden.
  • Die orangen Pfeile stehen für das Monitoring und der Verwaltung durch den Virtual Machine Manager (OpenNebula).

Durch das dynamische Bereitstellen und Hinzufügen weiterer virtueller Webserver zu dem Load Balancer, verfügt diese Infrastruktur über eine hohe Fehlertoleranz, Verfügbarkeit und Skalierbarkeit. Darüber hinaus unterstützt die (virtuelle) Infrastruktur zwei unterschiedliche Virtualisierungs-Technologien (Xen und Amazon EC2), wodurch eine Erweiterung der lokalen Infrastruktur durch eine externe Infrastruktur möglich ist.

Konfiguration
Zunächst muss OpenNebula für das Deployment der virtuellen Infrastruktur konfiguriert werden. Weiterhin muss NGinx auf die Systeme installiert werden, die später den Load Balancer und die Webserver beherbergen sollen. Das Vorgehen dazu ist in dem folgenden Howto beschrieben.

Für die Konfiguration des Load Balancer gelten dieselben Schritte wie in dem oben genannten Howto. Als Konfigurationsdatei kann die nachfolgend aufgeführte genutzt werden. Hier ist der Host definiert, der als Load Balancer verwendet wird und welche Auswahlmethode (round-robin, gewichtet) genutzt werden soll.


clouduser@machine:one$ vim nginx.conf

user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
proxy_pass http://one_loadbalancer;
}
}
upstream one_loadbalancer {
server 10.1.1.11:80 ;
server 10.1.1.22:80 ;
server 10.1.1.33:80 ;
server 10.1.1.44:80 ;
}
}

Im Bereich upstream der Konfigurationsdatei werden die virtuellen Webserver definiert, auf welche die Anfragen für den Lastausgleich aufgeteilt werden. Hier müssen ggf. weitere virtuelle Webserver hinzugefügt werden.

In diesem Beispiel haben die Webserver die IP-Adressen 10.1.1.11, 10.1.1.22, 10.1.1.33 und 10.1.1.44. Damit können also vier Nodes verwendet werden.

Der Load Balancer verfügt über:

  • eine private IP-Adresse für die Kommunikation mit den Nodes im privaten Netzwerks. (in diesem Beispiel 10.1.1.99)
  • eine öffentliche IP-Adresse für die Kommunikation mit den Web-Clients und den Amazon EC2 Instanzen.

Die Amazon EC2 haben öffentliche IP Adressen und kommunizieren mit OpenNebula und dem Load Balancer über das Internet.

Um OpenNebula für die Kommunikation mit Amazon EC2 zu konfigurieren und die Instanzen mit NGinx bereitzustellen sind folgende Schritte notwendig.

Jetzt können die Templates für die lokalen und remote Machinen erstellt werden.

Für den Load Balancer wird folgendes Template verwendet:

clouduser@machine:one$ cat xen.loadbalancer
CPU = 0.5
MEMORY = 128
OS = [kernel="/boot/vmlinuz",initrd= "/boot/initrd",root="sda1" ]
DISK = [source="/images/loadbalancer.disk",target="sda",readonly="no"]

Die lokalen Maschinen verwenden diese Templates:

clouduser@machine:one$ cat xen.local01
CPU = 0.5
MEMORY = 128
OS = [kernel="/boot/vmlinuz",initrd= "/boot/initrd",root="sda1" ]
DISK = [source="/images/local01.disk",target="sda",readonly="no"]

Die Pfade zu den Images und dem Kernel müssen entsprechend der eigenen Umgebung angepasst werden. Aus den Images können beliebig viele Klone für die lokalen Nodes erstellt werden.

Die folgenden Templates werden für die remote Maschinen (Amazon EC2) verwendet.

clouduser@machine:one$ cat ec2.template
CPU=1
MEMORY=1700
EC2=[
AMI="ami-yao044b1",
KEYPAIR="gsg-keypair",
INSTANCETYPE="m1.small",
AUTHORIZED_PORTS="22-25"
]
REQUIREMENTS = 'HOSTNAME = "ec2"'

Die Parameter AMI Identifier, Key-Pair, Memory etc. müssen entsprechend der eigenen Umgebung angepasst werden.

Deployment und Test

Jetzt wird der virtuelle Cluster initialisiert. Zunächst wird der OpenNebula Daemon gestartet und mit dem onehost Befehl eine Host in die Liste der Ressourcen aufgenommen.

clouduser@machine:one$ one start
oned and scheduler started
clouduser@machine:one$ onehost create ec2 im_ec2 vmm_ec2
clouduser@machine:one$ onehost create ursa03 im_xen vmm_xen

Anschließend werden die virtuellen Maschinen mit dem onevm Befehl erstellt.

clouduser@machine:one$ onevm create xen.loadbalancer
ID: 0
clouduser@machine:one$ onevm create xen.local01
ID: 1
clouduser@machine:one$ onevm create xen.local02
ID: 2
clouduser@machine:one$ onevm create xen.local03
ID: 3
clouduser@machine:one$ onevm create xen.local04
ID: 4
clouduser@machine:one$ onevm create ec2.template
ID: 5
clouduser@machine:one$ onevm create ec2.template
ID: 6
clouduser@machine:one$ onevm create ec2.template
ID: 7
clouduser@machine:one$ onevm create ec2.template
ID: 8

Mit dem onevm Befehl kann anschließend der Status der Instanzen überprüft werden.

clouduser@machine:one$ onevm list
ID NAME STAT CPU MEM HOSTNAME TIME
0 one-0 runn 12 512 ursa03 00 00:01:15
1 one-1 runn 8 512 ursa03 00 00:01:11
2 one-2 runn 10 512 ursa03 00 00:01:10
3 one-3 runn 11 512 ursa03 00 00:01:02
4 one-4 runn 23 512 ursa03 00 00:00:51
5 one-5 runn 0 512 ec2 00 00:00:48
6 one-6 runn 0 512 ec2 00 00:00:48
7 one-7 runn 0 512 ec2 00 00:00:45
8 one-7 runn 0 512 ec2 00 00:00:43

Nachdem alle virtuellen Maschinen gestartet sind, kann der Load Balancer die Anfragen der Webclients annehmen. Nun muss noch für jede virtuelle Maschine die IP-Adresse in die /etc/nginx/nginx.conf eingetragen werden. Darüber wird dem NGinx Load Balancer mitgeteilt welcher Node bereit ist.

Die Leistung der Webanwendung kann durch das Hinzufügen weiterer lokaler oder Amazon EC2 Nodes mittels xen.localXX oder ec2.template und der Aktualisierung der Load Balancer Konfigurationsdatei erhöht werden.

Das Hinzufügen kann durch die Entwicklung eines Service Managers automatisiert werden.

Quelle



On-Demand Infrastruktur für virtuelle Labore

OpenNebula kann dazu genutzt werden um virtuelle Labore bereitzustellen. Dabei erhält jeder Student Zugriff auf eine eigene "virtuelle" Infrastruktur, die nur er verwalten kann. Bei der Infrastruktur kann es sich um ein einzelnes System oder ein vollständig verteiltes System handeln. Hierbei kapselt die virtuelle Maschine die Installation für einen Kurs.

Architektur

Aufbau & Bereitstellung

Um das virtuelle Labor bereitzustellen muss zunächst das Netzwerk, wie in den Howtos [1] und [2] beschrieben, konfiguiert werden.

Als nächstes muss ein Master Image erstellt werden. Dieses wird als Basis benutzt um die virtuellen Maschinen für eine Sitzung zu erstellen. In diesem Image muss sämtliche Software, für die späteren virtuellen Hosts des Labor, installiert sein. Aus dem Master Image können anschließend Instanzen von virtuellen Maschinen erstellt werden, indem von der Masterdatei jeweils eine Kopie erstellt wird.

Sobald die Master Virtual Machine konfiguriert ist, kann diese repliziert und als Virtual Machine Template für alle Instanz verwendet werden.

Dabei ist zu beachten, dass sich jede virtuelle Maschine in zwei Dingen voneinander unterscheiden muss:

  • Der Pfad zu dem Image, um die virtuelle Maschine zu mounten.
  • Die MAC-Adresse, da jede virtuelle Maschine eine eigene IP-Adresse benötigt.

Angenommen es sollen 10 virtuelle Computer für ein Labor erstellt werden. Dazu werden 10 unterschiedliche Kopien der Master Virtual Machine und 10 unterschiedliche Virtual Machine Templates benötigt. Die Templates könnten z.B. mit dem Namen VMachineXX.template - wobei XX den Zahlen 1 bis 10 entspricht - bezeichnet werden.

Um die virtuellen Maschinen zu starten wird der Befehl onevm mit folgenden Parametern benötigt.

$ onevm create VMachineXX.template

Dieser Befehl muss 10 mal wiederholt werden, wobei der Platzhalter XX durch die Zahlen 1 bis 10 ersetzt wird. Die IP-Adresse der virtuellen Maschine erhält man entsprechend der Netzwerk-Konfiguration.

Nun reicht es aus, dem Seminarteilnehmer einen Benutzernamen, ein Passwort und die IP-Adresse der virtuellen Maschine mitzuteilen.

Quelle



On-Demand Skalierung eines Computer Cluster

Nachdem ich OpenNebula und die Funktionen bereits kurz vorgestellt habe, möchte ich - angeregt durch die Projekte auf der OpenNebula Webseite - die Einsatzmöglichkeiten auf Basis von vier Anwendungsbeispielen vorstellen. Dazu werde ich in den nächsten Tagen jedes Beispiel auf Grund der Menge und Übersichtlichkeit in einem eigenen Artikel behandeln.

Auch wenn sich diese Beispiele speziell auf OpenNebula beziehen, kann die Umsetzung dieser Ansätze ebenfalls mit anderen Cloud Infrastruktur Management Tools, wie z.B. openQRM erfolgen.

On-Demand Skalierung eines Computer Cluster

Mit OpenNebula können auf einem pyhsikalischen Cluster dynamisch mehrere virtuelle Cluster parallel betrieben werden. Dadurch können Ressourcen wie z.B. Rechenleistung on-Demand bereitgestellt werden, indem die Anzahl der verfügbaren Hosts mit den Bedürfnissen der Benutzer wächst. Da virtuelle Hosts weniger physikalische Ressourcen benötigen, kann ein Cluster dadurch optimiert und konsolidiert werden, da die Anzahl der tatsächlich vorhandenen physikalischen Systeme reduziert werden kann, was dazu führt, dass weniger räumlicher Platz, Strom, Kühlung und Administration erforderlich ist.

Die Zuweisung der physikalischen Ressourcen zu den virtuellen Hosts wird dabei dynamisch und abhängig von den Anforderungen (benötigte Ressourcen) von dem Virtual Machine Manager übernommen. Des Weiteren kann ein Cluster in mehrere Partitionen aufgeteilt werden, da die physikalischen Ressourcen eines Clusters genutzt werden können, um sie einem Host bereitzustellen, der mit einem (anderen) virtuellen Cluster verknüpft ist.

Dieses Beispiel zeigt, wie das Bereitstellen der Ressourcen von der eigentlichen Ausführung, auf einem speziellen Service Layer durch den Local Resource Manager (LRM) getrennt werden kann.

Architektur

Bereitstellung mit der Sun Grid Engine (SGE)

Zunächst muss das Netzwerk, wie in den Howtos [1] und [2] beschrieben, konfiguiert werden, um neue virtuelle SGE Hosts mit unterschiedlichen Namen zu erstellen.

Um das grundlegende Virtual Machine Image zu erstellen kann der Befehl xen-create-image benutzt, ein Image von einem frisch installiertes Betriebssystem verwendet oder ein bereits verwendetes Virtual Machine Image genutzt werden.

Zusätzlich muss der virtuelle SGE Host genau so konfiguriert werden wie der physikalische SGE Host (NFS, NIS, execd, etc.)

Dieses Image dient als Grundlage für alle neuen virtuellen SGE Hosts. Jeder virtuelle Hosts muss an einem eigenen Ort abgelegt werden. Hierzu existiert das zentrale Verzeichnis sgebase, dass alle Images beinhaltet. Für jedes Image wird anschließend ein eigenes Verzeichnis mit dem Namen des Images erstellt.

$ cp -R sgebase sgehost01

Nun muss ein neues Virtual Machine Template erstellt werden. (Es kann auch ein bereits bestehendes kopiert werden und angepasst werden.)

MEMORY=64
CPU=1
OS=[
kernel="/boot/vmlinuz-2.6.18-4-xen-amd64",
initrd="/boot/initrd.img-2.6.18-4-xen-amd64",
root="sda1",
boot="hd"]
DISK=[
source="/local/xen/domains/xen/domains/sgehost/disk.img",
target="sda1",
readonly=no]
DISK=[
source="/local/xen/domains/xen/domains/sgehost/swap.img",
target="sda2",
readonly=no]
NIC=[mac="00:16:3e:01:01:03"]

Jetzt muss noch der Pfad zu dem Image, dem Kernel, der Ramdisk etc. angepasst werden.

Zum Starten des neuen virtuellen Host benötigen wir folgenden Befehl:

$ onevm create

Um Aufgaben entgegen zu nehmen muss der neue Host mit SGE anschließend bekannt gemacht werden .

$ qconf -ah sgehost01
$ qconf -as sgehost01
$ qconf -se

Soll der neue Host einer Gruppe zugeordnet werden, benötigen wir folgenden Befehl:

$ qconf -mhgrp @allhosts

Quelle