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.
Wir stellen die besten Tools für Softwareentwicklung, Cloud-Computing, Big Data Analytics und Machine Learning vor.

Die COMPUTERWOCHE-Schwesterpublikation InfoWorld wählt mit den Technology of the Year Awards jährlich die besten, innovativsten und wichtigsten Produkte der IT-Landschaft aus. Dieses Jahr sind Container, Cloud-native Anwendungs-Stacks, verteilte Datenverarbeitungssysteme und Machine Learning die großen Themen.

Der diesjährige InfoWorld Award kürt die besten Tools für Softwareentwicklung, Cloud-Computing, Big Data Analytics und Machine Learning.
Der diesjährige InfoWorld Award kürt die besten Tools für Softwareentwicklung, Cloud-Computing, Big Data Analytics und Machine Learning.

Unter den Gewinnern befinden sich drei große Machine-Learning-Libraries, ein verteiltes Training-Framework, das Deep Learning beschleunigt, und eine automatisierte Plattform, die Laien durch Feature Engineering, Model Selection, Training und Optimierung für Predictive Analytics führt. Damit gibt es mehr Gewinner im Bereich Machine Learning als in jeder anderen Produkt-Kategorie, einschließlich Softwareentwicklung.

Drei Datenbanken haben es auf die diesjährige Gewinner-Liste geschafft. Mit dabei sind eine wide-Column-Datenbank, ein Mehrzweck-Datenspeicher und eine Datenbank, die sowohl Anwendungsplattform als auch Datenspeicher ist. Weil sich Daten immer bewegen, vorzugsweise in Echtzeit, wurden zudem zwei Plattformen mit aufgenommen, die es ermöglichen, Stream-Processing-Applikationen zu bauen.

Kubernetes

Kubernetes
Kubernetes

Kubernetes (alias K8s) erlebte in den letzten Jahren einen kometenhaften Aufstieg. Ursprünglich eines von zahlreichen Systemen für die Container-Orchestrierung, entwickelte es sich schnell zur Standard-Plattform. Zum Einsatz kommt Kubernetes bei den großen Cloud-Anbietern und in On-premise-Installationen großer Unternehmen gleichermaßen. Verantwortliche im Operations-Bereich sollten sich also eingehend mit dem Open-Source-Projekt auseinanderzusetzen.

Kubernetes wurde 2015 von einer Hand voll Google-Entwicklern gegründet und baut auf Erfahrungen, die über zehn Jahre hinweg beim Betrieb der Rechenzentren des Internetgiganten gesammelt wurden. Es ist eine Plattform, um Container-basierte Anwendungen und Workloads über große Cluster hinweg bereitzustellen, zu skalieren und zu überwachen. Die jüngsten Kubernetes-Releases brachten einige Verbesserungen, wie beispielsweise eine Überarbeitung des Speichers. Weitere neue Funktionen beinhalten:

Auch der Kern-Stack von Kubernetes bekam wichtige Komponenten spendiert. So wurde Istio in Kubernetes integriert. Istio definiert ein sogenanntes Service Mesh für verteilte Systeme und Microservice-Architekturen. Damit wird es einfacherer, die zunehmend komplexer werdenden Microservice-Landschaften innerhalb großer Anwendungen zu verwalten, zu überwachen und abzusichern. Zudem tauchten spezialisierte Frameworks wie Kubeflow auf, das TensorFlow oder PyTorch Machine-Learning-Pipelines (siehe weiter unten) in Kubernetes einfach und skalierbar bereitstellen soll.

Um spezifische Management-Aufgaben in Kubernetes zu vereinfachen, stellen immer mehr Drittanbieter Tools und Frameworks zur Verfügung. Sie vereinfachen beispielsweise die Definitionen von Apps oder die Überwachung mehrerer Cluster.

Firebase

Firebase
Firebase

Auf den ersten Blick erscheint Firebase wie eine einfache Speicherlösung für Paare aus Schlüsseln und den zugehörigen Werten - im Grunde nichts anderes, als andere angemessen konsistent gehaltene NoSQL-Datenbanken. Google erweiterte die Funktionen von Firebase aber kontinuierlich, so dass sie immer mehr Aufgaben übernehmen konnte, die eigentlich Cloud-basierten Web-Anwendungen zustehen. Die Kalifornier haben sogar angefangen, Firebase als eine mobile Plattform zu bezeichnen.

