Steigende Komplexität der Cloud

Die Zukunft von Containern, Microservices und Serverless Computing

| Autor / Redakteur: Adam LaGreca* / Florian Karlstetter

Datadog bietet Monitoring in Echtzeit für hybride Cloud Anwendungen.
Datadog bietet Monitoring in Echtzeit für hybride Cloud Anwendungen. (Bild: Datadog)

Dynamische, flexible und individuelle Cloud-Umgebungen sind längst zum klaren Wettbewerbsfaktor für Unternehmen und ihre Services avanciert – und das nicht nur bei Digitalunternehmen aus dem Silicon Valley. Wer schnell und flexibel auf die Anforderungen und Wünsche seiner Kunden reagieren oder Dienste hoch- beziehungsweise runterskalieren will, der nimmt seine Entwickler- und Operation-Teams in die Pflicht.

Mit Container-Anwendungen, Microservices und dynamischen Infrastrukturen werden diese ihrer Aufgabe in puncto Effektivität gerecht. Nicht jedoch ohne Risiko entfesseln sie damit doch auch eine nie dagewesene Komplexität der zu verwaltenden Cloud-Infrastruktur.

Applikationen erstrecken sich heute oft über mehrere Clouds – teils als Backup – Internet of Things-Umgebungen, Container, Endgeräte und mehr. Um hier den Überblick zu behalten, müssen moderne Cloud-Monitoring-Lösungen mittlerweile bereits über 300 unterschiedliche Integrationen abdecken können. Tendenz steigend. Dass Zusammenspiel der einzelnen Metaebenen im Cloud-Gefüge ist dabei jedoch genauso von Bedeutung, wie jede Ebene, jeder Container oder jede Cloud für sich. Die ihren althergebrachten Legacy-Infrastrukturen in die Cloud zu schieben und gut? Längst ein Ding der Unmöglichkeit. Es entsteht eine neue Cloud-Kultur und das bedeutet im Gegenzug, dass wir es mit neuen Werkzeuge zu tun haben. Nur mit ihnen werden wir die ersehnte Effektivität moderner Technologien heben können.

Container – Das Leben in einer Box

Container-Technologien wie Packer, Shipyard oder CoreOS sind die Erfolgsgeschichte unter den Infrastruktur-Lösungen der letzten Jahre. Gerade Docker ist hier nach wie vor die bevorzugte Wahl. Tendenz weiter steigend. Mit der zunehmenden Adaption von Docker nimmt auch die Nutzung von Container-Orchestrierungstools zum effizienten Management der Container-Landschaft deutlich zu – bekanntestes Beispiel ist Kubernetes. Die aktuelle Dynamik rund um Tools wie Docker oder Kubernetes ist jedoch kein Startup-Phänomen. Auch große Konzerne setzen vermehrt auf Container-Technologie.

Dabei sind Container viel dynamischer als traditionelle, virtuelle Maschinen. Während des Betriebs einer Applikation auf einer virtuellen Maschine wird neben der Applikation selbst eine Reihe weiterer Ressourcen – wie notwendigen Bibliotheken, ein vollwertiges Betriebssystem und gegebenenfalls weitere Dienste – benötigt, was zu einem enormen Overhead und großen Abhängigkeiten führt. Ein Container hingegen umfasst nur die eigentliche Applikation sowie die dazugehörigen Abhängigkeiten. Er wird als isolierter Prozess auf dem Host-Betriebssystem ausgeführt und teilt sich – ermöglicht durch die strikte Trennung – den Linux Kernel mit anderen Containern. Für jeden Container lässt sich dabei exakt definieren, wie viele Ressourcen ihm zur Verfügung gestellt werden.

Das Leben eines Containers ist kurz. Jederzeit können sie im digitalen Nirwana verschwinden, denn sie sind dafür programmiert, jederzeit gestoppt und gelöscht werden zu können. Wenn dieser Zeitpunkt eintrifft, sind alle Daten, die im Leben des Containers angesammelt worden sind, standardmäßig gelöscht. Genauso schnell können Container aber auch binnen Millisekunden wiederhergestellt werden. Auf gewisse Weise sind Container also Einwegartikel – oftmals für Codes und Datenpipelines, die die Ausführung temporärer Befehle verlangen. Wobei ein Container natürlich auch ein langes und erfülltes Leben auf Applikation Servern, in Datenbanken oder für Web Services führen kann.

Ergänzendes zum Thema
 
Über Datadog

