Anzeige
Anzeige
Software & Entwicklung
Artikel merken

Cloud-Infrastruktur für Entwickler: Mit Open-Source-Software lokale Server zur privaten Cloud machen

Die Nutzung einer lokalen privaten Cloud-Infrastruktur ist in der Entwicklergemeinde noch nicht weit verbreitet. Dabei bietet sie viele Vorteile und sorgt dafür, dass sich bestehende Hardware optimal und flexibel nutzen lässt. Mit dem Open-Source-Projekt Eucalyptus steht zudem eine Lösung bereit, die direkt in Ubuntu 9.10 integriert ist und den Start so erleichtert.

6 Min. Lesezeit
Anzeige
Anzeige

Mit der Open-Source-Software Eucalyptus lässt sich eine lokale Cloud-Infrastruktur aufbauen, die zudem noch kompatibel zu Amazons Cloud-Lösung ist.

Mit der Open-Source-Software Eucalyptus lässt sich eine lokale Cloud-Infrastruktur aufbauen, die zudem noch kompatibel zu Amazons Cloud-Lösung ist.

Um eine Cloud-Infrastruktur zu nutzen ist es hilfreich, einige neue Paradigmen zu verstehen. Dieser Artikel gibt Hinweise, wie diese neue Infrastruktur genutzt werden kann, zeigt was von ihr zu erwarten ist und beschreibt erste Schritte mit der in Ubuntu integrierten Cloud-Lösung Eucalyptus.

Der Weg zur privaten Cloud

Anzeige
Anzeige

In den letzten Jahren haben Entwickler gelernt, gemeinsam an Projekten zu arbeiten. Modulare und prozedurale Programmierung hat sich zur objektorientierten Programmierung weiterentwickelt. Aus der Weitergabe von Dateien wurde die Versionskontrolle, darauf folgte die verteilte Versionskontrolle. All das hat dazu beigetragen, dass Entwickler heute ihre Ergebnisse besser mit anderen teilen, an größeren Projekten mitarbeiten und ordentliche Prozesse definieren können. Dennoch gibt es eine Ausnahme von dieser Entwicklung: Der Kampf um die Hardware.

Lokales Cloud Computing kann hier Abhilfe schaffen, indem es eine zusätzliche Abstraktionsschicht einführt: Das Maschinen-Image. Es verhält sich dabei wie ein eigenständiger Server, inklusive Betriebssystem, Software und allem was dazu gehört. Jeder Nutzer einer Cloud-Infrastruktur kann sein eigenes Maschinen-Image vorbereiten und so oft instantiieren, wie die Infrastruktur es erlaubt. Da die Cloud-Infrastruktur darauf ausgelegt ist, mehre Benutzer zu haben, können verschiedene Maschinen-Images von verschiedenen Nutzern zeitgleich betrieben werden. Jedes Image läuft in einer eigenen virtuellen Umgebung, vom Netzwerk bis zur Applikation sind alle Instanzen voneinander abgeschottet. Dadurch werden ungewollte Interaktionen zwischen den Instanzen verhindert. Wenn ein Benutzer der Infrastruktur bekannt ist, kann er Instanzen ohne großen Aufwand starten und stoppen. Ein und dieselbe Hardware-Infrastruktur kann dabei natürlich nicht nur von Entwicklern genutzt werden, sondern auch von anderen IT-Nutzern im Unternehmen, die Rechenleistung benötigen.

Anzeige
Anzeige

Cloud Computing mit Open Source

Die bekannteste und am meisten genutzte öffentliche Cloud-Infrastruktur ist ohne Zweifel Amazons Elastic Cloud Compute (EC2). Da es keine Standard-Cloud-API gibt, haben sich Open-Source-Projekte im Bereich Cloud Computing wie Nimbus [1], Open Nebula [2] und Eucalyptus [3] dazu entschlossen, die EC2-API als Referenz zu nutzen. Aus Benutzersicht hat diese API einige Eigenschaften, die überraschend sein können:

Anzeige
Anzeige
  • Instanzen sind nach einem Reboot nicht persistent.
  • Images sind die einzig persistente Form einer Maschine.
  • Administratoren definieren Basis-Architekturen für die Bereitstellung von Maschinen (32 oder 64 Bit, RAM, …) und Nutzer entscheiden, welche Architektur sie benötigen.
  • Peristenter Speicherplatz ist über alternative Technologien erhältlich.

Flexibilität durch Modifikation

Nutzer einer Cloud-Infrastruktur können sich verschiedene virtuelle Maschinen (also Maschinen-Images) vorbereiten, die sie regelmäßig nutzen. Bestehende Maschinen-Images können dazu modifiziert und als neues Maschinen-Image gespeichert werden. Dieser Prozess nennt sich re-bundling.

Es gibt allerdings noch einen einfacheren Weg, um individuelle Anpassungen vorzunehmen. Während ein Maschinen-Image gestartet wird, kann man ihm optional Daten übergeben, die dann während der Initialisierung verwendet werden. Dadurch ist es möglich, Maschinen zu verändern, ohne das Image zu re-bundeln. Nutzer verwenden ein Basis-Image (zum Beispiel Ubuntu Server Edition) und rufen ein Skript auf, dass die Instanz anhand der übergebenen Daten anpasst. Ein gute Anlaufstelle für Maschinen-Images auf Basis von Ubuntu und Debian ist die Website alestic.com. Betreiber Eric Hammond stellt dort diverse vorkonfigurierte Images zum Download bereit.

Anzeige
Anzeige

Persistenz in der Cloud

Um persistenten Speicher zu erhalten, kann eine Instanz eine von zwei Service-Typen nutzen:

  • Simple Storage Service (S3): ein Datei-basierter Speicher, der dem http-Dienst sehr ähnlich ist
  • Elastic Block Storage (EBS): ein Block-basierter Speicher, der wie eine Festplatte formatiert und gemountet werden kann

