Über unsMediaKontaktImpressum
Alex Rosemblat 20. März 2018

Cloud-Monitoring: Analyse- und Vorhersageverfahren

Cloud-Computing bedeutete für die IT den Schritt in eine neue Ära. Nie konnten Unternehmen ihren Kunden besser und schneller einen direkten Mehrwert liefern. Und dabei ist es gar nicht lange her, dass die IT "nur" eine unterstützende Rolle für das Geschäft hatte. Heute ist die IT der Treiber des Geschäftserfolgs. Und die IT-Verantwortlichen? Sie haben plötzlich die Möglichkeit, massive Neuerungen voranzutreiben, die sich direkt auf das eigene Unternehmen, Geschäftsmodelle oder die Art und Weise, Umsatz zu generieren auswirken. Nicht selten getrieben durch die Cloud, bringen diese Neuerungen jedoch auch neue Herausforderungen für die IT-Infrastruktur mit sich.

Neue Denkmuster

Der Aufbau einer modernen Cloud-Plattform – ganz gleich ob öffentlich, privat oder hybrid – lässt Unternehmen jeder Größe einen schnelleren Service anbieten; intern genauso wie extern dem Kunden. Methodische Kapazitätsplanung und manuelle Infrastruktur-Updates machen den Weg frei für automatisch skalierende und von Dienstleistern verwaltete Infrastrukturen, die Entwickler- und Operations-Teams Luft für den Fokus auf gewinnbringende Geschäftsziele verschaffen. Starre Dienstleister-Suites weichen modularen, individuell anpassbaren Best-of-Breed-Technologie-Stacks, bestehend aus gehosteten Cloud-Services und Open Source-Softwarekomponenten. Und langsame, manuelle, fehleranfällige Entwicklungsprozesse werden ersetzt durch automatisierte Build-Test-Deploy-Zyklen in einem API-zentrierten Cloud-Universum.

Aus der Cloud ist viel mehr geworden, als "nur" eine neue, bessere Technologieplattform. Sie ist ein Ort des kulturellen und prozessualen Wandels geworden. Sie ist Nährboden für die aktuelle Entwicklerkultur und dessen agile Methoden. Software-definierte Infrastruktur und Plattformen, zu denen sich der Nutzer selbst anmelden und ohne großen Konfigurationsaufwand loslegen kann, erlauben es uns, viel mehr mit neuen Technologien zu experimentieren und diese kennenzulernen. Sie ermöglichen aber auch eine schnellere Anpassung an neue Marktgegebenheiten oder Kundenpräferenzen, um genau die Multi-Plattform- und "Always-on"-Dienste zu liefern, die Nutzer heute erwarten.

Neuer Blickwinkel

Mit dem Wandel, den die Cloud weiterhin mit sich bringt – technisch, kulturell und prozessual – machen viele der bewährten Verfahren, wie wir IT-Projekte verwalten, monitoren oder am Laufen halten, oftmals keinen Sinn mehr. Wer die Vorteile moderner Cloud-Infrastrukturen nutzen möchte, muss auch das Management und Monitoring neu denken. Nur so kann mit dem Tempo mitgehalten, der Anspruch, dass jede Komponente in einem heterogenen Cloud-Stack richtig performt, gewahrt und die Kosten unter Kontrolle gehalten werden.

Der Druck auf die IT wächst, denn die Cloud ist auch ein großer Gleichmacher.

Setzt ein Unternehmen auf die Cloud, sollte die IT unmittelbar entsprechende Kennzahlen mitmessen, um zu überprüfen, wie effektiv sich der Wechsel auf das Unternehmen auswirkt. Ähnlich wie Boris Beckers "Bin ich schon drin?" hat sich auch "Wir sind jetzt in der Cloud" längst zu einem geflügelten Schlagwort entwickelt. Aber mit dem Wechsel von der einen auf die andere Plattform alleine ist es nicht getan. Klar, einzelne Anwendungskomponenten können nach dem Motto "Lift and Shift" von On-Premise-Hardware auf Cloud-Server geladen werden, während die bestehenden Werkzeuge und Prozesse für die Anwendung weiter Bestand haben. Doch kann damit oft nur ein Bruchteil der Möglichkeiten und Kapazitäten ausgeschöpft werden. Und auch wenn hier erste Anpassungen vorgenommen worden sind, so müssen IT-Verantwortliche stets einen Blick darauf haben, wo weitere Stellschrauben zu finden sind, um Durchlauf- und Entwicklungszeiten zu verkürzen oder mehr neue Projekte anstoßen zu können.

