Microservices und agile Cloud-Architekturen sind zwei Begriffe, die gerne gemeinsam genutzt werden. Denn das eine bedingt das andere – und umgekehrt. So setzen sich mehr und mehr Cloud-Applikationen aus einer Vielzahl an Funktionen und einzelnen Apps zusammen, die jede für sich entwickelt und verwaltet werden – und das eben in Form von Microservices. Doch welchen Herausforderungen begegnen vor allem DevOps beim Entwickeln und Implementieren der benötigten Microservices-basierten Cloud-Anwendungen – und wie bewältigen sie diese? Davon handelt dieser Beitrag.
Herausforderung #1: Geringe Latenzen und das Einhalten von SLA’s
Selbst eine „triviale“ Anwendung wie eine Webseite zeigt: Aus Sicht vieler Anwender:innen dürfen nur noch wenige Sekunden vergehen, bis das angeforderte Ergebnis sichtbar wird. Ansonsten verzweigen sie direkt zur nächsten Seite. Mit zeitkritischen Datenbank-Applikationen verhält es sich noch extremer, denn hierbei geht es um kurze Augenblicke, die zum Bereitstellen des Datums gefordert werden.
Das ist sogar oft gekoppelt an vertraglich vereinbarte Reaktionszeiten, wie diese im Banken- und Versicherungsumfeld garantiert sein müssen. Finden davon zu oft Abweichungen statt, kann es ganz schnell für den Infrastruktur-Bereitsteller unangenehm werden, speziell im Cloud-Umfeld, wo Geduld ein zerbrechliches Gut ist.
Und wie lassen sich zu lange Antwortzeiten bestmöglich verhindern? Nun, hierfür arbeiten Software-Entwickler von Intel seit Jahren an speziellen Tools, mit deren Hilfe sich die Software-Umgebung von Cloud-Instanzen optimieren lassen. Zu den Technologiepartnern, die auf diese bestmöglich eingestellten Cloud-Anwendungen zurückgreifen, gehören unter anderem Amazon AWS, Microsoft Azure, Google Cloud und andere bekannte Cloud-Anbieter.
[irp posts=“168154″ ]
Ganz frisch dazu zählen auch Hardware-basierte Beschleuniger-Funktionen des Intel Xeon Prozessors der 4. Generation, die beispielsweise mithilfe von Matrix-basierten Multiplikationsbefehlen für schnellere Trainings- und Inferenzergebnisse im Bereich der Künstlichen Intelligenz sorgen. Ein Baustein, auf den Intel hierbei seit vielen Jahren setzt, nennt sich Intel Advanced Vector Extensions 512 (Intel AVX-512).
[irp posts=“168611″ ]
Herausforderung #2: Die verteilte Kommunikation über Ländergrenzen hinweg
Das Gute an Microservices-basierten Cloud-Anwendungen ist ihre flexible, vom Standort des Anwenders unabhängige Nutzung. Denn jeder Baustein, jedes Element einer App kann grenzüberschreitend implementiert sein und entsprechend über Länder- und Cloud-Grenzen hinweg ausgeführt werden. Hier kommen ganz schnell die Themen Latenzen und Leistung ins Spiel. Aber auch die geforderten Sicherheitsmaßnahmen sind hierbei penibel genau einzuhalten.
Für ein Mindestmaß an wohl ausbalancierten Cloud-Anwendungen und -Services steht mit dem Intel Xeon Prozessor der 4. Generation eine Funktion zur Verfügung, die sich Intel Data Streaming Accelerator (Intel DSA) nennt. Damit lässt sich die Datenübertragung zwischen CPU, Arbeitsspeicher und Cache sowie allen angeschlossenen Arbeitsspeicher-, Datenspeicher- und Netzwerkeinheiten erheblich beschleunigen. Eine ähnliche Aufgabe übernimmt der Intel Dynamic Load Balancer (Intel DLB). Hierbei handelt es sich um eine CPU-nahe Funktion, die den gesamten Netzwerkverkehr im Auge behält und diesen bestmöglich auf die vorhandenen Ressourcen verteilt.
Herausforderung #3: Übermaß an gebuchten und verfügbaren Cloud-Instanzen
Praktisch an Cloud-Instanzen ist deren schnelle und unkomplizierte Skalierbarkeit, falls die bereitstehenden Ressourcen nicht mehr ausreichen. Das kann aber auch ins Gegenteil umschlagen, da jede weitere Instanz einen höheren Verwaltungsaufwand erfordert – und zudem möglicherweise die anfallenden Kosten in die Höhe treibt.
Eine mögliche Lösung für dieses Dilemma nennt sich Intel QuickAssist Technology (Intel QAT), in Kombination mit den Intel Software Guard Extensions (Intel SGX). Damit lassen sich benötigte, aber auch nicht mehr benötigte Instanzen, Erweiterungen und andere Cloud-Komponenten automatisiert hinzufügen und auch wieder entfernen, und das so sicher wie möglich. Speziell in Verbindung mit Kubernetes-basierten Microservices-Umgebungen übernehmen diese Intel-Tools echte Überwachungsaufgaben für die passende Zahl an Cloud-Instanzen.
[irp posts=“160196″ ]
Herausforderung #4: Komplexe und komplizierte Entwicklungs-Umgebungen und -Tools
Der Einstieg in die Microservices-basierte Welt stellt vor allem DevOps-Neulinge vor diverse Herausforderungen. Wie gut wäre in diesen Fällen eine Community, die die benötigte Hilfe bereitstellt, und das in Form von angepassten Funktionen, CPU-Bibliotheken, für den Intel Xeon Prozessor optimierte Runtimes und vieles mehr. Schön, dass es so etwas bei Intel gibt, und das schon seit vielen Jahren. Dieses umfangreiche Sammelwerk und die zahlreichen virtuellen Workshops helfen beim Einstieg in die Welt der Cloud-Architekturen.
Herausforderung #5: Eingeschränkte Transparenz von Cloud-Instanzen
Verteilte Cloud-Anwendungen, die auf Microservices basieren, weisen in vielen Fällen recht schnell einen regelrechten Wildwuchs auf. In diesem Wirrwarr den Überblick zu behalten, ist kein einfaches Unterfangen, selbst für erfahrene DevOps nicht. Das Zauberwort an dieser Stelle lautet: Observability. Zu diesem Zweck lassen sich innerhalb diverser Public Cloud-Umgebungen sogenannte Intel Performance Counter (IPC) nutzen, wie das beispielsweise für bestimmte Microsoft Azure-Instanzen möglich ist. Mithilfe der zugrundeliegenden Funktionen lassen sich Schwächen innerhalb der Cloud-Umgebung messen und evaluieren, die zu unerwünschten Latenzen führen.
Eine ähnliche Aufgabe übernimmt der Intel Telemetry Collector (ITC) . Damit lassen sich die im Einsatz befindlichen Domain-Server auf bestimmte Kennzahlen hin überprüfen. Dazu gehören unter anderem die aktuelle Auslastung der Cloud-Instanzen, der Energieverbrauch, mögliche Fehler und vieles mehr. Basierend auf vorgefertigten Berichten lässt sich die zugrunde liegende Netzwerk-Infrastruktur noch genauer beobachten und bewerten.
Disclaimer: Für das Verfassen und Veröffentlichen dieses Blogbeitrags hat mich die Firma Intel beauftragt. Bei der Ausgestaltung der Inhalte hatte ich nahezu freie Hand.