Der Aufstieg von Big-Data-Cloud-Computing- und Cloud-Data-Stores war ein Wegbereiter für die Entstehung von Big Data. Cloud Computing ist die Kommodifizierung von Rechenzeit und Datenspeicherung mittels standardisierter Technologien.
Es hat erhebliche Vorteile gegenüber traditionellen physischen Bereitstellungen. Cloud-Plattformen kommen jedoch in verschiedenen Formen vor und müssen manchmal in traditionelle Architekturen integriert werden.
Dies führt zu einem Dilemma für Entscheidungsträger, die für Big Data in den Cloud-Projekten zuständig sind. Wie und welches Cloud Computing ist die optimale Wahl für ihre Rechenanforderungen, insbesondere wenn es sich um ein Big-Data-Projekt handelt? Diese Projekte zeigen regelmäßig unvorhersehbare, platzende oder immense Rechenleistung und Speicherbedarf. Gleichzeitig erwarten die Business Stakeholder schnelle, kostengünstige und zuverlässige Produkte und Projektergebnisse.
Big-Data-Cloud-Anbieter
Vor einem Jahrzehnt musste ein IT-Projekt oder Start-up, das zuverlässige und mit dem Internet verbundene Rechenressourcen benötigte, physikalische Hardware in einem oder mehreren Rechenzentren mieten oder platzieren. Heute kann jeder Rechenzeit und Speicher in beliebiger Größe mieten. Die Palette beginnt mit virtuellen Maschinen, die kaum leistungsfähig genug sind, um Webseiten zu bedienen. Cloud-Dienste sind meist Pay-As-You-Go, das heißt, für ein paar hundert Dollar kann jeder ein paar Stunden Supercomputer-Power genießen. Gleichzeitig werden Cloud-Services und -Ressourcen global verteilt. Diese Konfiguration gewährleistet eine hohe Verfügbarkeit und Haltbarkeit, die von den meisten, auch den größten Organisationen, nicht erreicht werden kann.
Der Cloud-Computing-Bereich wurde bis vor kurzem von Amazon Web Services dominiert. Es tauchen immer ernsthaftere Alternativen auf. Wichtig für Kunden ist ein Kampf um Plattformstandards. Folglich hat die Wahl eines Cloud-Plattform-Standards Auswirkungen darauf, welche Tools verfügbar sind und welche alternativen Anbieter mit den gleichen Big-Data-Processing-Technologien zur Verfügung stehen.
Cloud Computing
Cloud Computing verwendet die Visualisierung von Rechenressourcen, um zahlreiche standardisierte virtuelle Server auf derselben physischen Maschine auszuführen. Cloud-Anbieter erreichen mit dieser Größenvorteile, welche niedrige Preise und eine Abrechnung, basierend auf kleinen Zeitintervallen, ermöglichen, z. B. stündlich.
Diese Standardisierung macht es zu einer elastischen und hoch verfügbaren Option für Rechenanforderungen. Die Verfügbarkeit wird nicht dadurch erreicht, dass Ressourcen ausgegeben werden, um die Zuverlässigkeit einer einzelnen Instanz zu gewährleisten, sondern durch ihre Austauschbarkeit und einen unbegrenzten Ersatzpool. Dies wirkt sich auf Designentscheidungen aus und erfordert, dass Instanzenfehler ordnungsgemäß behoben werden.
Die Auswirkungen auf ein IT-Projekt oder das Unternehmen, welches Cloud Computing einsetzt, sind von Bedeutung und verändern den traditionellen Ansatz bei der Planung und Nutzung von Ressourcen. Die Ressourcenplanung wird weniger wichtig. Für Kalkulationsszenarien ist es erforderlich, die Durchführbarkeit eines Projekts oder Produkts festzustellen. Die Bereitstellung und das automatische Entfernen von Ressourcen, basierend auf der Nachfrage, muss jedoch darauf ausgerichtet sein, erfolgreich zu sein. Die vertikale und horizontale Skalierung wird praktikabel, sobald eine Ressource einfach zu implementieren ist.
Horizontale Skalierung bezieht sich auf die Fähigkeit, eine einzelne kleine Rechenressource durch eine größere zu ersetzen, um die gestiegene Nachfrage zu berücksichtigen. Cloud Computing unterstützt dies, indem verschiedene Ressourcentypen für den Wechsel bereitgestellt werden. Dies funktioniert auch in der entgegengesetzten Richtung, nämlich, um zu einem kleineren und billigeren Instanztyp zu wechseln, wenn die Nachfrage abnimmt. Da Cloud-Ressourcen in der Regel auf Nutzungsbasis bezahlt werden, blockieren keine versteckten Kosten oder Investitionen die schnelle Entscheidungsfindung und Anpassung. Die Nachfrage ist trotz der Planungsbemühungen schwer zu antizipieren und führt naturgemäß in den meisten traditionellen Projekten zu Ressourcen, die zu viel oder zu wenig zur Verfügung stehen. Daher neigen traditionelle Projekte dazu, Geld zu verschwenden oder schlechte Ergebnisse zu erzielen.
Big Data Cloud – Herausforderungen
Bei der vertikalen Skalierung wird die Elastizität erhöht, indem zusätzliche Instanzen hinzugefügt werden, von denen jede einen Teil der Anforderung erfüllt. Software, wie Hadoop, wurden speziell als verteilte Systeme entwickelt, um die Vorteile der vertikalen Skalierung zu nutzen. Sie bearbeiten kleine, unabhängige Aufgaben in massiver Parallelskala. Verteilte Systeme können auch als Datenspeicher wie NoSQL-Datenbanken dienen, z. B. Cassandra oder HBase oder Dateisysteme wie Hadoops HDFS. Alternativen, wie Storm, bieten koordinierte Stream-Datenprozesse in nahezu Echtzeit über einen Cluster von Maschinen mit komplexen Workflows.
Die Austauschbarkeit der Ressourcen zusammen mit dem verteilten Softwaredesign absorbiert Fehler und äquivalent die Skalierung von virtuellen Computerinstanzen ungestört. Spiking oder Burst-Anforderungen können ebenso gut berücksichtigt werden wie kontinuierliches Wachstum.
Praktisch unbegrenzte Ressourcen für kurze Zeiträume zu mieten, ermöglicht einmalige oder periodische Projekte zu geringen Kosten. Data Mining und Webcrawling sind großartige Beispiele. Es ist denkbar, riesige Websites mit Millionen von Seiten in Tagen oder Stunden für ein paar hundert Dollar oder weniger zu crawlen. Preiswerte kleine virtuelle Instanzen mit minimalen CPU-Ressourcen sind ideal für diesen Zweck, da der Großteil des Crawlens im Web auf IO-Ressourcen wartet. Die Instanziierung von Tausenden dieser Maschinen, um Millionen von Anfragen pro Tag zu erreichen, ist einfach und kostet oft weniger als einen Bruchteil eines Cents pro Instanzstunde.
Natürlich sollten solche Mining-Operationen die Ressourcen der Websites oder Anwendungsschnittstellen, die sie nutzen, berücksichtigen, ihre Bedingungen respektieren und ihren Service nicht behindern. Ein schlecht geplanter Data-Mining-Vorgang entspricht einem Denial-of-Service-Angriff. Schließlich ist Cloud Computing natürlich gut geeignet, um die großen Daten zu speichern und zu verarbeiten, die von solchen Operationen akkumuliert werden.