Neue Chancengleichheit

Jeder IT-Manager sollte mehr noch als bisher das Ziel haben, sein Unternehmen entsprechend der Möglichkeiten zum Marktführer in seiner Branche zu entwickeln. Der Druck auf die IT wächst, denn die Cloud ist auch ein großer Gleichmacher. Sie macht keine Unterschiede, sondern bietet jedem Unternehmen und jedem Entwickler die gleiche Ausgangsposition. Wer daher nicht kontinuierlich sein Bestes gibt, sich so schnell und effektiv wie möglich aufzustellen, der läuft dauerhaft Gefahr, dass andere Unternehmen – ganz gleich ob Start-up oder etablierter Konzern – schneller sind und sich einen Wettbewerbsvorteil erarbeiten. Wer sich auf seinen Lorbeeren der Vergangenheit ausruht, wird schnell überholt. Das galt in der Geschäftswelt zwar schon immer, hat durch den "Chancengleichmacher Cloud" aber eine neue Dynamik und kann nicht mehr binnen Jahren, sondern Wochen der Fall sein.

Neue Perspektiven

Jedes Cloud-Projekt jenseits von Shift-and-Lift bestehender Anwendungen geht mit neuen Technologien und neuen Komplexitäten einher. Gerade große, etablierte Unternehmen verlassen damit oft die vertraute Umgebung einer All-Inclusive-Suite und betreten eine heterogene Welt aus Open Source-Ökosystemen, verschiedenen Cloud-Anbietern und anderen Dienstleistern.

Die Verwaltung eines komplexen Gefüges heterogener Services ist mit einem einzigen Altsystem kaum möglich. So öffnet man Tür und Tor für Performance-Probleme, die unentdeckt bleiben und die IT-Kollegen dazu zwingen, Löcher ad hoc zu stopfen und Probleme nur dann zu anzugehen, wenn sie auftauchen, nicht jedoch bevor diese überhaupt eintreten. Und obwohl gerade die großen Cloud-Anbieter leistungsstarke Konsolen und Management-Tools für ihre gehosteten Services anbieten, so versagen diese doch allzu oft bei der nahtlosen Integration von Open Source-Lösungen, die zunehmend hinter dem Erfolg von Unternehmen am Markt stehen. Verwaltungs- und Monitoring-Tools sollten daher stets die Breite des Cloud-Ökosystems abdecken und auch zukünftige Entwicklungen berücksichtigen können.

Zum Glück hat die Cloud-Revolution auch den Markt für Monitoring-, Management- und Analyse-Lösungen befruchtet. Mit Infrastructure-as-a-Code-Frameworks, so wie etwa Terraform, können Anwender Cloud-Ressourcen zum Beispiel sicher und nachvollziehbar vorhalten, modifizieren und verwalten. Und weil Terraform Open Source, erweiterbar und Plattform-agnostisch ist, passt es sich natürlich an sich entwickelnde Infrastrukturen an – ganz gleich, ob einzelne Komponenten ausgetauscht werden oder einzelne Anwendungen von einem Cloud-Provider zu einem anderen geschoben werden.

Ähnlich verhält es sich beim Monitoring, dass mit dynamisch skalierenden, sich schnell wandelnden Infrastrukturen mithält. Durch die Integration einer Vielzahl an Cloud-Services und Infrastruktur-Technologien sowie die Möglichkeit, auch Nischentechnologien über individuelle Integrationen anzubinden, wird es überhaupt erst möglich, die Performance und Nutzung jeder einzelnen Komponente einer modernen Cloud-Umgebung im Blick zu behalten.