Das Team von Firebase fand heraus, dass die Synchronisierungs-Routinen, um die Datenbank konsistent zu halten, sich ideal dazu eignen, Daten mit mobilen Clients auszutauschen. Es ist also kein Problem mehr, Daten auf einem Client zwischenzuspeichern, wenn das Internet nicht optimal läuft. Sie öffneten den Synchronisierungsprozess, so dass der Code beispielsweise keine komplizierten Algorithmen für Handshakes mehr ausführen muss. Was übertragen werden soll, wird einfach an Firebase übergeben und es erscheint in der Kopie auf dem Mobilgerät. Es ist im Grunde eine große Datenbank, wobei die Server- und Client-Routinen aus einem gemeinsamen Pool lesen und schreiben.

Google erweitert Firebase kontinuierlich, während es mit den restlichen Lösungen der Kalifornier integriert wird. So lässt beispielsweise die Authentifizierung über den Social-Log-In via Facebook oder den Google-Account Nutzer auf die passenden Teile der Datenbank zugreifen. Google zieht nach und nach alle ihre Lösungen etwa für Analytics, Hosting und Messaging unter den Mantel der Datenbank. Auch Machine Learning ist bereits als Beta-Option in Firebase verfügbar, wenn es gilt, die Schlüssel-Wert-Paare in der Datenbank zu analysieren.

Serverless Framework

Serverless Framework
Serverless Framework

Die erste Cloud-Generation sparte Unternehmen durch anmietbare Server Zeit, indem sie ihnen die mühsame Hardware-Verwaltung abnahm. Server standen bei den Anbietern, so dass sie sich darum kümmern mussten, sie zu beheizen, zu kühlen und zu warten. Die nächste Generation will nun auch die Server abschaffen - zumindest dem Namen nach. So sollen nicht nur Sorgen um Updates und Patches für das Betriebssystem der Vergangenheit angehören, sondern auch, was die Anwendungsbereitstellung betrifft.

Es gibt zwar immer noch Server-Hardware und ein Betriebssystem irgendwo unter dem Code, aber für das meiste davon wird die Verantwortung abgegeben. Statt sich mit Root-Zugang und ähnlichem aufzuhalten, können Unternehmen einfach ihre Funktionen hochladen und sie vom Software-Stack des Cloud-Betreibers ausführen lassen. Ein Beispiel hierfür wäre AWS Lambda.

Allerdings gibt es Herausforderungen. Im Serverless Computing müssen technische Architekturen neu gedacht werden. Wenn Unternehmen sich auf Events und asynchrone Warteschlangen (Queues) für die zu nutzenden Services verlassen, gilt es, Anwendungen in ordentlich getrennte Aufgaben umzuwandeln. Zwar gibt es bereits ein paar Hilfestellungen für die Tool-Bereitstellung, vieles bedarf aber noch der Klärung, darunter Fehlersuche (Debugging) von Integrationen, verteilte Überwachung, Paketierung der Bereitstellung sowie die Versionierung der Funktionen.

Außerdem droht die Abhängigkeit (Vendor Lock-In) von den führenden Function-as-a-Service (FaaS)-Anbietern. AWS Lamdba, Microsoft Azure Functions und Google Cloud Functions haben alle individuelle Methoden für Bereitstellung und Betrieb.

Hier schafft das Serverless Framework Abhilfe. Es zieht eine Abstraktionsebene über die herstellerspezifischen Implementierungen ein, um die App-Bereitstellung zu beschleunigen. Mit dem Open Source Framework lassen sich die eigenen Funktionen komfortabel testen und bei verschiedenen Cloud-Anbietern bereitstellen. Konfigurations-Updates werden vereinfacht durch eine gemeinsame YAML-Datei, während gleichzeitig zahlreiche Features für Funktions-Management und Sicherheit bereitstehen.

Neben den großen Drei unterstützt das Serverless Framework auch

Zudem bietet sie Support für zahlreiche Sprachen und Features, um persistente Verbindungen zu verarbeiten.

Serverless Computing ist weder ausgereift noch die Geheimwaffe für jeden Use Case. Die Wirtschaftlichkeit und Effizienz der Technologie machen sie jedoch attraktiv. Das Serverless Framework hilft dabei, Schlaglöcher auf dem Weg zu weniger Betriebskosten und schnellerer Bereitstellung zu umfahren.