Auch die Speicherung in einer Datenbank kann als Service in einer Cloud angeboten werden. Amazon stellt dazu beispielsweise SimpleDB zu Verfügung. Diese ist eine einfache Key-Value-basierte Datenbank, die allerdings nicht sehr häufig eingesetzt wird. Verbreiteter ist der Einsatz von bekannten Datenbanksystemen wie MySQL, PostgreSQL oder auch CouchDB.

Grundsätzlich kann man sagen, dass der Fokus beim Cloud Computing eher auf Widerstandsfähigkeit denn auf Fehlertoleranz liegt. Anstatt eine Architektur mit komplexen Failover-Szenarien zu entwicklen, sollte das Prinzip der Redundanz von schnell und günstig startbaren Instanzen im Vordergrund stehen – ein ähnliches Prinzip, wie es beim Konzept von RAID Systemen gegenüber einzelnen Festplatten zum Einsatz kommt.

Anzeige
Anzeige

Die Eucalyptus-Cloud

Wie bereits erwähnt, kann man sich mit Hilfe von frei verfügbarer Open-Source-Software eine komplette eigene Cloud-Infrastruktur aufbauen. Alle oben genannten Projekte nutzen die gleiche API, so dass sich das Verhalten der Clouds ähnelt. Das Projekt Eucalyptus bietet dabei den Vorteil, dass es unter dem Namen „Ubuntu Enterprise Cloud“ in aktuellen Ubuntu-Versionen (seit Version 9.04) bereits enthalten ist [4].

Die Eucalyptus-Architektur ist modular ausgelegt. Eine Cloud besteht aus fünf einfachen Elementen, die skaliert werden können:

  • Cloud Controller (CLC)
  • Walrus Storage Controller (WS3)
  • Elastic Block Storage Controller (EBS)
  • Cluster Controller (CC)
  • Node Controller (NC)

Jedes Element stellt einen unabhängigen Web Service dar, der per WDSL (Web Service Description Language) eine API definiert. Der Cloud Controller (CLC) ist das von außen sichtbare Element der Eucalyptus-Architektur. Hier ist das Interface angesiedelt, mit dem der Nutzer agiert. Der CLC übernimmt auch die Kommunikation mit den Cluster Controllern (CC) und ist verantwortlich für die Allokation neuer Instanzen.

Anzeige
Anzeige
In einer Eucalyptus-Cloud können die Node Controller (NC) komplett in einem privaten Netzwerk betrieben werden. Nur der Cloud Controller (CLC) und die Cluster Controller (CC) sollten über ein öffentliches Netzwerk erreichbar sein. Der S3-Service von Eucalytpus (Walrus) befindet sich auf der gleichen Ebene wie der CLC, der Elastic Block Storage (EBS) auf der gleichen Ebene wie die CC.

In einer Eucalyptus-Cloud können die Node Controller (NC) komplett in einem privaten Netzwerk betrieben werden. Nur der Cloud Controller (CLC) und die Cluster Controller (CC) sollten über ein öffentliches Netzwerk erreichbar sein. Der S3-Service von Eucalytpus (Walrus) befindet sich auf der gleichen Ebene wie der CLC, der Elastic Block Storage (EBS) auf der gleichen Ebene wie die CC.

Der Walrus Storage Controller (WS3) und der Elastic Block Storage Controller (EBS) besitzen die gleiche Funktionalität wie diese Speichermethoden innerhalb von Amazon EC2. Der WS3 kann auf jeder beliebigen Maschine laufen, wird aber per Default auf dem CLC installiert. EBS läuft auf der gleiche Maschine wie
der Cluster Controller und wird automatisch konfiguriert, wenn der Cluster Controller installiert wird.

Der Cluster Controller (CC) ist die Verbindung zwischen Node Controller (NC) und Cloud Controller. Daher braucht der CC einen Netzwerkpfad zum CLC und einen Netzwerkpfad zum NC. Der CC entscheidet, welcher NC eine Maschinen-Instanz laufen lassen wird. Weiterhin ist der CC zuständig für das Bereitstellen und Routen von virtuellen Netzwerken zu den Maschinen-Instanzen. In einfachen Deployments laufen CC und CLC auf der gleichen Maschine.

Die Node-Controller-Software läuft auf der Maschine, auf der die Maschinen-Instanzen laufen. Die Rolle des NC ist es, die Verbindung zwischen dem Betriebssystem und dem Hypervisor auf der Maschine herzustellen. Der NC wird vom Cluster Controller aus gesteuert.

Anzeige
Anzeige

Der Einsatz von Ubuntu Enterprise Cloud (UEC) kann unter Ubuntu Server Edition 9.10 direkt aus dem Installationsmenü erfolgen. Das erleichtert den Einstieg zum Testen und Ausprobieren. Eine ausführliche Anleitung beschreibt zudem Schritt für Schritt, wie der Einsteig gelingt [5].

Fazit

Die Verbreitung von Cloud Computing wird in den nächsten Monaten und Jahren weiter stark zunehmen. Die Vorteile in den Bereichen Skalierbarkeit und Flexibilität sind einfach zu überzeugend, als dass man sich ihnen verschließen könnte. Mit Open-Source-Projekten wie Eucalyptus & Co. werden Entwickler und IT-Abteilungen jetzt in die Lage versetzt, sich ihre eigene Cloud-Infrastruktur aufzusetzen – die zudem noch kompatibel zum Cloud-Universum von Amazon ist. Bestehende und neue Hardware lässt sich so optimal auslasten und Entwickler bekommen eine Plattform geboten, mit der sie agiler entwickeln können.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige