AWS rief und über 43.000 Teilnehmer kamen Ende November zur diesjährigen re:Invent nach Las Vegas. Natürlich war auch Materna als Consulting Partner mit vor Ort. Nach wie vor ist Amazon weit vorne an der Spitze der großen Cloud-Anbieter, aber die Konkurrenz, wie z. B. Microsoft Azure schläft auch nicht. Nur so kann Amazon mit konsequent gelebter Innovation seinen ersten Platz weiterhin behaupten. Die interessantesten und wichtigsten Neuerungen stellen wir in unserem re:Cap vor.
Man könnte meinen, der Schwerpunkt der Entwicklung müsste in den Bereichen Artificial Intelligence / Machine Learning oder Internet of Things liegen. Aber weit gefehlt. Die meisten Dienste hat Amazon in 2017 im Bereich der Compute Services vorgestellt.
Eine Liste aller Ankündigungen und Services finden sich auf den Webseiten von AWS . Nachfolgend stellen wir die aktuellen Trends und interessantesten Services vor.
Virtual und Augmented Reality
Amazon Sumerian
Bei Amazon Sumerian handelt es sich um einen Dienst für die einfache Erstellung und Darstellung von Virtual Reality, Augmented Reality und 3D-Anwendungen, der sich weitestgehend ohne Programmierkenntnisse oder Fähigkeiten in der 3D-Modellierung einsetzen lässt. Amazon Sumerian unterstützt bei der Erstellung von interaktiven Szenen, die u.a. auf Oculus Rift, HTC Vive oder einem iOS-Gerät lauffähig sind. Damit setzt Amazon auf einen aktuellen Trend in der IT, die echte Realität entweder mit Informationen anzureichen (= Augmented Reality) oder aber eine eigene, neue Realität mit Unterstützung des 3D-Modellings zu schaffen (= Virtual Reality). Als Beispiel könnte ein mit einer Datenbrille ausgerüsteter Service Techniker beim Kunden vor Ort Informationen in sein Sichtfeld eingeblendet bekommen, die ihm bei der Fehlersuche und Reparatur unterstützen, oder aber es kann Kontakt zu einem Spezialisten in der Firmenzentrale aufgenommen werden und dieser sieht dann das Gleiche, was auch der Service Techniker derzeit sieht und kann so zielgerichtet unterstützen.
Datenverarbeitung
AWS Fargate
Mittels AWS Fargate lassen sich Container bereitstellen und verwalten, ohne dass die zugrundeliegende Infrastruktur verwaltet werden muss. Bei Fargate werden Container einfach hochgeladen und die notwendigen Ressourcenanforderungen an den Container bzw. die Funktion definiert. Eine Skalierung und die Konfiguration der zugrundeliegenden Infrastruktur übernimmt dann Fargate. Dabei wird diese innerhalb von Sekunden zur Verfügung gestellt. Fargate unterstützt dabei ECS und EKS.
Amazon ECS for Kubernetes (EKS)
Amazon Elastic Container Service for Kubernetes (Amazon EKS) ist ein vollständig gemanagter Dienst, bei dem sich ein Kubernetes Cluster ohne Expertenwissen auf AWS betreiben lässt. Der Dienst im Hintergrund übernimmt dabei die vollständige Verwaltung und Skalierung sowie die Konfiguration der Master-Knoten. Über Amazon EKS werden ferner auch Versions-Upgrades und die etcd-Persistenzebenen gesteuert und ggf. fehlerhafte Master erkannt und ausgetauscht.
Mit EKS geht Amazon einen konsequenten weiteren Schritt und berücksichtigt die Wünsche seiner Kunden, ihre Software auch in hybriden Szenarien betreiben zu können.
Kubernetes Cluster setzen wir bei Materna z. B. in Microservices- oder Content-Management-Projekten ein.
Amazon Time Sync-Service
Keiner großer Schritt, aber ein lange erwarteter und sehr nützlicher Service. Amazon bietet nun über den Amazon Time Sync-Service akkurate NTP-Dienste an, die mittels Satellit über die einzelnen AWS-Regionen synchronisiert werden und auf atomaren Referenzuhren basieren. So lässt sich übergreifend über alle Instanzen mit der absolut gleichen Systemzeit arbeiten.
Änderungen bei AWS Lambda
Der serverlose Dienst AWS Lambda bekommt auch einige Neuerungen. Zum einen wurde der maximal verfügbare Speicher für Funktionen von ehemals 1536 MB auf 3008 MB erhöht. Dadurch lassen sich auch größere Workloads für die Verarbeitung von Massendaten oder statistische Berechnungen ohne Server-Infrastruktur verarbeiten.
Für AWS Lambda-Funktionen lassen sich nun auch Nebenläufigkeitsziele und Einschränkungen definieren. Dies ist u.a. dann hilfreich, wenn Sie die Auslastung von Elastic Network-Schnittstellen oder die Datenverkehrsraten zum Nachschalten Ihrer von Lambda abgerufenen Ressourcen (z. B. Datenbanken) beschränken oder Sie die IP-Adressen für Funktionen, die auf eine private VPC zugreifen, kontrollieren möchten.
Ferner wurde das Erstellen, Konfigurieren und Testen von Lambda-Funktionen über die Konsole optimiert.
Datenbanken
Amazon Neptune
Amazon bringt mit Amazon Neptune einen vollständig verwalteten Graphdatenbankservice heraus, der die gebräuchlichen Graphenmodelle Apache TinkerPop und RDF von W3C unterstützt. In diesen lassen sich Milliarden von Beziehungen abbilden und mit den allseits bekannten Abfragesprachen, wie Apache TinkerPop Gremlin und W3C SPARQL abfragen. Durch die hochgradige Verknüpfung der Datensätze lassen sich sehr effizient mit einer Latenz von wenigen Millisekunden Antworten generieren. Neptun unterstützt Graphen-Anwendungsfälle wie Netzwerksicherheit, Wirkstoffentdeckung, Recommendation Engines, Betrugserkennung oder auch Wissensgraphen.
Neptune wird als hochverfügbarer Service, mit Read Replicas über mehrere Availability Zones hinweg angeboten und unterstützt dabei die Verschlüsselung sowohl im Ruhezustand als auch bei der Übertragung.
Graphendatenbanken finden bei Materna ihren Einsatz, wenn große Mengen an Wissen strukturiert abgebildet werden sollen. Solche sogenannten Trippelgrammatiken („Das Louvre“ ist ein „Museum“) bilden u.a. auch die Basis des Semantic Web
Knowledge Graphs – Quelle: https://aws.amazon.com/de/neptune
Amazon Aurora Serverless / Multi-Master
Die beliebte Datenbankvariante Amazon Aurora lässt sich nun im sog. „serverlosen Modus“ zunächst für MySQL betreiben. Es handelt sich dabei um eine vollständig automatisch skalierende Konfiguration, die anhand der aktuellen Anforderungen der Anwendung mitwächst oder diese auch wieder bei Bedarf herunterskaliert. So lassen sich vor allem sporadische oder unvorhersehbare Arbeitslasten abfangen. Konfigurieren lassen sich sowohl die Mindest- als auch die Höchstanforderungen in dessen Grenzen Aurora Serverless dann selbstständig agiert.
Mit Amazon Aurora Multi-Master lassen sich Lese- und Schreibmaster-Instanzen über mehrere Availability Zones erstellen. Dies erhöht zum einen die Verfügbarkeit, da ausfallende Master-Instanzen kompensiert werden können. Zusätzlich bleibt selbst bei vollständigen Availability Zones Ausfüllen die Lese- und auch Schreibverfügbarkeit gewährleistet.
Mit Amazon Aurora Multi-Master ist man der vollständig verwalteten und Zero-Downtime Datenbank ein großes Stück nähergekommen.
Entwicklertools
AWS Cloud9
Nachdem Amazon vor gut einem Jahr Cloud9 gekauft hat wurde nun die browser-basierte integrierte Entwicklungsumgebung (IDE) auf der re:Invent vorgestellt. Neben einem Code-Editor umfasst Cloud9 noch einen Debugger, ein Terminal und grundlegende Tools für u.a. JavaScript, Python und PHP. Die Entwicklungsumgebung lässt sich mit anderen Entwicklern teilen, sodass im Team gemeinsam programmiert werden kann. Die Änderungen sind dann in Echtzeit für alle sichtbar. Auch eine Integration mit AWS CodeStar ist möglich, sodass sich eine vollständige Continuous Delivery-Toolkette abbilden lässt.
Auch wenn wir bei Materna eher die „offline“ IDE einsetzen, bietet Cloud9 doch interessante Möglichkeiten, um z. B. bei Kunden oder im Rahmen von Hackathons relativ schnell und vor allem unkompliziert Beispiele präsentieren zu können.
Internet of Things
AWS IoT Analytics
Mit dem vollständig verwalteten Service AWS IoT Analytics lassen sich anspruchsvolle Analysen auf Basis von IoT-Massendaten durchführen. Größtenteils sind IoT-Daten unstrukturiert und eignen sich schon alleine aus diesem Grund nicht für herkömmliche Business Intelligence-Tools oder andere Analysewerkzeuge. Dazu sind IoT-Daten meist „unsauber“, weisen Aufzeichnungslücken auf oder sind verschiedenen Störfaktoren (Geräusche, Temperaturschwankungen, Bewegungen) ausgesetzt. Dazu stehen Daten meist noch im Kontext anderer Datenquellen. Diese Schritte lassen sich mit AWS IoT Analytics automatisieren und bieten so eine ideale Grundlage für Machine Learning und ebnen damit den Weg zu Predictive Maintenance. Der Dienst skaliert bis in den Petabyte-Bereich.
Dieses Thema ist für Materna sehr interessant. So lassen sich z. B. Daten direkt aus MQTT Topics (Channel) extrahieren und anschließend über eine Pipeline (ggf. mit Datentransformation) vorverarbeiten und in einem Datastore ablegen, an den dann Abfragen adressiert werden.
Amazon FreeRTOS
Mit a:FreeRTOS stellt AWS ein IoT-Operation System für Mikrocontroller zur Verfügung, das eine einfache Einrichtung und Bereitstellung von IoT-Geräten unterstützt. Dabei gibt es neben dem Kernbetriebssystem auch Software-Bibliotheken, die eine einfache Programmierung und Integration beliebiger Devices in die AWS IoT-Plattform ermöglichen. So lassen sich eigene Produkte, die z. B. auf NXP, Microchip, STMicroelectronics oder Texas Instruments Hardware basieren vollständig in das IoT Framework integrieren. Dabei sind minimale Hardware-Vorrausetzungen, um das vollständige System nutzen zu können, ein Microcontroller mit mindestens 25MHz und 64KB RAM.
Von Seiten Materna halten wir diese Entwicklung interessiert im Auge, legen uns aber nicht darauf fest, unbedingt alle kommenden IoT-Projekte auf der Amazon IoT-Plattform auszurollen.
Machine Learning
Amazon Comprehend
Mittels dem Natural Language Processing (NLP) Service Amazon Comprehend lassen sich Zusammenhänge in Texten finden. Dabei wird die Sprache identifiziert und es wird analysiert, ob die Texte eher positiv oder negativ geschrieben sind. Darüber hinaus lassen sich Schlüsselworte extrahieren und so Orte, Personen, Datumangaben oder Marken filtern. Auf Basis der analysierten Texte lassen sich relativ einfach weitere Anwendungen befüllen.
So ist beispielsweise eine automatische Sortierung von E-Mails (Lob vs. Beschwerde) möglich oder es lassen sich eingehende Text automatisch bestimmten Lokationen oder Personen zuordnen.
Amazon Rekognition Video
Bei Amazon Rekognition Video handelt es sich um einen Deep Learning-fähigen Service, der Videos analysieren und in ihnen Personen (bei Prominenten sogar benamen) und Objekte identifizieren sowie Aktivitäten erkennen kann. Gesichter werden sogar in Live-Streams erkannt.
So lässt sich z. B. in einem Video relativ einfach ein Index erstellen, der das Auftreten bestimmter Personen zeitlich markiert oder jedes Mal, wenn ein Objekt (z. B. ein spezielles Musikinstrument) auftaucht, eine Notifikation ausgibt.
Dies ist erst der Anfang des Einsatzes von Deep Learning in Applikationen. Bei Materna beschäftigen wir uns schon länger mit diesem Thema und haben bereits erste Use Cases entwickelt, die auf dem Basisdienst Amazon Rekognition beruhen.
Amazon Sagemaker
Amazon Sagemaker besteht aus drei Modulen: Build / Authoring, Model training und Deploy / Model hosting. Zunächst lassen sich ohne komplizierte Einrichtung auf Basis von Jupyter Notebooks Daten ansehen, aufbereiten und vorverarbeiten. Diese können dann im nächsten Schritt als Modell trainiert werden. Dabei lässt sich das Training über verschiedene Server skalieren. Trainingsdaten werden dabei von S3 eingelesen und die fertigen Modelle auch wieder auf S3 abgelegt. So lassen sich diese Modelle später einfach auf andere Plattformen (wie z. B. Deep Lens oder IoT Devices) bringen und dort einsetzen.
Auf den Dienst Sagemaker und die zugrunde liegende Technologie (Apache MXNet, Tensorflow) gehe ich in einem weiteren Blog-Eintrag noch näher ein.
Services für Mobilgeräte
AWS AppSync
Mit AppSync wird die Datenverwaltung in mobilen Apps und webbasierten Applikationen noch einfacher. Der Service aktualisiert automatisch und in Echtzeit Daten der Nutzer. Offline-Benutzer, erhalten die neueste Version der Daten, sobald sich diese wieder verbinden. Dadurch wird die Datenhaltung und Synchronisation in der Entwicklung drastisch vereinfacht.
Speicherung
Amazon S3 Select und Glacier Select
Bis dato mussten die meisten Anwendungen den kompletten Satz von Objekten aus dem Datenspeicher lesen und dann die benötigten Daten auslesen. Mit Amazon S3 Select lassen sich Teilmengen von Daten innerhalb von Objekten, die auf S3 liegen, abrufen. So kann die Filterung von Daten an den S3-Dienst übertragen werden.
Ähnlich verhält es sich mit Glacier Select. Auch auf dem Langzeitspeicher können nun selektiv Daten ausgelesen werden.
Zusammenfassung und Fazit
Insgesamt hat Amazon zwar die meisten Dienste im Bereich der Compute Services herausgebracht, allerdings sind die interessantesten tatsächlich im Bereich Artificial Intelligence und Internet of Things angesiedelt.
Wie sagte doch Andy Jassy bei seiner Key Note: „Machine Learning is still too complicated for everyday developers.“ Gerade deswegen hat Amazon SageMaker herausgebracht. Mit den vorhandenen Software Tools bietet es bisher ungeahnte Möglichkeiten der Entwicklung und für innovative Produkte. Es lassen sich nun neuronale Netze für den Deep Learning Einsatz mit einfachen Mitteln trainieren und anwenden, eben auch vom „everyday developer“.
Die Services im IoT-Umfeld sind eine konsequente Weiterentwicklung des IoT Frameworks und erweitern die Möglichkeiten noch einmal enorm. Gerade die Analyse von IoT-Daten wird nun deutlich erleichtert.
Als Fazit lässt sich sagen: Es bleibt spannend! AI und IoT entwickeln sich derzeit drastisch weiter und man kann eigentlich nun nur am Ball bleiben, um den Anschluss nicht zu verlieren.