Unter Beobachtung

Monitoring von FaaS-Infrastrukturen: Potenzial von Serverless-Konzepten hängt von Systemgesundheit ab

Stefan Marx

© Shutterstock / Zambri Zakaria

Serverless mausert sich vom bloßen Buzzword zu einer ernstzunehmenden Alternative: Mehr und mehr Unternehmen kehren traditionellen Ansätzen zur Umsetzung ihrer Anwendungslogik den Rücken und setzen auf Function as a Service (FaaS). Damit die Benefits – vor allem geringere Kosten und ein komfortables Anwendungsmanagement – nicht ins Gegenteil umschlagen, sollten Admins ihre Serverless-Umgebung allerdings zu keinem Zeitpunkt aus den Augen verlieren. Hier hilft ein umfassendes Monitoring weiter.

Das Konzept von Serverless-betriebenen Anwendungslandschaften wird derzeit hoch gehandelt. Der Begriff an sich ist allerdings etwas irreführend. Damit keine Missverständnisse aufkommen: Serverless bedeutet nicht die vollständige Abschaffung von Systemhardware. Basisoperationen werden immer noch auf Bare Metal ausgeführt. Es geht vielmehr um eine neue Idee, Anwendungen und Apps zu managen. Der Fokus liegt bei Serverless darauf, die fachliche, anwendungsrelevante Ebene einer Systemarchitektur losgelöst von Hardware-spezifischen Fragestellungen verwalten zu können. Die App-Manager sehen im Grunde nur die oberste Ebene einer darunterliegenden Blackbox, die Funktion beziehungsweise den Service. Wenn es um Bereitstellungslogiken bis hinunter zur Virtualisierung von Ressourcen und zur Steuerung von Bare Metal-Servern geht, hält ihnen der Cloud-Dienstleister ihrer Wahl den Rücken frei für andere Tätigkeiten.

Alles, was vom IT-Team noch zur Verwaltung der Fachanwendungen orchestriert werden muss, sind die vom Provider bereitgestellten Funktionen. Diese werden bei Bedarf in einem spezifischen Kontext gestartet und rufen eine Geschäftslogik oder einen beliebigen anderen Backend-Dienst auf. In Verbindung mit dem Service-basierten Betrieb von Infrastrukturen, Plattformen, Software und Backends schließen Serverless und FaaS nun eine weitere, entscheidende Lücke zu (annähernd) administrationsfreien Cloud-Umgebungen. Ein Ansatz, der zahlreiche Vorteile sowohl im operativen Betrieb als auch im Finanzhaushalt mit sich bringen kann. Da Unternehmen mit Serverless allerdings auch einiges an Kontrolle über ihre IT-Infrastruktur abgeben, sollten sie auf ein fortlaufendes Monitoring auf keinen Fall verzichten – so bleiben ihnen böse Überraschungen, zum Beispiel bei der Abrechnung dieser Infrastrukturdienstleistung, erspart.

Freier Rücken für Admins

Etwas zugespitzt lassen sich die Vorteile mit zwei Fragen auf den Punkt bringen: Wer will für seine Anwendungen noch Server orchestrieren, wenn er sich stattdessen unkompliziert Dienste zunutze machen kann? Und: Wieso den Cloud-Anbieter für Leerlaufzeiten bezahlen, wenn es auch anders geht.

Wer auf FaaS-Dienste zugreift, der muss die vollständige Verwaltung sowie Server- und Betriebssystemwartungen nicht mehr selbst ausführen, sondern kann sich auf die Umsetzung der fachlich relevanten Anforderungen konzentrieren. Dieses Prinzip unterscheidet sich auf den ersten Blick kaum vom Platform-as-a-Service-Modell. Es gibt allerdings einen bedeutenden Unterschied: Bei PaaS müssen die IT-Teams innerhalb des Programmcodes mit den APIs der Plattform interagieren und die Computing-Ressourcen manuell steuern. Damit sollen im Bedarfsfall die notwendige Skalierbarkeit und Ausfallsicherheit der Anwendung gewährleistet werden.

