Tag: Open Source


eyeOS – Der Open Source Cloud Web-Desktop

eyeOs ist ein sogenannter Web-Desktop, wobei man besser sogar von einem Web-OS oder Cloud-OS sprechen sollte. Der Funktionsumfang und das Äußere gleicht dem eines vollständigen Betriebssystems. Um es schonmal vorweg zu nehmen, die Attraktivität von eyeOS liegt unter anderem auch daran, dass man es auf dem eigenen Webspace installieren und nutzen kann. Ein eigener (virtueller) Server wird dafür nicht benötigt.


Startseite

Die Oberfläche des Desktops erinnert an einem Mix aus den bekannten Oberflächen gängiger Betriebsysteme. Dazu hat man die Möglichkeit über verschiedene Themes das Aussehen und den aufbau der Desktopoberfläche anzupassen. Neben Themes die das Äußere an Windows oder Ubuntu Linux erinnern lassen, ist auch für Mac OS Fans etwas dabei. Für den Zugriff auf eyeOS wird ein einfacher Standard Webbrowser wie Chrome, Firefox oder Internet Explorer benötigt.


Desktop Oberfläche

eyeOS ist wie jedes moderne Betriebssystem ein Multi-User System. Das bedeutet, das zur selben Zeit mehrere Benutzer gleichzeitig angemeldet sein können. Über die Systemsteuerung können neue Benutzer hinzugefügt und ihnen Rechte etc. vergeben werden. Die Systemsteuerung ist übrigens wie bei jedem graphischen Betriebssystem das zentrale Drehkreuz wo alle Einstellungen rund um eyeOS vorgenommen werden können.


Systemsteuerung

eyeOS bringt von Haus aus bereits eine große Anzahl integrierter Anwendungen mit. Mit eyeDocs (Textverarbeitung), eyeSheets (Tabellenkalkulation), eyePresentation (Präsentationssoftware), eyeContacts (Kontaktverwaltung) und eyeCalendar (Kalender) steht eine vollständige Office Suite zur Verfügung. Neben weiteren zahlreichen Anwendungen gibt es auch eyeMail (E-Mail Client), eyeCalc (Taschenrechner), eyeMedia (Mediaplayer), eyeFiles (Dateimanager) eyeNav (Webbrowser) oder Spiele wie eyeChess (Schach). Interessant ist auch eyeTerre ein Google Earth Clone der sehr rasant funktioniert.


Anwendungsübersicht


eyeDocs


eyeSheets


eyeContact


eyeFiles

Zusätzlich können weitere Anwendungen über den integrierten Paketmanager installiert, oder von der Apps Webseite http://eyeos-apps.org heruntergeladen und mit dem Upload-Manager in eyeOS hochgeladen und anschließend manuell installiert werden. Über diesen Vorgang werden z.B. auch die Desktop-Themes installiert, der einfach und über eine gute Dokumentation (wie das gesamte System) verfügt.


System Bar

Darüber hinaus bieten mittlerweile viele Drittanbieter die Möglichkeiten ihre Anwendungen an eyeOS anzubinden, darunter Zoho mit seiner Office Suite oder Feng Office aber auch die großen der Branche wie YouTube, Ebay, Amazon, Twitter oder Flickr.

Entwickler steht das eyeOS Toolkit zur Verfügung, mit denen ihnen eine Menge an Bibliotheken und Funktionen zur Verfügung stehen, um Anwendungen für eyeOS zu entwickeln. Die Anwendungen können dann in einem eigenen Repository abgelegt und über den integrierten eyeOS Paketmanager bereitgestellt und verteilt werden.

Demo

Ein öffentlicher (Demo)-eyeOS-Server kann unter http://eyeos.info getestet werden.

Resumee

eyeOS zeigt einen Mega-Trend der kommenden Jahre. In Zukunft werden wir keine vollwertigen Computer (Fat-Clients) mehr benötigen, sondern auf einen einfachen Monitor, Maus und Tastatur bzw. einen Thin-Client zurückgreifen. Die Benutzerumgebungen werden vollständig virtualisiert und können damit von überall aus und an jedem Ort zur Verfügung gestellt werden. Ob das Hosting bei einem selbst verbleibt oder an einen Anbieter abgegeben wird, ist subjektiv. Durch die einfache Installation und Bereitstellung auf einem gewöhnlichen Webspace, hat aber jeder die Möglichkeit damit seine eigene (Arbeits)-Umgebung einzurichten und diese von überall aus zu nutzen.

