Über unsMediaKontaktImpressum
Stefan Marx 22. Oktober 2019

Serverless-Potenzial hängt von der Systemgesundheit ab

Einst kaum mehr als ein Buzzword, mausert sich Serverless mehr und mehr zur ernstzunehmenden Alternative: Function-as-a-Service (FaaS) heißt das Zauberwort mit dem Unternehmen mit geringeren Kosten und einfachem Anwendungsmanagement zunehmend traditionelle Ansätze hinter sich lassen. Damit dies gelingt, müssen Administratoren ihre Serverless-Umgebung jedoch stets im Auge behalten. Ein umfassendes Monitoring ist unerlässlich.

Serverless-betriebene Anwendungslandschaften sind im Trend. Der Begriff "Serverless" wird in diesem Kontext jedoch teils missverständlich aufgefasst. Schließlich geht es nicht um die vollständige Abschaffung von Systemhardware. Vielmehr geht es darum, eine neue Idee, Anwendungen und Apps zu managen, während Basisoperationen immer noch wie gewohnt ausgeführt werden. Heißt im Klartext: Bei Serverless wird die fachliche, anwendungsrelevante Ebene einer Systemarchitektur losgelöst von hardwarespezifischen Fragestellungen verwaltet. Die App-Manager kümmern sich dabei nur um die oberste Funktionsebene beziehungsweise den Service. Bereitstellungslogiken, bis hin zur Virtualisierung von Ressourcen und Steuerung von Servern, übernimmt der Cloud-Dienstleister und schafft dem App-Manager damit Luft für andere Tätigkeiten. Das IT-Team muss zur Verwaltung der Anwendungen nur noch die vom Provider bereitgestellten Funktionen orchestrieren. 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 servicebasierten Betrieb von Infrastrukturen, Plattformen, Software und Backends schließen Serverless und FaaS nun eine weitere, entscheidende Lücke zu administrationsfreien Cloud-Umgebungen. Die finanziellen und kapazitären Vorteile im operativen Betrieb liegen auf der Hand. Jedoch wird mit Serverless auch ein gehöriges Maß an Kontrolle über die eigene IT-Infrastruktur abgegeben. Damit hier der Überblick gewahrt werden kann, ist ein lückenloses Monitoring essenziell. Nur so können unliebsame Überraschungen, etwa bei der Abrechnung dieser Infrastrukturdienstleistung, erspart bleiben. 

Luft schaffen

Wer sich also unkomplizierte Dienste zu Nutze machen will, statt für seine Anwendungen noch selber Server zu orchestrieren, und wer nicht mehr für Leerlaufzeiten der Cloud-Anbieter bezahlen möchte, der findet in Serverless die Antwort. Mit FaaS-Diensten kann sich der Admin auf die Umsetzung der fachlich relevanten Anforderungen konzentrieren, während die vollständige Verwaltung sowie Server- und Betriebssystemwartungen übernommen werden.

Das Prinzip klingt zunächst stark nach Platform-as-a-Service (PaaS), 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, um im Bedarfsfall die notwendige Skalierbarkeit und Ausfallsicherheit der Anwendung zu gewährleistet. In Serverless-Umgebungen kümmert sich der Cloud-Provider um die bedarfsgerechte Bereitstellung aller notwendigen Ressourcen sowie deren Skalierung. Er stellt damit die Performance von Anwendungen sicher. Die Skalierung der Server-Infrastruktur, des Speichers, des Netzwerks und weiterer unerlässlicher Ressourcen für ein effizientes Kapazitätsmaßmanagement erfolgen automatisch. Serverless stellt damit einen wirklichen Zugewinn an Ressourcen und eine echte Entlastung für Programmierer und Entwicklerteams dar.

Pay-per-Use spart Kosten

Während die personellen Entlastungen eher indirekt und vor allem mittelfristig sichtbar sind, machen sich die FaaS-Bezahlmodelle direkt bemerkbar. Anders als bei den Stand-by-Kosten in PaaS-Modellen rechnen Serverless-Provider pro Use ab. Es schlägt nur der tatsächliche Nutzen, also reale Operationen, in denen tatsächlich Code verarbeitet wird, zu Buche. Die Server laufen nicht dauerhaft und unabhängig von ihrer Auslastung – entsprechend entstehen keine Kosten im Leerlauf. Dennoch empfiehlt es sich, die Kostenbilanz eines serverlosen FaaS-Dienstes ebenso wie die Anwendungsperformance (Workflow- und Request-Monitoring) fortlaufend zu überwachen, um sicherzustellen, dass das bezahlte Processing von Code und Funktionen tatsächlich den Anforderungen an die Gesamtperformance der Anwendungslandschaft entspricht. Eine zu hohe Latenz stellt niedrige Kosten gleich in ein weniger positives Licht.

Lock-In vermeiden

Wird die operative IT-Infrastruktur in die Hände eines Serverless-Providers gegeben, wird natürlich auch Kontrolle aus der Hand gegeben. Zugriff auf virtuelle Maschinen ist für Entwickler nicht mehr ohne weiteres möglich. Ebenso wenig Änderungen am Betriebssystem oder der Laufzeitumgebung. Und auch der Vendor-Lock-In ist eine reale Gefahr, da es momentan noch keinen allgemeinen Standard für FaaS-Dienste gibt. AWS Lambda, Azure Functions oder Google Cloud Functions: allen liegen unterschiedliche Entwicklungsprinzipien zugrunde, ihre Struktur ist zu oft proprietär. Klar, rein rechnerisch kann selbst der mehrfache Umzug aller Anwendungsmodule auf eine andere Cloud-Plattform schneller und günstiger ablaufen, als eine proprietäre Entwicklung und der Betrieb des gesamten Backends. Dennoch: Jedes Unternehmen muss sich im Klaren darüber sein, ob potenzielle Kostenreduzierung und Ressourcenfreischaffungen etwaige Nachteile von FaaS aufwiegen oder zumindest wirtschaftlich vertretbar machen. Die Bereiche Vendor-Lock-In, Migrationsfähigkeit und Interoperabilität müssen bei der Kosten-Nutzen-Abschätzung für eine Serverless-Umgebung zwingend mit einfließen.

Effizienz im Blick

Ist die Kosten-Nutzen-Relation bei allen Vor- und Nachteilen von Serverless also das Zünglein an der Waage, 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, ist es unmöglich auszumachen, ob die neue IT-Strategie den Geschäftszielen des Unternehmens gerecht wird. Nur so kann sichergestellt werden, dass der gebuchte FaaS-Dienst auch tatsächlich hält, was er verspricht. Arbeitet die Cloud-Infrastruktur hinter den Funktionen und Anwendungen also tatsächlich alle Requests mit der Geschwindigkeit ab, die für einen effizienten Betrieb der fachlichen Prozesse erforderlich ist? Erfolgt eine latenzfreie und bedarfsgerechte Skalierung? Im Sinne eines übergreifenden Service-Provisioning-Controllings sollten Monitoring-Instrumente zuverlässige Kennzahlen liefern, um sicherzustellen, dass die Workflows auch in einem Pay-per-Use-Modell performant und damit wirtschaftlich erfolgen.

Traces und Spans

Als "Trace" wird im Monitoring die lineare, zeitliche Achse bezeichnet, auf der Funktionen zur Anwendungssteuerung getriggert und ausgeführt werden. Jede einzelne Anfrage an einen notwendigen Service innerhalb dieser Traces nennt sich "Span". Hierbei handelt es sich um die Spanne zwischen Anfrageversand durch die Anwendung und Request-Annahme durch einen Service. Eine intelligente Monitoring-Lösung sollte Funktionen zum verteilten Tracing bereitstellen, um sämtliche Ausführungspfade jedweder Anfrage sichtbar zu machen. Damit wird auch innerhalb von serverless administrierten Umgebungen eine hohe Transparenz erzeugt, wenn es um die Sichtbarkeit von Prozessen und Workflows zwischen Funktionen, Services und Anwendungen geht. Für jedes Anwendungsmodul sollten zudem detaillierte Performance-Kennzahlen erfasst und ausgewertet werden.

