Bücher online kostenlos Kostenlos Online Lesen
Cloud Computing Grundlagen

Cloud Computing Grundlagen

Titel: Cloud Computing Grundlagen
Autoren: Mario Meir-Huber
Vom Netzwerk:
Berechnungen über große Datenmengen anzustellen. Hadoop implementiert den MapReduce-Algorithmus für Java und ermöglicht somit dessen Ausführung im Framework. Ein großer Contributor von Hadoop ist Yahoo. Yahoo verwendet Hadoop in vielen Bereichen der Suche, Analyse und Informationsbeschaffung. Das Hadoop-Projekt hat ebenfalls eine NoSQL-Datenbank namens „HBase“, und alle Projekte im Hadoop-Projekt erfüllen die Skalierungsanforderungen für Cloud-Computing-Technologien. Will man sich eine eigene Cloud erstellen, kann das ein Einstiegspunkt sein. Yahoo selbst verwendet Hadoop im ganz großen Stil. Hierbei sind 4 000 Knoten mit 20 000 Rechnern miteinander in einem Verbund verknüpft 2 .
    4.4Skalierungstechniken
    In vielen Diskussionen über Cloud Computing, in Blogeinträgen und Fachbeiträgen wird die Skalierung oft als zentrale Eigenschaft von Cloud Computing angesehen. Doch wie funktioniert Skalierung? Und vor allem: Was muss man selbst dazu beitragen?
    Skalierung hat in vielen Fällen mit parallelen Rechensystemen zu tun. Eine Anwendung hat in der Cloud beinahe beliebig viele Ressourcen zur Verfügung. Somit kann die Anwendung schnell wachsen, wenn es notwendig sein sollte. Außerdem ist der zur Verfügung gestellte Datenspeicher einer Anwendung nahezu unendlich. Skalierung hat jedoch auf zwei Ebenen zu geschehen. Es ist klar, dass Rechenzentren von sich aus skalieren, hierfür implementieren sie verschiedene Technologien. Auf der anderen Seite ist es natürlich auch notwendig, dass die Architektur der eigenen Anwendung eine Skalierung erlaubt. Nur weil eine Skalierung möglich ist, bedeutet das nämlich noch lange nicht, dass die Anwendung auch tatsächlich mitskalieren kann.
    Rechenzentren skalieren durch ihre zugrunde liegende Technologie. Wichtig für Skalierung ist zum einem die Betriebssystemvirtualisierung. In Cloud-Computing-Umgebungen ist es nicht mehr notwendig, dass ein Betriebssystem und dessen Konfiguration komplex aufgesetzt werden müssen. Die Skalierung von Datenspeichern wie Blobs (Binary Large Objects) funktioniert über eine Vielzahl an Fileservern. Interessanter wird eine Skalierung für Tabellen. Wie im Abschnitt „Datenbanken“ erklärt, wird hier verstärkt auf NoSQL gesetzt. NoSQL-Datenbanken haben eine wesentlich höhere Skalierbarkeit, jedoch den Nachteil der Datenkonsistenz. Um Letzteres muss sich der Softwareentwickler selbst kümmern. In der Cloud kann man ohne Probleme mehrere 100 Terabyte an Daten ablegen. Das einzige Hindernis sind die Kosten für diese Größenordnung.
    Die Skalierung ist jedoch von zwei essenziellen Dingen abhängig, zum einen von der Finanzierung, zum anderen von der Architektur. Eine Anwendung, die nicht auf hohe Skalierung ausgelegt ist, kann die vielen Vorteile von Cloud Computing nicht nutzen. Eine konkrete Architekturbeschreibung an dieser Stelle wäre wohl etwas zu umfangreich. Abstrakt formuliert muss man auf die Herausforderung schwankender Auslastungen dynamisch reagieren können. Betreibt man eine Webanwendung, die beispielsweise als Plug-in für ein bestehendes System funktioniert (etwa Google Apps oder Salesforce), kann es natürlich vorkommen, dass die eigene Anwendung sehr stark benutzt wird. Auf Webserverseite ist es notwendig, dass Dienste wie AutoScale und Elastic Load Balancing verwendet werden. Diese Dienste erlauben es, Auslastungen über verschiedene virtuelle Maschinen zu verteilen. Für die Datenbank muss man je nach Hersteller eine sinnvolle Strategie für die Partitionierung entwerfen. Viele Datenbankhersteller decken diese Funktion jedoch bereits durch eigene Partitionierungsstrategien ab. Essenziell für eine Skalierung ist auch die Möglichkeit, Aufgaben, die eine hohe CPU-Zeit benötigen, auf andere virtuelle Instanzen auslagern zu können. Hierfür können Worker Threads eingesetzt werden, die über Benachrichtigungen (Messages) Arbeitsvorgänge abarbeiten. Verschiedene Technologien wie Amazon CloudWatch erlauben die Überwachung von Maschinen. Sind in einer Anwendung besonders viele Arbeitsanweisungen in Form von Benachrichtigungen enthalten, kann man die Anzahl der virtuellen Instanzen erhöhen. Ebenso ist es natürlich möglich, virtuelle Instanzen zu beenden. Ist ein Dienst wie Amazon CloudWatch nicht vorhanden, muss diese Möglichkeit in eine eigene virtuelle Instanz ausgelagert werden.
    Quellen
SOAP Specifications. (27. 04 2007). Abgerufen am 11. 09 2011 von SOAP Specifications: http://www.w3.org/TR/soap/
Brewer, E.
Vom Netzwerk:

Weitere Kostenlose Bücher