Cloud Computing Grundlagen
werden.
4.1Datenbanken in der Cloud
Ein elementarer Bestandteil jeglicher Software ist ein Datenspeicher. Dieser Begriff kann von sehr komplexen Datenbanken, die typischerweise durch SQL-Datenbanken der bekannten Hersteller repräsentiert werden, bis hin zu einfachen Dateien reichen. Für verteilte Systeme bedarf es oft stärker skalierender Datenbanken, die wiederum auch als „NoSQL“ bezeichnet werden. NoSQL steht nicht für „kein SQL“, sondern für Not Only SQL – also einem „Zufluchtsort“ für sämtliche alternativen Datenbanken. Die drei wichtigen Technologien, SQL, NoSQL und Blob Storages, werden in diesem Kapitel detailliert erklärt. Oft spricht man bei diesen Technologien auch von BigData.
4.1.1NoSQL
Auch hinsichtlich Datenbanken weicht Cloud Computing von der traditionellen IT ab. Bei Cloud Computing steht die Skalierung im Vordergrund. Traditionelle, relationale Datenbanken können das nicht ausreichend umsetzen. Ein Problem von SQL ist, dass es zwar auf einem hohen Abstraktionsniveau angesiedelt ist, meist werden Ausführungsdetails dadurch jedoch nicht mehr sichtbar. Das bedeutet, dass die Leistung negativ beeinflusst wird. Ein einfacher Durchlauf der Daten wäre am effektivsten, SQL braucht z. B. bei Joins oft mehrere Durchgänge. Außerdem sind Datenzugriffe in SQL in Unternehmen zwar gut, doch wird es in Cloud-Umgebungen in der Performance schlechter, da Disk-Operationen keinen Vorteil mehr bringen. Eine Abhilfe bieten hier so genannte „NoSQL“, also nichtrelationale Datenbanken, die eine höhere Skalierung hinsichtlich der Größe der Datenbank und der Zugriffsgeschwindigkeit wie auch der Verteilbarkeit bieten, da eben keine Relationen zwischen den Tabellen bestehen. Man kann diese Art der Datenbank als eine Ansammlung von „losen“ Tabellen sehen. Datenbanken in der Cloud haben oft wenig Notwendigkeit, komplexe Business-Intelligence-Anwendungen laufen zu lassen. Betrachtet man manche Systeme, so kann es vorkommen, dass einige Millionen Benutzer für eine Anwendung (z. B. eine Social Platform) benötigt werden. Hierbei sind Skalierung und Verteilung sehr wichtig. Oft wird in der Cloud mit unstrukturierten Daten gearbeitet, wobei die Verwendung von NoSQL-Datenbanken von Vorteil ist. Nachteile von NoSQL-Datenbanken sind vor allem im analytischen Bereich und im Data Warehousing zu finden. Hat man für die eigene Anwendung viel mit Reporting zu tun, ist hier SQL klar von Vorteil. Wichtig für NoSQL-Datenbanken ist die wesentlich höhere Notwendigkeit, Daten über verschiedene Server zu verteilen. In vielen NoSQL-Datenbanken in der Cloud wird das bereits über den Anbieter geregelt. Einige Anbieter fordern jedoch, dass die Verteilung vom Softwareentwickler beziehungsweise Tabellenersteller gemacht wird.
Ein Vorteil von NoSQL-Datenbanken gegenüber SQL-Datenbanken ist neben der höheren Skalierung die Möglichkeit, Replikationen zu vereinfachen. Für die Sicherheit von Daten in einer Cloud-Computing-Umgebung ist dies essenziell. In den letzten Jahren ist das NoSQL-Paradigma immer stärker betrieben worden. Speziell durch die Implementierung von Google (Google BigTable) und Amazon (Amazon Dynamo) haben sich NoSQL-Datenbanken immer mehr verbreitet. Vor allem der CTO (Chief Technology Officer) von Amazon, Werner Vogels, predigte früher oft den „BASE“-Begriff. „BASE“ steht im Gegensatz zum „ACID“ der SQL-Datenbanken und bedeutet „Basically Available, Soft state, Eventual consistency“. Die gesamte Thematik von NoSQL stammt in gewisser Weise aus dem CAP-Theorem, das besagt, dass aus den drei Datenbankeigenschaften Consistency, Availability, Partition Tolerance (Konsistenz, Verfügbarkeit und Partitionstoleranz) nur jeweils zwei von einem Datenbanksystem erfüllt werden können. So erfüllen SQL-Datenbanken die Konsistenz und Partitionstoleranz, können jedoch der Verfügbarkeit nicht Rechnung tragen. In komplexen, hochverfügbaren verteilten Systemen kann dies verstärkt zu Problemen führen. Daher haben sich für verteilte Systeme wie beispielsweise Facebook, Twitter, Amazon oder Google, Theorie und Praxis auf die beiden anderen Themen – nämlich Verfügbarkeit und Partitionstoleranz – gestürzt.
Mittlerweile gibt es NoSQL-Implementierungen beinahe wie Sand am Meer. Die bekanntesten davon im Open-Source-Bereich sind Cassandra, CouchDB oder Hbase. Viele bekannte Plattformen wie etwa Facebook, Twitter, Amazon und Google setzen auf NoSQL-Datenbanken. Ein weiterer
Weitere Kostenlose Bücher