InfoWorld Award 2019

Die besten Tools für Cloud, Analytics und Machine Learning

08.03.2019
Von 
Jens Dose ist Editor in Chief von CIO. Seine Kernthemen drehen sich rund um CIOs, ihre IT-Strategien und Digitalisierungsprojekte.

Apache Beam

Apache Beam
Apache Beam

Das Programmiermodell Apache Beam verfolgt einen zukunftsweisenden Ansatz bei der Entwicklung von Pipelines für die Batch- und Datenstrom-Verarbeitung. Anders als die meisten Plattformen abstrahiert Beam die Programmiersprache von der endgültigen Execution Engine. Entwickler können die Pipeline in Java, Python oder Go schreiben und dann eine passende Laufzeit-Engine auswählen. So eignet sich beispielsweise Apache Spark für In-Memory-Aufgaben oder Apache Flink, wenn es um Performance mit niedriger Latenz geht.

Die Business-Logik ist nicht an eine bestimmte Execution Engine gebunden, so dass Unternehmen sich nicht von Technologien abhängig machen. Außerdem müssen Entwickler sich nicht mit den Einzelheiten der Runner-Konfiguration auseinandersetzen.

Beam verwaltet alle Mechaniken der zeitlichen Event-Verarbeitung wie vordefinierte Batches oder unvorhergesehene Übertragungen von unregelmäßig ausgelösten IoT-Sensoren. Beam sammelt mehrere Ereignisfenster an und wartet darauf, dass seine Onborad-Heuristik feststellt, dass genug Daten angehäuft wurden. Anschließend startet es die Verarbeitung inklusive Umwandlungen, Datenanreicherung und Flussüberwachung.

Beam unterstützt eine Vielzahl an Runners (Spart, Flink, Google Dataflow), I/O Umwandlern (Cassandra, HBase, Google BigQuery), Messaging (Kinesis, Kafka, Google Pub/Sub) und Dateiquellen (HDFS, Amaozon S3, Google Cloud Storage).

Apache Beam bietet nicht nur eine solide Engine, um verteilte ETL-Prozesse (Daten aus einem Quellsystemen extrahieren, umwandeln, integrieren und in ein Zielsystem schreiben), Datenanalysen in Echtzeit und Machine-Learning-Pipelines zu verarbeiten. In gewisser Weise sorgt es auch dafür, dass die Investition eines Unternehmens zukunftssicher ist.

Redis

Redis
Redis

Redis ist eine NoQL-Datenbank, ein In-Memory-Cache, ein Message Broker und noch ein bisschen mehr. Redis bietet so viele nützliche Funktionen in einer Lösung, dass der sogenannte In-Memory-Datenstruktur-Speicher zu einem integralen Teil moderner Web-Anwendungs-Stacks geworden ist. Sein Library-Support umfasst beinahe jede relevante Programmiersprache.

Mit Redis können Entwickler mit genau dem Maß an Komplexität und Leistung arbeiten, das sie für eine bestimmte Aufgabe brauchen. Geht es nur um einen einfachen In-Memory-Cache für Datenfragmente, ist Redis in wenigen Minuten eingerichtet und funktioniert mit der Anwendung. Wird ein Festplatten-gesichertes NoSQL-System mit verschiedenen Datenstrukturen und individuellen Cache-Eviction-Schemata benötigt, ist auch das mit ein bisschen mehr Aufwand möglich.

Redis 5.0 führte einige neue Features ein. Das wichtigste ist der "Stream Data Type", eine Log-artige Datenstruktur, zu der nur hinzugefügt werden kann (append-only). Damit ist es möglich, mit Redis Messaging-Systeme zu entwickeln, die Apache Kafka ähneln. Darüber hinaus beinhaltet die neue Version bessere Memory-Verwaltung und Fragmentierungskontrolle - beides wichtige Leistungsverbesserungen für ein System, das hauptsächlich um In-Memory-Speicher herum aufgebaut ist.

Visual Studio Code

Visual Studio Code
Visual Studio Code

Das Entwickler-Tool Visual Studio Code passt sich den Bedürfnissen der Nutzer an. Es kann als schneller, leichter Code-Editor dienen oder zu einer ausgewachsenen Entwicklungs-Plattform anwachsen, dank Plug-Ins und Erweiterungen für beinahe jede gängige Programmiersprache oder Laufzeitumgebung. Python, Java, Kotlin, Go, Rust, JavaScript, TypeScript, und Node.js (ganz zu schweigen von Microsofts eigenen .Net-Sprachen) werden alle unterstützt, genauso wie zusätzliche Dokument-Formate wie Markdown, HTML, reStructuredText, und LLVM IR.

Neben dem breiten Support und großem Anklang bei den Nutzern tut sich Visual Studio Code durch kontinuierliche Produktverbesserungen und Erweiterungen hervor. Kein Funktionsbereich wurde ignoriert und so bietet das Tool starken Support unter anderem für Git, Team Foundation Server, Docker, Code Linting (statische Analyse von Quellcode, um Fehler zu finden), Refaktorisierung (automatische Strukturverbesserung des Codes) und Large-File-Support. Visual Studio Code kann auch in einem eigenständigen Verzeichnis ausgeführt werden. Anschließend kann das Tool als eigenständige Umgebung neu verpackt werden.

.Net Core

.Net Core
.Net Core

2016 veröffentlichte Microsoft einen Teil der Funktionalität seines .Net Frameworks als Open-Source-Tool .Net Core. Die Community bekam damit eine abgespeckte Laufzeitumgebung mit einem offenen Entwicklungsprozess, einer Cross-Plattform-Philosophie und eine Kompatibilitätsbrücke zurück in das Haupt-.Net-Framework für Apps, die es brauchen.

Version 2.1 brachte viele Features, die diese Ausrichtung weiter vorantrieben. Darunter sind:

  • .Net Core Global Tools, ein neues System, um Kommandozeilen-Tools zur Verwaltung von .Net-Anwendungen bereitzustellen und auszubauen;

  • Das Windows Compatibility Pack, das Zugang zu den 20.000 APIs gewährt, die im .Net Framework für Windows-native Anwendungen verwendet werden;

  • API-Analyse-Tools um Windows-API-Abhängigkeiten zu entdecken, wenn eine Windows-App portiert werden soll;

  • Mechanismen, um eigenständige .Net-Core-Apps mit der neuesten Laufzeit gebündelt zu veröffentlichen.