Quellen

eyeOS



Die 11 besten Open Source Cloud Computing Projekte 2009

Auf Basis von John Willis's Cloud Computing Awards 2009 - "The Cloudies", hat Mark Hinkle seine Top 11 Open Source Cloud Computing Projekte 2009 ausgewählt. Da ich Open Source und Cloud Computing für unzertrennlich halte, stelle ich die Projekte - Chef, collectd, Eucalyptus, OpenNebula, openQRM, Puppet, RabbitMQ, Zenoss, Bitnami, ECP und Ubuntu Enterprise Cloud jeweils kurz vor.

Chef

Bei Chef handelt es sich um ein Integrations-Framework für das Konfigurationsmanagement aller Arten von IT Infrastrukturen, aber speziell für die Bereitstellung von Cloud Umgebungen. Dazu wird mittels eines Quellcodes beschrieben, wie jeder Teil der Infrastruktur aufgebaut werden soll. Diese Infrastrukturbeschreibung wird anschließend einem Server zugeordnet. Das Ergebnis ist eine voll automatisierte Infrastruktur.

Webseite: http://wiki.opscode.com/display/chef/Home

collectd

collectd ist ein Daemon, der Statistiken der System-Performance sammelt und sie in RRD-Dateien speichert. Der Daemon verfügt über eine Plugin Architektur, die es erlaubt Informationen von einer Vielzahl von Diensten und Servern wie Apache, memcache und Linux-VServer zu sammeln. collectd ist damit die Ideale Erweiterung für bereits vorhandene System Management-Tools.

Webseite: http://collectd.org

Eucalyptus

Eucalyptus steht für "Elastic Utility Computing Architecture Linking Your Programs To Useful Systems" und dient zum Erstellen einer Cloud Computing Infrastruktur auf Cluster Systeme. Die aktuelle Schnittstelle ist mit den Schnittstellen von Amazon EC2, S3 und EBS kompatible. Die Infrastruktur ist allerdings dafür gedacht, mehrere Client-Schnittstellen unterstützen. Eucalyptus basiert auf gängigen Linux-Tools und grundlegenden Web-Service-Technologien, die eine einfache Installation und Wartung ermöglichen.

Ich habe Eucalyptus bereits vor kurzem ausführlich vorgestellt. Der Artikel kann HIER nachgelesen werden.

Webseite: http://open.eucalyptus.com

OpenNebula

Mit OpenNebula kann jegliche Art von Cloud Umgebung aufgebaut werden. Darüber hinaus können damit virtuelle Infrastrukturen in einem Rechenzentrum oder einem Cluster verwaltet werden, oder eine lokale Infrastruktur mit einer Public Cloud Infratruktur verbunden und kombiniert werden, um damit hoch skalierbare Hosting Umgebungen zu entwickeln. OpenNebula unterstützt ebenfalls Public Clouds, indem Schnittstellen zur Verfügung stehen mit denen virtuelle Machinen, Speichersysteme und das Netzwerk verwaltet werden können.

Webseite: http://www.opennebula.org

openQRM

openQRM ist eine Open Source Lösung zur Verwaltung und dem automatisierten und skalierbaren Betrieb von Rechenzentren- und Cloud-Computing-Plattformen. Die Administration der physikalischen Server und der virtuellen Maschinen erfolgt dabei in einer übergreifenden zentralen Managementkonsole. Mit einer Snapshot-Funktion können Serversysteme dupliziert und Backup/Restore, sowie Server-Versionierung und eine dynamische Anpassung des Speicherplatzes vorgenommen werden.

Webseite: http://www.openqrm.com

Puppet