In einer Serverless-Umgebung kümmert sich der Cloud-Provider um die bedarfsgerechte Bereitstellung aller notwendigen Ressourcen sowie deren Skalierung und stellt so die Performance von Anwendungen sicher. Maßnahmen, die wie die Skalierung der Server-Infrastruktur, des Speichers, des Netzwerks und weiterer Ressourcen für ein effizientes Kapazitätsmaßmanagement unerlässlich sind, erfolgen automatisch – und stellen damit eine echte Entlastung für Programmierer und Entwicklerteams dar. Für Dev- und Admin-Teams, die sich mit der Implementierung und Verwaltung anwendungsrelevanter, fachlicher Module auf das Wesentliche konzentrieren können, resultieren Serverless und FaaS also in einem Zugewinn an Ressourcen, die sie anderweitig besser einsetzen können.

Sichtbare Kostenreduzierung durch Pay-per-Use

Während die Entlastung personeller Ressourcen nur indirekt und vor allem über einen mittelfristigen Zeitraum sichtbar ist, machen sich die Bezahlmodelle für FaaS-Dienstleistungen direkt bemerkbar. Da Serverless-Provider „pro Use“ abrechnen, schlägt nur der tatsächliche Nutzen, also reale Operationen, in denen tatsächlich Code verarbeitet wird, zu Buche. Die zugrundeliegenden Server laufen nicht dauerhaft und unabhängig von ihrer Auslastung – entsprechend fallen keine Kosten für Leerlauf an. Hier zeichnet sich ein weiterer, markanter Unterschied zu PaaS-Modellen ab, generieren diese doch auch im Stand-by-Modus Kosten.

Um sicherzugehen, dass Kostenbilanz eines serverlosen FaaS-Dienstes tatsächlich den Erwartungen entspricht, sollte allerdings fortlaufend überwacht werden, ob das Processing von Code und Funktionen tatsächlich den Anforderungen an die Gesamtperformance der Anwendungslandschaft entspricht. Ist die Latenz an einigen Stellen zu hoch, stellen sich niedrige Kosten gleich in einem weniger positiven Licht dar. Auf eine Überwachung der Anwendungsperformance (Workflow- und Request-Monitoring) sollten Unternehmen deshalb auch dann nicht verzichten, wenn sie ihre Anwendungen in Serverless-Umgebungen betreiben wollen.

Mangel an Standards kann zu Lock-in führen

Bei allen Vorteilen: Unternehmen geben einiges an Kontrolle ab, wenn sie ihre operative IT-Infrastruktur in die Hände eines Serverless-Providers geben. So haben Entwickler beispielsweise nicht mehr ohne Weiteres die Möglichkeit, auf eine virtuelle Maschine zuzugreifen, Änderungen am Betriebssystem oder der Laufzeitumgebung vorzunehmen. Ebenso kritisch ist die Gefahr eines Vendor-Lock-Ins.

Da es momentan noch keinen allgemeinen Standard für FaaS-Dienste gibt, unterliegen Angebote wie Azure Functions, AWS Lambda oder Google Cloud Functions alle unterschiedlichen Entwicklungsprinzipien, ihre Struktur ist proprietär. Andererseits ist es rein rechnerisch durchaus denkbar, dass selbst der mehrfache Umzug aller Anwendungsmodule, also der gesamten Fachlichkeit, auf eine andere Cloud-Plattform schneller und günstiger abläuft, als das gesamte Backend proprietär selbst zu entwickeln und zu betreiben. Es gilt also abzuwägen, ob die potenzielle Kostenreduzierung die Nachteile von FaaS wieder aufwiegt oder zumindest einen wirtschaftlich vertretbaren Rahmen schafft. Die Themen Vendor-Lock-In, Migrierbarkeit und Interoperabilität sollten deshalb bei der Entscheidung für eine Serverless-Umgebung durchaus mit in die Waagschale fallen.

Effizienz im Blick behalten