Die Lebenserwartung der Container wird derzeit jedoch von Orchestrierungstools wie Kubernetes weiter verkürzt, da sie von diesen bei Bedarf an- und ausgeschaltet werden. In Unternehmen, die Container wie Docker zusammen mit einem Orchestrator nutzen, beträgt die durchschnittliche Lebenserwartung des einzelnen Containers laut aktuellen Datadog-Untersuchungen mittlerweile weniger als einen Tag. Die geringere Lebenszeit und zunehmende Verdichtung der Container hat natürlich bedeutende Auswirkungen auf die Überwachung der Infrastruktur, steigt doch damit auch die Gesamtheit der individuell zu überwachenden Datenpunkte. Und: Werden die Container im Monitoring als Host bewertet, die von Minute zu Minute kommen und gehen, so herrscht schnell Tabula rasa. Sie gar nicht zu tracken ist aber auch keine Option, da das Monitoring sonst die Hälfte der Zeit im Blindflug unterwegs ist. Es bedarf daher rollenbasierter Lösungen, die in Ebenen und Tags arbeiten. Nur so ist der zunehmenden Verschachtelung noch Herr zu werden.

Microservices – Darf’s ein bisschen weniger sein?

Microservices treiben die Modularisierung von Applikationen effizient weiter voran. Dabei ist eine Anwendung als Service-Set aufgebaut. Jeder Service kann unabhängig voneinander entwickelt, getestet und skaliert werden. Und weil diese Microservices auch unabhängig voneinander deployed werden können, kann jede Technologie und Infrastruktur hierfür genutzt werden. Ganz flexibel und individuell und im kompletten Gegensatz zu monolithischen Applikationen, in denen alle Komponenten im selben Prozess und in derselben Infrastruktur laufen und hierbei nur dürftig voneinander isoliert sind. Skaliert ein Monolith, müssen alle Komponenten skaliert werden, ganz gleich, ob eine einzelne, isolierte Komponente vielleicht einen Engpass darstellt. Das frisst Ressourcen und ist schlichtweg ineffizient.

Natürlich muss nicht jede Anwendung in jedem Unternehmen in Microservices heruntergebrochen werden. Aber: Wo es Sinn macht, bieten sich hier gewaltige Vorteile in Bezug auf Unabhängigkeit und Vereinfachung der Softwareverteilung. Allein schon, weil im Verlauf der Prozesskette zwischen verschiedenen Technologien gewechselt werden kann. Sind die Services erst einmal effektiv getrennt und voneinander isoliert, kann eine schadhafte Komponente auch keinen Einfluss auf die gesamte Anwendung ausüben.

Auch hier entstehen jedoch neue Herausforderungen: Wenn jeder einzelne Service eine eigene Deployment Unit darstellt, samt eigenem Release, Tests und Monitoring, nimmt natürlich auch hier die Komplexität und Unübersichtlichkeit zu.

Serverless – Kein Server, kein Problem

Platform-as-a-Service (PaaS) Lösungen laufen nicht selten auf Stand-by. Meist für langfristige Server-Applikationen designt, werden hier Applikationen hoch oder runter skaliert en zu können, je nachdem, wie viele Anfragen reinkommen oder eben nicht. Die Verantwortung, Ressourcen für das Hoch- beziehungsweise Runterfahren jedoch entsprechend zuzuteilen, bleibt dabei ein manueller Prozess. Kommen keine Anfragen rein, herrscht Leerlauf. Diesem nimmt sich Serverless Computing an. Dabei startet eine Funktion dann, wenn eine Anfrage eingeht. Sie endet, sobald die Anfrage verarbeitet ist. Es gibt einen Code, nicht aber einen Server. Der Code wird als Reaktion auf bestimmte Events automatisch ausgeführt und ihm automatisch die notwendigen Rechenressourcen zugewiesen.

Bei der aktuellen Preislage für Serverless Computing behalten virtuelle Maschinen oder dedizierte Server für Anwendungen, die über einen längeren Zeitraum laufen, derzeit noch ihre Berechtigung. Alles on demand ist schlicht weg zu teuer. Dennoch werden wir uns in Zukunft auf mehr serverlose Anwendungen gefasst machen müssen. Und auch hier steigt die Komplexität, vor allem, wenn man versucht, alle Anwendungen im Blick zu behalten. Denn wie will man die Performance von etwas monitoren, was aktuell noch als Code ruht und nur bei Bedarf ausgeführt wird?

Adam LaGreca leitet die Kommunikation beim Cloud Monitoring Service Datadog mit Sitz in New York.
Adam LaGreca leitet die Kommunikation beim Cloud Monitoring Service Datadog mit Sitz in New York. (Bild: Datadog)

Komplexität – nicht zu Kopf steigen lassen

Moderne, verteilte Applikationen, Container, Microservices oder sogar serverlose Architekturen werden immer beliebter. Je komplexer das Miteinander der einzelnen Elemente in der Cloud jedoch wird, desto wichtiger ist es, einen klaren Kopf und ein Gesamtbild über alle Abläufe zu bewahren. Dann können auch die neuen Technologien und Möglichkeiten der Cloud entspannt angegangen werden.

Der Autor

Adam LaGreca leitet die Kommunikation beim Cloud Monitoring Service Datadog mit Sitz in New York. Bevor er zu Datadog stieß, verantwortete er die Kommunikation des Cloud Infrastrukturunternehmens DigitalOcean. Weitere Stationen seiner Karriere umfassen Bubble.is und Stae.co.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45076056 / Service Level Management)