Puppet ist ein Model-Driven Open Source-Framework für den automatisierten Aufbau und die Konfiguration von Servern. Mit Puppet können administrative Aufgaben wie z.B. das Hinzufügen von Benutzern, die Installation von Software oder die Aktualisierung der Serverkonfiguration auf vielen unterschiedlichen Arten von Systemen vorgenommen werden. Der Clou hierbei ist allerdings, dass immer derselbe Code verwendet werden kann, obgleich die Systeme auf völlig unterschiedlichen Betriebssystemen laufen.

Webseite: http://reductivelabs.com/products/puppet

RabbitMQ

RabbitMQ is ein Enterprise Messaging System welches auf dem AMQP Standard aufsetzt. AMQP ist ein Standard, mit dem Middleware Systeme, untereinander Nachrichten austauschen können.

Webseite: http://www.rabbitmq.com

Zenoss

Zenoss dient zur Überwachung der Amazon Web Services und vielen weiteren Arten von Cloud Computing Umgebungen und virtuellen Infrastrukturen.

Webseite: http://community.zenoss.org/index.jspa

Bitnami

Bitnami vereinfacht die Bereitstellung von Web Anwendungen, sowohl virtuell als auch in einer Cloud. Jeder BitNami Stack beinhaltet eine Anwendung, die mit jeder von ihr benötigten Software so ausgestattet ist um vollständig ausgeführt zu werden. BitNami Stacks sind kostenlos als gewöhnliche Installationsroutinen, virtuelle Machine Images und Cloud Templates erhältlich. Systeme die z.B. BitNami Anwendungen verwenden sind u.a. Drupal, Joomla!, Wordpress, SugarCRM, Alfresco, Redmine und Subversion.

Webseite: http://www.bitnami.org

Enomaly’s Elastic Computing Platform (ECP)

ECP ist eine programmierbare virtuelle Cloud Infrastruktur für kleine, mittlere und große Unternehmen. Es unterstützt beim Design, Bereitstellen und Verwalten von virtuellen Anwendungen innerhalb einer Cloud. Weitere Funktionen sind die automatische Skalierung von virtuellen Maschinen, Load Balancing, Systemanalysse, sowie die Konfiguration und Optimierung der Cloud Kapazitäten.

Webseite: http://src.enomaly.com

Ubuntu Enterprise Cloud

Die Ubuntu Enterprise Cloud (UEC) ist in der Ubuntu Server Edition enthalten und beinhaltet eine Vielzahl an Open Source Projekten wie z.B. Eucalyptus. Anwendern steht damit die Möglichkeit offen eine eigene Private Cloud aufzusetzen.

Ein Tutorial zum Einrichten einer eigenen Private Cloud mit der Ubuntu Enterprise Cloud habe ich gestern HIER veröffentlicht.

Webseite: http://www.ubuntu.com/cloud

Quelle

Mark Hinkle
John Willis



Cloud Computing mit Open Source

Ein Vorteil von Cloud Computing besteht in dem einfachen gegenseitigen Bereitstellen und Nutzen von IT Services. Die Herausforderung ist aber, die Voraussetzungen zu schaffen eine einzelne Cloud mit anderen Clouds zusammenarbeiten zu lassen. Dazu sollten die kollaborierenden IT-Systeme über dieselben Sicherheitsanforderungen und robusten Infrastrukturen verfügen, wie es aus traditionellen IT Umgebungen bekannt ist. Auf Grund der Offenheit, Flexibilität, Interoperabilität und einem verringerten Risiko bzgl. eines Vendor lock-in, ist Open Source dafür die geeignete Technologie. Das führt dazu, dass sich Open Source mit Cloud Computing verschmelzen wird und "Open Source Clouds" in den nächsten Jahren zu einem großen Trend werden.

Es existieren bereits Cloud Computing Technologien auf Basis von Open Source, die ebenfalls schon eingesetzt werden. Diese möchte ich kurz vorstellen.

Linux Betriebssysteme

  • Die Ubuntu Enterprise Cloud kombiniert Ubuntu Linux mit Eucalyptus und diversen anderen Cloud Management Tools.
  • Red Hat Enterprise Linux, sowie andere Linux Distributionen können ebenfalls mit vorhanden Open Source Cloud Technologien kombiniert werden um Cloud Computing Umgebungen aufzubauen