Es wurde bereits vorab deutlich, dass die Kosten-Nutzen-Relation bei allen Vor- und Nachteilen von Serverless stets das entscheidende Zünglein an der Waage ist. Deshalb kommen Systemadministratoren auch in Serverless-Umgebungen nicht umhin, die Effizienz des gebuchten FaaS-Dienstes zu überwachen. Ohne Daten, die Rückschlüsse auf operationale Kennzahlen wie Anfragetakt und -anzahl, Fehler, Latenzzeiten, Logs und Anfrage-Traces liefern, können keine Aussagen darüber getroffen werden, ob die neue IT-Strategie den Geschäftszielen des Unternehmens gerecht wird.

Die Analyse dieser Kennzahlen ist wichtig, um sicherzugehen, dass der gebuchte FaaS-Dienst auch tatsächlich hält, was er verspricht. Arbeitet die die Cloud-Infrastruktur hinter den Funktionen und Anwendungen tatsächlich alle Requests mit der Geschwindigkeit ab, die für einen effizienten Betrieb der fachlichen Prozesse erforderlich ist? Erfolgt die Skalierung latenzfrei und bedarfsgerecht? Im Sinne eines übergreifenden Service Provisioning-Controllings sollten Monitoring-Instrumente zuverlässig Antworten auf diese Fragen liefern – schließlich müssen die Workflows auch in einem Pay-per-Use-Modell performant erfolgen, um wirtschaftlich zu sein.

Traces und Spans legen Abhängigkeiten offen

Die zeitliche Achse, auf der Funktionen zur Anwendungssteuerung getriggert und ausgeführt werden, wird während des Monitorings quasi als lineare Einheit betrachtet und nennt sich „Trace“ – etwa zu übersetzen mit „Nachverfolgungspur“. Jede einzelne Anfrage an einen notwendigen Service innerhalb dieser Trace nennt sich „Span“ – der Begriff beschreibt die Spanne zwischen Anfrageversand durch die Anwendung und Request-Annahme durch einen Service. Eine intelligente Monitoring-Lösung sollte deshalb Funktionen zum verteilten Tracing bereitstellen, um sämtliche Ausführungspfade jedweder Anfrage sichtbar zu machen. Damit wird auch innerhalb Serverless administrierter Umgebungen eine hohe Transparenz erzeugt, wenn es um die Sichtbarkeit von Prozessen und Workflows zwischen Funktionen, Services und Anwendungen geht. Darüber hinaus werden für jedes Anwendungsmodul detaillierte Performance-Kennzahlen erfasst und ausgewertet.

Quelle: Datadog

Ganzheitliche Sicht ist essentiell

Neben dem Blick auf die „unsichtbaren“ Abläufe hinter der Funktionsbereitstellung muss das IT-Team allerdings auch die Auswirkungen der funktionsbasierten Prozesse auf die Gesamtperformance der Anwendungen im Blick behalten. Insbesondere vor dem Hintergrund, dass zahlreiche Unternehmen nicht ausschließlich auf homogene FaaS-Strukturen setzen, sondern hybride Multiplattform-Konzepte etabliert haben, die zum Beispiel auch PaaS und Containerisierung einbeziehen.

Mit jeder Anwendung, die quasi server-los bereitgestellt wird, steigt die Komplexität des Monitorings – insbesondere in den heterogenen Landschaften, die unterschiedliche Konzepte vereinen. Hier müssen Trigger und Ausführung von Funktionen im Blick behalten und ausgewertet werden, um abschätzen zu können, ob etwaige Probleme in der Bereitstellungsinfrastruktur verankert oder vielleicht doch ein Fehler innerhalb eines Applikationsservice sind. Im Sinne der DevOps-Philosophie, die Anwendungsentwicklung und operative Bereitstellung in ihren Abhängigkeiten betrachtet, kann also auch bei Serverless-Ansätzen nicht vollständig auf eine Beobachtung des Gesamtsystems verzichtet werden.

FaaS-Performance muss auf einen Klick sichtbar sein