Neue Datenkenntnis

Monitoringdaten kommen in den verschiedensten Formen und Varianten daher – manche Systeme liefern laufend neue Datenpunkte, andere nur dann, wenn seltene Ereignisse eintreten. Manche Daten eignen sich besonders, um auf Probleme hinzuweisen, andere um diese zu untersuchen. In jedem Fall liefern sie jedoch einen Einblick in das Innenleben der Systeme.

Die Kennzahlen erfassen dabei zunächst einmal einen Ist-Zustand zu einem bestimmten Zeitpunkt, etwa die Anzahl der User, die in einer Web-Applikation eingeloggt sind. Neben verschiedenen Werten, wie dem Zugriff auf gecachte Inhalte oder Datenbanksperren, können die Kennzahlen, die Cloud-Nutzer im Blick haben sollten, grob in Arbeits- und Ressourcenkennzahlen unterteilt werden:

Arbeitskennzahlen (die sogenannten "Work Metrics") sind für den Gesamtüberblick extrem wichtig. Es handelt sich dabei um übergeordnete Datensätze, die eine schnelle Antwort liefern sollen, ob das System funktioniert, wie es soll, und ob Geschwindigkeit sowie Qualität stimmen. So hält der Durchsatz (Throughput) die Last nach, die das System innerhalb eines bestimmten Zeitfensters abarbeitet. Erfolgskennzahlen (Success) messen die erfolgreich ausgeführten Anwendungen und liefern oft einen Prozentsatz. Fehler (Error) halten nach, wie viele fehlerhafte Ergebnisse – oft in einem bestimmten Zeitfenster – vorkommen. Da Fehler verschiedene Gründe haben können und einige schwerwiegender sind als andere, wird dieser Wert oft separat von Erfolgskennzahlen getrackt. Performancekennzahlen quantifizieren, wie effizient eine Komponente arbeitet, etwa im Hinblick auf die Latenz.

Beispiel Arbeitskennzahlen: Web Server

Subtype Description Value
throughput requests per second 312
success percentage of responses that are 2xx since last measurement 99.1
error percentage of responses that are 5xx since last measurement 0.1
performance 90th percentile response time in seconds 0.4
throughput queries per second 949
success percentage of queries successfully executed since last measurement 100
error percentage of queries yielding exceptions since last measurement  
error percentage of queries returning stale data since last measurement 4.2
performance 90th percentile query time in seconds 0.02

Die meisten Komponenten innerhalb der Systeminfrastruktur dienen als Ressource für andere Systeme. Von Serverressourcen, inklusive physischen Komponenten wie CPU, Speicherplatz, Disks oder Netzwerkverbindungen, bis hin zu Datenbanken oder Geolocation Microservices kann dies alles umfassen. Ressourcenkennzahlen (Resource Metrics) können dabei helfen, einen detaillierten Blick auf das System zu werfen und vor allem auch Probleme zu untersuchen oder zu diagnostizieren. Nutzungskennzahlen (Utilization) zeigen dabei anteilig, wie oft oder wie viel eine bestimmte Ressource genutzt wird. Die Sättigung (Saturation) zeigt, wie viele Anfragen eine Ressource nicht direkt bedienen kann. Fehler (Errors) zeigen auch hier, wo es hakt. Und die Verfügbarkeit (Availability) zeigt, wie oft eine Ressource auf eine Anfrage reagiert hat beziehungsweise hätte reagieren können.

Beispiel Ressourcenkennzahlen

Resource Utilization Saturation Errors Availability
Disk IO % time that device was busy wait queue length # device errors % time writable
Memory % of total memory capacity in use swap usage N/A (not usually observable) N/A
Microservice average % time each request-servicing thread was busy # enqueued requests # internal errors such as caught exceptions % time service is reachable
Database average % time each connection was busy # enqueued queries # internal errors, e.g. replication errors % time database is reachable