Eucalyptus

  • Bei Eucalyptus handelt es sich um ein Forschungsprojekt von der University of California in Santa Barbara. Eucalyptus enthält die Apache Axis2 Web Services Engine, den Mule Enterprise Service Bus, Rampart Security und die Libvirt Virtualisierung API. Eucalyptus verfügt darüber hinaus über seine eigene Umsetzung der Amazon-API.
  • Webseite: http://open.eucalyptus.com

Deltacloud

  • Im September 2009 wurde durch Red Hat das Deltacloud Projekt gegründet. Die Idee hinter dem Projekt ist die einfache Integration von Public und Private Clouds. Deltacloud stellt eine gemeinsame auf REST basierende API zur Verfügung, um Amazon EC2 Instanzen und/oder Private Clouds auf Basis von VMware oder Red Hat Enterprise Linux miteinander zu verbinden. Das Deltacloud Portal dient zur Verwaltung aller Clouds die innerhalb einer Umgebung bereitgestellt werden. Geht es nach Red Hat, soll Deltacloud zu dem Standard des Cloud Computing werden.
  • Webseite: http://deltacloud.org

Nimbus

  • Bei Nimbus handelt es sich um ein Open Source Toolkit, mit dem Clustersystem in eine Infrastructure as a Service Umgebung verwandelt werden können. Mittels der EC2 Schnittstelle können sich Unternehmen mit der Public Cloud Infrastruktur von Amazon verbinden.
  • Webseite: http://www.nimbusproject.org

Virtual Machine Hypervisor

  • Viele Open Source Lösungen beinhalten den Xen Server von Citrix Systems.
  • Webseite: http://www.xen.org

Simple Cloud API

  • Die Simple Cloud API von Zend Technologies kann dafür verwendet werden, um von einem System aus auf mehrere Clouds zuzugreifen. Unterstützt werden u.a. GoGrid, IBM, Microsoft, Nirvanix Storage Delivery Network, and Rackspace Files
  • http://www.simplecloud.org

Damit sich Open Source Clouds durchsetzen, sind natürlich Standards notwendig. Darüber hinaus müssen sich ebenfalls Zuverlässigkeit und Sicherheit beweisen. Werden diese Herausforderungen gemeistert, befinden sich die Open Source Clouds auf einem guten Weg. Durch den Einsatz von Open Source können hier die Vorab-Investitionen minimiert werden. Zusätzlich behält jedes Unternehmen die vollständige Kontrolle über seine eigene Cloud, kann aber trotzdem die Infrastruktur durch shared Services von Public Clouds erweitern.



Eucalyptus – Eine Open Source Infrastruktur für die eigene Cloud

Beim Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus)[1][2] handelt es sich um eine Open Source Software Infrastruktur zum Aufbau von skalierbaren Utility Computing bzw. Cloud Computing Umgebungen für spezielle Clustersysteme oder einfachen miteinander verbundenen Arbeitsplatzrechnern.

Eucalyptus wurde als ein Forschungsprojekt am Computer Science department an der University of California Santa Barbara entwickelt und wird mittlerweile von der Eucalyptus Systems Inc. vermarktet. Die Software wird aber weiterhin als Open Source Projekt gepflegt und weiterentwickelt. Die Eucalyptus Systems Inc. bietet darüber hinaus lediglich weitere Dienstleitungen und Produkte sowie einen professionellen Support rund um Eucalyptus an.

Folgende Funktionen stellt Eucalyptus bereit:

- Kompatibilität mit den Schnittstellen zu Amazon EC2 und S3 (SOAP und REST).
- Unterstützung aller Virtual Machines die auf einem Xen Hypervisor oder einer KVM ausgeführt werden.
- Administrationstools für die System- und Benutzerverwaltung
- Die Möglichkeit mehrere Cluster für eine Cloud zu konfigurieren, wobei jeder einzelne Cluster über eine private interne IP-Adresse verfügt.

Architektur

Eucalyptus besteht aus fünf zusammenarbeitenden Hauptkomponenten um den angeforderten Cloud Service bereit zu stellen. Die Kommunikation zwischen den Komponenten erfolgt über gesicherte SOAP Nachrichten mittels WS-Security.