Eine ausgereifte Visualisierung ist ein wichtiges Stichwort, wenn es um die Wahl eines Monitoring-Tools in Serverless-Umgebungen geht. So sollte die gewählte Lösung zum Beispiel den Blick auf sämtliche Funktionen zulassen, sinnvoller Weise in einer übersichtlichen Service-Landkarte. Wer einzelne Funktionen in Service-Gruppen zusammenfassen kann, verschafft sich schnell einen Eindruck davon, wie diese mit Datenbanken, Anfragen und Message Queues interagieren.

Kluge Monitoring-Lösungen bieten sogar den Abgleich mit anderen Services, die auf traditionellen On-Premise-Infrastrukturen oder in Container-basierten Umgebungen wie EC2, Kubernetes und ECS laufen. Interaktive Service Maps zeigen beim Klick auf eine FaaS-Funktion oder einen spezifischen Service dessen Beziehungen und Abhängigkeiten innerhalb der Serverless-Landschaft auf. Zudem sollten tieferliegende Details wie Logs, Traces und natürlich die definierten Kennzahlen ersichtlich werden und treffsichere Aussagen über die Effektivität und Performance von Anwendungsprozessen zulassen. Alert-Funktionen, die bei Risiken für die Systemgesundheit automatisiert Warnmeldungen liefern, unterstützen Admins ebenfalls bei der Verwaltung von Serverless-Umgebungen. Hier ist ebenfalls darauf zu achten, dass die gewählte Lösung eine durchdachte, auf einen Blick verständliche Visualisierung leisten kann.

Quelle: Datadog

Latenz-Monitoring liefert aussagekräftige Kennzahlen

Um einen Eindruck in die Performance der zugrundeliegenden Funktionen zu bekommen, nutzen Systementwickler und -administratoren gerne Kennzahlen, mit denen sie die Anfragelatenz (request latency) ihrer Anwendungen messen. Diese Kennzahlen bewegen sich in der Regel im Bereich von p90, p95 oder sogar p99 – das bedeutet im Klartext, dass mindestens 90, 95 oder 99 Prozent der Anfragen oberhalb einer fest definierten Latenz liegen, also keine nennenswerte Verzögerung aufzeigen. Zusammen mit weiteren Analysedaten wie beispielsweise der Anzahl der Aufrufe, Fehler, Zeitüberschreitungen oder auch Beschränkungen in der parallelen Verarbeitung von Anfragen ergibt sich ein aussagekräftiges Bild über die Gesundheit und Leistungsfähigkeit von Serverless-Funktionen und -Services.

In Kombination mit Trace-Analysen können Performance-Probleme sogar bis hinunter auf die Ebene einzelner Aufrufe nachverfolgt werden. Damit können Entwickler und -Administratoren Aussagen darüber treffen, in welchen Fällen Performance-Probleme der Anwendung selbst zuzuschreiben sind und wann der Cloud-Anbieter in der Pflicht ist, eine Problembehebung auf Seiten der bereitgestellten Infrastruktur vorzunehmen.

Unternehmen, die auf Serverless setzen, haben gute Karten, ihre Anwendungen flexibler, näher am Kerngeschäft und letztlich auch zu geringeren Kosten zu betreiben. Wie bei allen Innovationen, so bringt auch Serverless einige Risiken mit sich, die bei der Implementierung dieser Bereitstellungsmethode berücksichtigt werden sollten – die mit einem übergreifenden und exakten Monitoring allerdings ebenso gut unter Kontrolle gehalten werden können.

Geschrieben von
Stefan Marx

Stefan Marx ist Director Product Management für die EMEA-Region beim Cloud-Monitoring-Anbieter Datadog. Marx ist seit über 20 Jahren in der IT-Entwicklung und -Beratung tätig. In den vergangenen Jahren arbeitete er mit verschiedenen Architekturen und Techniken wie Java Enterprise Systemen und spezialisierten Webanwendungen. Seine Tätigkeitsschwerpunkte liegen in der Planung, dem Aufbau und dem Betrieb der Anwendungen mit Blick auf die Anforderungen und Problemstellungen hinter den konkreten IT-Projekten.

Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: