Hinweis:
Dieser Blogartikel ist älter als 5 Jahre – die genannten Inhalte sind eventuell überholt.
Die großen Public Cloud Anbieter locken inzwischen mit vielversprechenden Platform-as-a-Service-Angeboten, um Daten jeglicher Art performant und kosteneffizient zu speichern und zu verarbeiten. Neben unterschiedlichen Datenbanken gibt es dazu Dienste für Batch- und Realtime-Processing. Anhand eines typischen IoT-Szenarios aus der Praxis wurden im Rahmen eines Research-Projekts einige der wichtigen data-driven-Services beleuchtet. Dazu gehen 3 Schwergewichte des Cloud Business ins Rennen: Microsoft Azure vs. Amazon Web Services vs. Google Cloud Platform.
Neben bereits gehaltenen Vorträgen, von denen es Folien und einen Videostream gibt, werden in unserer Blog-Serie die Vergleiche der PaaS-Services noch einmal im Detail vorgestellt.
Teil 1: Einleitung, Vergleich des Look & Feel sowie Vorstellung von Use Case & Architekturen
Im ersten Teil steht als Einstieg in die Thematik zunächst das generelle Look & Feel der Cloud-Plattformen im Mittelpunkt. Danach wird der gewählte Use Case aus dem Bereich Data Management & Analytics vorgestellt und die getroffene Auswahl der Komponenten aus dem Angebot des jeweiligen Cloud-Anbieters.
Die Blog-Serie im Überblick:
- Einleitung, Vergleich des Look & Feel sowie Vorstellung von Use Case & Architekturen (dieser Artikel)
- Collection and Storage
- Computation
- Analytical Data Stores
- Data Presentation und Fazit
Look & Feel der Cloud-Plattformen im Vergleich
Bevor wir in den technologischen Vergleich eintauchen steht an dieser Stelle zunächst ein Überblick zur Bedienung und Usability der einzelnen Cloud-Plattformen. Erster Kontaktpunkt sind dabei die Web Interfaces, in denen sich der/die Nutzer:in anmelden und Konfigurationen durchführen kann.
Neben der grafischen Bedienung ist ein Zugriff auf die Cloud-Funktionalität auch mittels Kommandozeile (CLI) möglich. Beliebt sind die Funktionen vor allem bei der automatisierten oder wiederholten Erstellung von Umgebungen. An dieser Stelle sei auch auf die Management und Deployment Services (AWS CloudFormation, Google Cloud Deployment Manager, Azure Resource Manager) und die gemeinschaftliche Lösung Terraform verwiesen, die das Deployment deutlich vereinfachen.
Außerdem bieten alle Plattformen passende SDKs in verschiedensten Programmiersprachen um ihre Services zu nutzen. Für den Entwicklungsprozess ist ein umfangreiches Tooling und möglichst die Integration in eine Entwicklungsumgebung wünschenswert.
Ebenfalls wichtig ist eine ausführliche Dokumentation der Dienste, um Einarbeitungsaufwand gering zu halten und auch Sonderfälle mit überschaubarem Aufwand zu lösen.
AWS Management Console
Die AWS Management Console ist trotz einer großen Anzahl an Diensten übersichtlich gehalten und reagiert zügig. Auch im Bereich Tooling ist AWS gut aufgestellt. Hilfreich ist besonders das AWS Toolkit (Plugin), das sowohl für Eclipse als auch Visual Studio vorhanden ist. Drittanbieteranwendungen wie S3 Browser (Desktop-Anwendung) erweisen sich ebenso als hilfreich.
Die Dokumentation ist hier allerdings keine große Hilfe. Um Antworten auf spezifische Fragen zu finden muss man stellenweiße recht lange suchen. Eine CLI ist vorhanden und gut dokumentiert.
Um einen praktischen Eindruck von den Portalen zu vermitteln haben wir eine einfache Aktion wie das Verwalten von Speicher auf den Cloud-Plattformen aufgezeichnet:
Gezeigt wird hier das Anlegen eines S3 Bucket zum Speichern von Daten.
Azure Web Portal
Das Azure Web Portal sieht durch die verschachtelte Kacheloptik modern aus, ist bei der Bedienung allerdings etwas träge und stellenweise unübersichtlich. Suchfunktion und die Dashboards machen dagegen einen sehr guten Eindruck.
Streng genommen hat Azure ein altes und ein neues Portal. Einige Services oder Funktionen lassen sich nur im alten Portal nutzen – der dadurch notwendige Wechsel zwischen beiden Portalen stört.
Die Azure SDKs sind in den gängigen Programmiersprachen erhältlich. Das passende Toolkit für Visual Studio erleichtert das Arbeiten. Das Tooling ist jedoch nicht bei allen Diensten überzeugend.
Gezeigt wird das Anlegen einer Resource-Gruppe als Verwaltungscontainer und eines Storage Account für das Speichern von Blob-Daten in Azure. Ersteres ist hierbei optional, schafft aber Ordnung in der Subscription.
Google Cloud Console
Auch bei Googles Cloud Console trifft man auf Googles schlichtes Web Interface, das weitgehend übersichtlich ist. Stellenweise sind Einstellungen allerdings etwas schwer zu finden.
Google Cloud Client Libraries sind in den gängigen Programmiersprachen vorhanden. Am besten unterstützt sind dabei Java, Python und Node.js. Tooling und IDE-Unterstützung sucht man vergeblich – Java-Programmierer:innen mit Erfahrung mit Eclipse und Maven werden sich dennoch zurechtfinden.
Die Dokumentation ist übersichtlich und gut verständlich. Mit seinem „gcloud“-Tool liefert auch Google eine CLI für GCP-Produkte und -Services.
Gezeigt wird das Anlegen eines Storage Bucket in der Google Cloud Console für das Speichern von Daten.
Zusammenfassende Bewertung der Portale
Amazon Web Console | Azure Portal | Google Cloud Console |
Portal:☆☆☆
SDK: ☆☆ Tooling: ☆☆ Dokumentation: ☆ CLI: ☆☆☆ |
Portal:☆☆
SDK: ☆☆ Tooling: ☆☆ Dokumentation: ☆☆☆ CLI: ☆☆ |
Portal:☆☆
SDK: ☆☆ Tooling: ☆ Dokumentation: ☆☆ CLI: ☆☆ |
Vergleich der Cloud Platformen anhand eines Use Case
Schon ein erster Blick auf die Cloud-Angebote der drei Anbieter zeigt: ein Vergleich ist schwierig. Die Dienste sind nicht gleich aufgebaut, adressieren teils unterschiedliche Anwendungsfälle und setzen dabei andere Schwerpunkte. Für gleiche Dinge werden häufig andere Begriffe verwendet und Definitionen für die Servicelevel sind unterschiedlich.
Im Netz finden sich zwar zahlreiche Artikel, welche die Cloud Anbieter und Dienste vergleichen. Während quantitative Vergleich allerdings häufig zu sehr an der Oberfläche kratzen sind qualitative Vergleiche sehr spezifisch. Diese Einschätzung teilen auch andere Experten, z.B. Jim O’Reilly:
„The cloud market is evolving quickly, with an ever-changing set of big data services. While this makes cloud vendor comparisons difficult, it’s worth the attempt, because the offerings from the top three cloud providers — Amazon Web Services, Microsoft Azure and Google — aren’t created equal.“
Um eine qualitative Vergleichbarkeit der Cloud-Dienste für den Anwendungsbereich Data Management und Analytics zu schaffen, wurde eine geläufige und möglichst generalisierbare Aufgabenstellung auf den 3 Plattformen umgesetzt.
Die obige Abildung zeigt eine typische (generische) Data Analytics Pipeline zum Erfassen, Speichern, Verarbeiten, Analysieren und Visualisieren von kontinuierlichen Datenströmen, wie sie in vielen Unternehmen zur Anwendung kommt.
Das Szenario und die gewählten Cloud-Komponenten
Für die Umsetzung wurde die Erfassung und Analyse von Wetterdaten mittels tausender Sensoren gewählt. Dazu werden die Sensordaten wie Temperatur, Luftdruck, Niederschlag und Windgeschwindigkeit von etwa 5000 Wetterstationen in Baden-Württemberg etwa alle 5 Minuten erfasst. Die Daten werden mittels SDK in die Cloud gesendet, dort empfangen und abgespeichert. Die Daten sollen sowohl in Echtzeit visualisiert als auch für Langzeitanalysen gespeichert werden. Da für die Langzeitanalyse eine geringere Datengranularität ausreicht, aggregieren wir die Daten stündlich.
Die aufbereiteten und aggregierten Daten sollen sowohl mittels Visualisierungstools dargestellt als auch mit SQL abgefragt werden können.
Abbildung: Umsetzung des Use Case mit von uns ausgewählten Komponenten
Die obige Abbildung zeigt die für die Umsetzung genutzten Dienste für den jeweiligen Cloud Anbieter. Diese werden in den folgenden Artikeln dieser Serie Stück für Stück betrachtet und mit Videos visualisiert, welche den Vergleich anschaulicher gestalten.
Im nächsten Artikel geht es konkret um die Datenerfassung mit den Technologien Event Hub & Stream Analytics, Kinesis Firehose sowie Pub/Sub & Dataflow.
Weiterlesen
Unser komplettes Dienstleistungsportfolio rund um den Themenbereich Analytics findet sich auf unserer Website. Bei Fragen freuen uns auch über direkten Kontakt in den Kommentaren, per Mail an info@inovex.de oder telefonisch unter +49 721 619 021-0.
Join us!
Wir suchen Verstärkung für unser Analytics-Team! Egal ob Business Intelligence Entwickler (m/w/d) oder Werkstudent (m/w/d) im Bereich Data Management & Analytics oder Software Entwickler (m/w/d) mit Schwerpunkt Big-Data-Technologien: Wir freuen uns auf Bewerbungen!
4 Kommentare