360-Grad-Sicht

Mit dem Blick auf die "unsichtbaren" Abläufe hinter der Funktionsbereitstellung darf die IT jedoch nicht die Auswirkungen der funktionsbasierten Prozesse auf die Gesamtperformance der Anwendungen außer Acht lassen. Dies ist besonders wichtig, da heute kaum ein Unternehmen ausschließlich auf homogene FaaS-Strukturen setzt. Hybride Multiplattform-Konzepte, die zum Beispiel auch PaaS und Containerisierung einbeziehen, sind gelebte Wirklichkeit und werden es auch erstmal bleiben. Mit jeder Anwendung, die serverless bereitgestellt wird, steigt die Komplexität des Monitorings in Gänze – insbesondere aber in heterogenen Landschaften, die unterschiedliche Konzepte vereinen. Hier müssen Trigger und Ausführung von Funktionen im Blick behalten und ausgewertet werden. Nur so können etwaige in der Bereitstellungsinfrastruktur verankerte Probleme oder Fehler innerhalb eines Applikationsservice entdeckt werden. Im Sinne der DevOps-Philosophie kann demnach auch bei Serverless-Ansätzen nicht vollständig auf eine Beobachtung des Gesamtsystems verzichtet werden!

Ausgereifte Visualisierung

Die gewählte Monitoring-Lösung sollte den Blick auf sämtliche Funktionen zulassen, sinnvollerweise 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. Manche Lösungen bieten sogar den Abgleich mit anderen Services, die auf traditionellen On-Premise-Infrastrukturen oder in containerbasierten 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. Auch tieferliegende Details wie Logs, Traces und definierte Kennzahlen sollten in der Lösung ersichtlich sein 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. Das alles ist jedoch nichts wert, wenn die gewählte Lösung keine durchdachte und auf einen Blick verständliche Visualisierung leisten kann.

Eine Frage der Latenz

Kennzahlen, mit denen Systementwickler und -administratoren die Anfragelatenz (request latency) ihrer Anwendungen messen, sind Kernelemente der Performanceüberwachung. Diese Kennzahlen bewegen sich in der Regel im Bereich von p90, p95 oder sogar p99; mindestens 90, 95 oder 99 Prozent der Anfragen liegen also oberhalb einer fest definierten Latenz und es gibt nennenswerte Verzögerungen. Kommen nun weitere Analysedaten hinzu, wie die Anzahl der Aufrufe, Fehler, Zeitüberschreitungen oder auch Beschränkungen in der parallelen Verarbeitung von Anfragen, so ergibt sich ein aussagekräftiges Bild über die Gesundheit und Leistungsfähigkeit von Serverless-Funktionen und -Services. Gekreuzt mit einer Trace-Analyse können Performance-Probleme sogar bis hinunter auf die Ebene einzelner Aufrufe nachverfolgt werden. Sind Performance-Probleme also einer Anwendung selbst zuzuschreiben oder liegt das Problem beim Cloud-Anbieter? Nur wenn Entwickler und Administratoren die Antwort auf diese Frage kennen, wissen sie auch, auf welcher Seite der bereitgestellten Infrastruktur an der Problemlösung gearbeitet werden muss.

Wer auf Serverless setzt, kann Anwendungen näher am Kerngeschäft, flexibler und auch zu geringeren Kosten betreiben. Wie jede Innovation birgt aber auch Serverless gewisse Risiken. Ein übergreifendes und exaktes Monitoring kann jedoch dabei helfen, diese nachhaltig einzudämmen.

Autor

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.
>> Weiterlesen
Das könnte Sie auch interessieren
botMessage_toctoc_comments_9210