Cloud Controller (CLC)
Der Cloud Controller dient innerhalb einer Eucalyptus Cloud als Hauptkomponente für die Verwaltung des gesamten Systems und stellt den Administratoren und Benutzern einen zentralen Zugriffspunkt bereit. Die Kommunikation aller Clients mit dem Eucalyptus System erfolgt ausschließlich nur über den Cloud Controller anhand der auf SOAP oder REST basierenden API. Der Cloud Controller ist dafür zuständig, alle Anfragen zu der richtigen Komponente weiterzuleiten, diese zu sammeln und die Antwort der Komponente anschließend wieder zu dem Client zurück zu senden. Der Cloud Controller ist somit die öffentliche Schnittstelle einer Eucalyptus Cloud.

Cluster Controller (CC)
Der Cluster Controller ist innerhalb des Eucalyptus Systems für die Verwaltung des virtuellen Netzwerks zuständig. Der Cloud Controller erhält alle Anfragen auf Basis seiner SOAP oder REST Schnittstellen. Der Cloud Controller erhält alle Informationen über die vorhandenen Node Controllers des Eucalyptus Systems und ist für die Kontrolle des Lebenszyklus jedes einzelnen verantwortlich. Er leitet alle Anfragen an die Node Controller mit verfügbaren Ressourcen weiter um damit virtuelle Instanzen zu starten.

Node Controller (NC)
Ein Node Controller steuert das Betriebssystem und den zugehörigen Hypervisor eines Rechners (Node) im Eucalyptus System. Auf jeder physikalischen Maschine die eine durch den Cluster Controller instantiierte virtuelle Instanz auf Grund einer Anfrage beherbergt, muss eine Instanz eines Node Controller vorhanden sein.

Walrus (W)
Walrus ist für die Zugriffsverwaltung auf den Speicherdienst innerhalb eines Eucalyptus Systems zuständig. Walrus erhält die Anfragen über seine SOAP oder REST Schnittstelle.

Storage Controller (SC)
Der Storage Controller verwaltet den Speicherdienst innerhalb eines Eucalyptus Systems und verfügt über eine Schnittstelle zu Amazon's S3 Dienst. Der Storage Controller arbeit in Verbindung mit Walrus und wird für die Speicherung und den Zugriff auf die Images der Virtual Machines, die Kernel Images, die RAM Disk Images und die Daten der Benutzer verwendet. Die Images der Virtual Machines können rein privat oder öffentlich zugänglich gemacht werden und können dabei komprimiert und verschlüsselt gespeichert werden. Die Images werden lediglich entschlüsselt, wenn ein Node eine neue virtuelle Instanz starten muss und dazu einen Zugriff auf das Image benötigt.

Ein Eucalyptus System vereint und verwaltet Ressourcen von Single-Cluster als auch Multi-Cluster Systemen. Dabei besteht ein Cluster aus einer Gruppe von Rechnern, die alle mit dem selben LAN verbunden sind. Zu jedem Cluster kann wiederum einer aber auch mehrere Node Controller gehören, die für die Verwaltung der Instantiierung und Beendigung der virtuellen Instanzen verantwortlich sind.

Wie in Abbildung 1 illustriert, besteht ein Single-Cluster aus mindestens zwei Maschinen. Auf dem einen werden der Cluster Controller, der Storage Controller und der Cloud Controller ausgeführt, auf dem anderen der Node Controller. Diese Art der Konfiguration ist vor allem für Experimente und schnelle Konfigurationen geeignet. Die dargestellte Konfiguration könnte ebenfalls auf einer einzigen Maschine implementiert werden. Allerdings ist dafür eine äußerst leistungsstarke Hardware notwendig!


Abbildung 1: Topologie einer Single-Cluster Eucalyptus Installation [2]