Bei Kennzahlen gilt, ist man sich unsicher, ob ein bestimmter Wert von Bedeutung ist, sollte er zumindest testweise einmal mitgetrackt werden. Neben den Zahlen aus dem laufenden Betrieb sollten aber auch seltene oder singuläre Ereignisse (Events) gemonitort werden, um besser zu verstehen, was sich möglicherweise im System geändert hat. Hier kommen vor allem folgende Events infrage:

  • Veränderungen: Interne Code Releases, die Einführung neuer Technologie oder auch Fehlermeldungen.
  • Störmeldungen: Interne Alerts oder solche aus Drittanwendungen.
  • Skalierung: Hinzufügen oder Entfernen von Hosts.

Anders als einzelne Datenpunkte, die ohne Kontext oft wenig aussagekräftig sind, bringt ein Event in der Regel genug Informationen mit, um für sich interpretiert werden zu können. Sie halten fest, was zu einem bestimmten Zeitpunkt passiert ist und liefern dazu weitere Informationen. Sie können für sich – ebenso wie die einzelnen Kennzahlen natürlich auch – genutzt werden, um einen Alert auszulösen – etwa, wenn ein systemkritischer Prozess nicht funktioniert hat.

Beispiel Events

Was ist passiert Uhrzeit Zusätzliche Informationen
Hotfix f464bfe released to production 2018–02–15 04:13:25 UTC Time elapsed: 1.2 seconds
Pull request 1630 merged 2018–02–19 14:22:20 UTC Commits: ea720d6
Nightly data rollup failed 2018–02–27 00:03:18 UTC Link to logs of failed job

Die Daten, die über das Cloud-System hinweg gesammelt werden, sollten folgende Charakteristika aufweisen:

  • Verständlichkeit: Es sollte für den Anwender schnell ersichtlich sein, welchen Wert er vor sich hat, wie er zustande kommt und was er aussagt. Gerade bei einem Ausfall sollte keine Zeit damit verschwendet werden müssen, herauszufinden, was eine Zahl bedeutet. Kennzahlen und Events sollten daher so einfach und verständlich wie möglich sein. Vor allem sollten sie klar benannt sein!
  • Granularität: Werden Kennzahlen zu unregelmäßig erhoben oder Durchschnittswerte auf einen zu langen Zeitraum gezogen, fällt es oft schwer, das Systemverhalten genau nachzuvollziehen. Zu kurze Zeitfenster oder zu oft erhobene Datenpunkte können aber auch unübersichtlich werden und das System eher fluten. Hier gilt, den richtigen Mittelweg zu finden, welcher den optimalen Einblick liefert. Gleiches gilt für den Geltungsbereich. Die Gesamtproduktivität eines Service mag genauso interessant sein, wie seine Produktivität auf einem bestimmten Host.
  • Langlebig: Wer Daten zu schnell verwirft oder diese für Speicheroptimierung aggregiert, der verliert damit auch Informationen über die Vergangenheit. Wer Rohdaten für ein Jahr oder länger sichert, der versteht viel besser, was "normaler Betrieb" bedeutet – insbesondere, wenn es monatliche, saisonale oder jährliche Abweichungen gibt.

Beispiel Alerts und Diagnose

Datensatz Alert Trigger
Work metric: Throughput Page value is much higher or lower than usual, or there is an anomalous rate of change
Work metric: Success Page the percentage of work that is successfully processed drops below a threshold
Work metric: Errors Page the error rate exceeds a threshold
Work metric: Performance Page work takes too long to complete (e.g., performance violates internal SLA)
Resource metric: Utilization Notification approaching critical resource limit (e.g., free disk space drops below a threshold)
Resource metric: Saturation Record number of waiting processes exceeds a threshold
Resource metric: Errors Record number of errors during a fixed period exceeds a threshold
Resource metric: Availability Record the resource is unavailable for a percentage of time that exceeds a threshold
Event: Work-related Page critical work that should have been completed is reported as incomplete or failed

Neue Vorhersagen

Mittlerweile bieten moderne Cloud-Monitoring-Umgebungen die Fähigkeit, mögliche Performance-Probleme oder Downtime- oder Performance-Risiken bereits Tage, Wochen oder sogar Monate vorherzusagen. Die Vorhersagealgorithmen machen dabei Gebrauch von Machine Learning-Technologie, um die Entwicklung einer Metrik kontinuierlich bewerten zu können. Das Analyseverfahren kann beispielsweise konkrete Zeiträume erfassen, in denen vermehrte Kundenzugriffe auf der Website verursacht werden, und diese auch für zukünftige Lastspitzen vorhersagen. Nutzer können dann beispielsweise auf einen Blick erkennen, an welchen Tagen sie Serverkapazitäten oder sogar ihren physischen Kundenservice aufstocken müssen.

Wer in die Cloud geht, der darf nicht erwarten, dass all seine bestehende Software diese Reise auch mitgehen kann.

Und ganz egal ob es saisonale Schwankungen gibt, Grundlinien-Verschiebungen oder sonstige unvorhersehbare Entwicklungen, je mehr Daten zur Verfügung stehen, desto genauer wird die Einschätzung des bevorstehenden Problems. Die eigenen Daten bieten in diesem Fall jedoch nur eine Teilprognose. Schließlich kann auf ihrer Basis kaum mehr als eine tendenzielle Weiterentwicklung bisheriger Verlaufszahlen prognostiziert werden. Spannend wird es, wenn mithilfe des entsprechenden Anbieters anonymisierte Daten aus einem breiten Netzwerk zur Hilfe herangezogen werden. Damit vervielfacht sich die Datenbasis schnell um das Tausendfache – wenn nicht sogar noch mehr – und die Prognosen werden immer feingranularer.

Neue Kostenkontrolle

Durch schier endlose Skalierbarkeit und DIY-Natur der Cloud können Entwickler- und Operations-Teams neue Services schnell bauen und ausrollen. Auf der anderen Seite kann es aber auch zu einer Infrastruktur führen, die im wahrsten Sinne vermüllt ist mit redundanten sowie kaum oder gar nicht mehr genutzten Komponenten. Im Vergleich zu den relativ fixen Kosten eines Rechenzentrumbetriebs gibt es bei Cloud-Services kaum Grenzen nach oben. Ohne die richtigen Sicherheitsvorkehrungen kann die monatliche Servicerechnung des Cloud-Providers da schon schnell mal einige hundert oder tausend Euro – oder in großen Umgebungen sogar mehr – ausmachen.

Verschiedene Lösungen für das Tracken, die Vorhersage und die Optimierung der Cloud-Nutzung und -kosten sind daher sicher nicht ohne Grund in den letzten Jahren entstanden. Dienste wie CloudHealth Technologies und CloudCheckr helfen Unternehmen dabei, die Kosten ihrer Cloud-Infrastruktur zu verstehen und zu kontrollieren. Dabei bieten sie gleichzeitig automatische Analysen an und sprechen Optimierungs- und Umfangsempfehlungen aus.

Neuer Durchblick

In den letzten Jahren haben wir einen drastischen Wandel in der Akzeptanz von Cloud-Lösungen erlebt. Selbst in den risikoscheuesten Branchen wurden signifikante Cloud-Investitionen getätigt. Das Potenzial der Cloud, Innovationen schneller voranzutreiben und auf Marktveränderungen zu reagieren, schafft ganz neue Möglichkeiten, einen Wettbewerbsvorsprung zu halten und auszubauen, oder vielleicht auch erstmal Lücken zu Wettbewerber zu schließen.

Wer jedoch in die Cloud geht – egal ob zum ersten Mal oder mit Komponenten, die bislang noch on-Premise liefen – der darf nicht erwarten, dass all seine bestehende Software für Entwicklung, Anwendungssupport und -management oder Monitoring diese Reise auch mitgehen kann.

Autor

Alex Rosemblat

Alex Rosemblat ist Vice President bei Datadog und sammelte mehrere Jahre Berufserfahrung in den Bereichen Unternehmenssoftware, Produktmanagement, IT-Beratung und Pre-Sales-Engineering.
>> Weiterlesen
Das könnte Sie auch interessieren
botMessage_toctoc_comments_9210