Wie in Abbildung 2 dargestellt, kann bei einem Multi-Cluster jede Komponente (CC, SC, NC, und CLC) auf einer separaten Maschine ausgeführt werden. Dies sollte die bevorzugte Art und Weise sein das Eucalyptus System zu konfigurieren, wenn damit ernsthaft gearbeitet werden soll. Mit einem Multi-Cluster kann zudem die Performance erhöht werden, indem einem Controller die passende Maschine zugewiesen wird. Zum Beispiel sollte der Cloud Controller auf einer Maschine mit einer schnellen CPU ausgeführt werden. Im Allgemeinen bringt die Entscheidung für einen Multi-Cluster eine höhere Verfügbarkeit, sowie eine bessere Lastverteilung und eine optimierte Verteilung der Ressourcen über alle Cluster. Das Clusterkonzept ist vergleichbar mit dem Konzept der Verfügbarkeitszonen der Amazon EC2. Dabei werden die Ressourcen über mehrere Verfügbarkeitszonen hinweg verteilt, damit ein Fehler in einer Zone nicht die Anwendung beeinträchtigt.


Abbildung 2: Topologie einer Multi-Cluster Eucalyptus Installation [2]

Folgende Hardwarevoraussetzungen müssen erfüllt sein, um darauf einen CC, CLC, Walrus oder SC auszuführen. [2]

Folgende Hardwarevoraussetzungen müssen erfüllt sein, um darauf einen NC auszuführen. [2]

Eucalyptus und die Ubuntu Enterprise Cloud

Bei der Ubuntu Enterprise Cloud (UEC) handelt es sich um eine Open Source Initiative von Ubuntu, um auf eine einfachere Art und Weise skalierbare Cloud Infrastrukturen auf Basis von Eucalyptus bereitzustellen und diese zu konfigurieren.

Mit der Ubuntu Enterprise Cloud können Public Clouds erstellt werden, welche Amazon's EC2 infrastructure nutzen. Es können damit aber genau so gut Private Clouds entwickelt werden, die auf der eigenen Infrastruktur im eigenen Rechenzentrum hinter der eigenen Firewall gehostet werden.

Vorteile von Eucalyptus

Bei Eucalyptus handelt es sich um eine Umgebung für Cloud Services, mit der Public Clouds auf Amazon's EC2 Infrastruktur bzw. Private Clouds im hauseigenen Rechenzentrum erstellt werden können. Die grundlegenden Vorteile sollen hier noch einmal kurz aufgeführt werden:

Open Source und Entwicklung
Eucalyptus wurde geschaffen, um die Kommunikation und Forschung von Cloud Computing Plattformen zu fördern. Der Quellcode ist frei verfügbar, was es ermöglicht die Plattform so zu erweitern, damit sie den eigenen Anforderungen entspricht. Eucalyptus wird zunehmend weiterentwickelt. Darüber hinaus ist die Aufnahme und Integration von Funktionswünschen und Verbesserungsvorschlägen sehr schnell.

Community
Eucalyptus verfügt über eine große Community die gerne bereit ist einander zu helfen. Über die Foren kann schnell Kontakt zu anderen Benutzern aufgenommen und Hilfe bezogen werden.

Public Cloud
Eucalyptus funktioniert einwandfrei auf Amazon's EC2 Framework und kann damit als Public Cloud eingesetzt werden.

Private Cloud
Eucalyptus kann auf der eigenen Infrastruktur im eigenen Rechenzentrum hinter der eigenen Firewall als Private Cloud eingesetzt werden. Dadurch ist die Kontrolle bzgl. der Sicherheit und der gesamten Umgebung in der eigenen Hand.

Portabilität
Auf Grund der Kompatibilität von Eucalyptus mit Amazon's EC2 API sowie der Flexibilität von Eucalyptus, können Anwendungen ohne großen Aufwand von einer Cloud in die andere migriert werden. Darüber hinaus besteht die Möglichkeit des Aufbaus von Hybrid Clouds, indem eine Private Cloud mit einer Public Cloud erweitert bzw. kombiniert wird.

Qualitativ durch Tests
Durch den Einsatz von Eucalyptus in Ubuntu's Enterprise Cloud findet tagtäglich ein weltweiter realer Test auf Basis von mehr als tausend Server-Instanzen statt.

Kommerzieller Support
Neben den Foren der Eucalyptus Community kann natürlich auch auf einen kommerziellen Support zurückgegriffen werden.

Quellen:
[1] Eucalyptus
[2] IBM developerWorks