adam121 - stock.adobe.com

Der Aufstieg von Kubernetes schafft bessere Nutzererlebnisse

Mit dem Aufstieg von Kubernetes erreichen Entwickler mehr Flexibilität bei der Bereitstellung, Skalierung und Verwaltung ihrer Container-Apps.

Mit dem Aufstieg von Kubernetes ist die Open-Source-Revolution in vollem Gange. Flexibilität und Agilität sind die Schlüsselfaktoren, wenn es darum geht, das Beste aus der Multi-Cloud- oder Hybrid-Cloud-Ära herauszuholen. Kubernetes kann Projekte erleichtern, indem es DevOps-Teams mehr Kontrolle über ihre Infrastruktur ermöglicht. Es existieren allerdings immer noch Hürden.

Kubernetes mit den Datenbanken in den Containern zu verwalten, hat sich für Organisationen, die ganzheitlich an ihren Cloud-Betrieb herangehen, als schwierig erwiesen. Die dynamische Agilität von Kubernetes, die in Public-Cloud-Umgebungen ideal ist, gestaltet sich für Legacy-Datenbanken, die noch immer an traditionelle Bare-Metal-Instanzen beziehungsweise virtuelle Maschinen gebunden sind, problematisch.

Die Diskrepanz zwischen der sofortigen Skalierbarkeit containerisierter Umgebungen und den schwerfälligeren Datenbank-Deployments kann zu erheblichen Problemen führen, da der Bedarf nach Nutzung einer Cloud-Applikation stark variieren kann.

Wesentliche Hürden sind:

  • Hohe Betriebskosten: Die manuelle Bereitstellung und Verwaltung Hunderter Datenbank-Cluster über mehrere Standorte erhöhen Kosten, Aufwand und Komplexität.
  • Vendor Lock-in: Fehlende Standardisierung, die gewährleistet, dass Daten frei und zuverlässig zwischen Cloud-Anbietern bewegt werden können, erschwert einen schnellen Anbieterwechsel oder das Arbeiten mit mehreren Providern.
  • Verzögerter Markteintritt: Kunden mit Applikationen, die Microservices-Architekturen nutzen, haben Schwierigkeiten mit der Verwaltung und Skalierung von Datenbank-Clustern in isolierten Systemen. Das verlängert wiederum Entwicklungszeiten und erschwert den Applikations-Support.

Entwickler brauchen Agilität und automatisierte Orchestrierung in allen Multi-Cloud-Umgebungen. Bei richtigem Einsatz von Kubernetes können sie diese Herausforderungen meistern. Dabei gibt es einige Schwerpunktthemen.

Cloud begeistert!

Es ist recht einfach, sich kopfüber in die faszinierende Welt der Clouds zu stürzen – schließlich können Ressourcen per Knopfdruck abgerufen werden. Die Herausforderung ist aber wesentlich größer. Cloud-native Applikationen haben eine Menge Vorteile gegenüber ihren eingeschränkten Pendants, zum Beispiel sofortige Kapazitätsskalierung auf Basis der Nutzernachfrage, und damit verbundene Geschwindigkeit, Zuverlässigkeit sowie Verfügbarkeit.

Das Problem ist, dass sich der Begriff Cloud-nativ meistens nicht auf die Datenbank bezieht, sondern auf die Applikation. Viele Legacy-Datenbanken sind an eine spezielle Einsatzstrategie auf Bare-Metal-Servern oder virtuellen Maschinen gebunden. Sie wurden entwickelt, als Datenbanken nur in On-Premises-Umgebungen liefen und sich nur langsam anpassen ließen. Dadurch ist es schwierig, sie in einer Hochphase, wie beispielsweise am Black Friday oder Weihnachten bei Händlern, oder im Sommer für Reise- und Hotelbuchungen, an die kräftig gestiegene Anfrage anzupassen. Häufige Abänderungen und größere Datenmengen bringen verfügbare, statische Rechenleistung an ihre Grenzen.

Im Allgemeinen ist es eigentlich leicht, Applikationen in der Cloud zu skalieren. Viele sind zustandslos (stateless) und ermöglichen eine schnelle Wiederherstellung, sollte die Applikationsinstanz abstürzen. Zustandslose Arbeitsprozesse können im Allgemeinen einfach von einem Cloud-Anbieter zum nächsten übertragen werden. Datenbanken sind hingegen statusbezogen (stateful) und erfordern ein ausgeklügeltes Management sowie Orchestrierung, um die Verfügbarkeit und Konsistenz zu wahren, falls Instanzen abstürzen. Das kann eine Migration der Datenbank von der On-Premises-Umgebung zur Cloud zu einer gewaltigen Aufgabe machen, insbesondere wenn die Datenmengen stetig wachsen.

DevOps-Teams müssen einige Änderungen an ihren Datenbankinstallationen vornehmen, damit sie so agil sein können wie die Applikationen, die sie unterstützen. Das bedeutet, zu einer Full-Stack-Denkweise überzugehen, die sowohl zustandslose als auch statusbezogene Applikationen einschließt.

Alles in Einem – Der Full-Stack

Container-Orchestrierungssysteme wie Kubernetes können diese Probleme lösen, insbesondere bei Applikationen, die bereits selbst Container nutzen. Es bestand lange der Irrtum, dass Container der Herausforderung, eine Datenbank zu unterstützen, nicht gewachsen sind, was wiederum die Akzeptanz verzögerte.

In der Vergangenheit war das ein Argument gegen Datenbank-im-Container-Lösungen. Doch mit dem Aufkommen von Kubernetes und der zunehmenden Komplexität der Verwaltung der heute vorhandenen statusbezogenen Prozesse (zum Beispiel benutzerdefinierte Kontrollmechanismen und persistenter Speicher) ist der Einsatz verteilter Datenbanken in Containern eine praktikable Option. Die Eignung von Container-Umgebungen, sich den ständig verändernden Anforderungen schnell anzupassen und jederzeit zusätzliche Container hochzufahren, macht sie zur perfekten Lösung für Aufgaben im Cloud-Ansatz.

Kubernetes macht die Cloud-Plattform agnostisch. Das bedeutet, dass es nicht darauf ankommt, ob man etwas On-Premises, OTC, in Azure, eine Home Cloud oder sogar eine Kombination davon verwendet. Das Ergebnis ist ein reibungsloser und nahtloser Betrieb für alle Nutzer. Eine in Kubernetes erstellte Applikation läuft aufgrund der strengen CNCF-Richtlinien, die die Plattformanbieter einhalten müssen, überall gleich und ohne Veränderungen. Automatisierung gängiger Cloud-Szenarien minimiert den Überwachungs- und Verwaltungsaufwand für Operations Teams. Kubernetes erleichtert die Verwaltung des gesamten Anwendungsbereitstellungsprozesses über ein einziges Dashboard, einschließlich aller Netzwerkkomponenten oder Datenspeicher.

Angepasste Lösungen auf typische Probleme, wie Nachfragespitzen, können durch Kubernetes in den Stack programmiert werden. Durch das Orchestrierungssystem werden die gewünschten, vorher gespeicherten Reaktionsszenarien, automatisch ausgeführt, sobald das Kriterium auftritt. Diese Art der sofortigen Reaktion ist nur möglich, wenn sowohl die Anwendung als auch die Datenbank in der gleichen Platform-as-a-Service-Umgebung laufen. Kapazitätserweiterung wird dadurch zu einem nahezu perfekten linearen Prozess. Die Kapazität steigt und sinkt mit der Nachfrage, wodurch nur so viel Ressourcen genutzt werden, wie auch tatsächlich benötigt werden.

Bruno Simic, Couchbase

„Die Eignung von Container-Umgebungen, sich den ständig verändernden Anforderungen schnell anzupassen und jederzeit zusätzliche Container hochzufahren, macht sie zur perfekten Lösung für Aufgaben im Cloud-Ansatz.“

Bruno Šimić, Couchbase

Dieser Prozess kann auch dazu beitragen, die Kontinuität und Verfügbarkeit der Anwendung und der unterstützenden Datenbank sicherzustellen. Sobald Verbindungsprobleme oder Systemfehler aus einer Instanz das Nutzererlebnis beeinträchtigen, kann das Orchestrierungssystem dieses Problem erkennen und sofort reagieren.

Fazit

All diese Vorteile führen schließlich dazu, dass DevOps-Teams, die Kubernetes nutzen, in der Lage sind, bessere Nutzererlebnisse zu liefern und sich schneller an sich ändernde Anforderungen anzupassen. Agilität wird immer wichtiger, um dem Marktdruck stand- und mit der Entwicklung Schritt zu halten.

Diese Methode gibt Entwicklern die Möglichkeit, mehr Zeit für die Anwendung selbst, anstatt für die Verwaltung des Datenbank-Deployments aufzuwenden. Sie haben ebenfalls die absolute Kontrolle über die Datenbank und die darin gespeicherten Daten. Der Einsatz externer Experten oder Anbieter ist nicht mehr notwendig. Die Daten werden von den internen Teams eigenständig verwaltet und ausgewertet.

Die Expansion der Kubernetes-Implementierungen ermöglicht eine neue Ära der agilen Applikationsbereitstellung. Jedoch ist es wichtig, nicht unüberlegt zu handeln. Wer es richtig und erfolgreich machen will, braucht Geduld, gute Planung sowie die richtige Datenbanktechnologie.

Über den Autor:
Bruno Šimić ist Senior Solutions Engineer bei Couchbase.

Nächste Schritte

Kubernetes Monitoring mit LogicMonitor und New Relic.         

Docker und Kubernetes Monitoring Tools für Microservices.

Mehr Kubernetes-Sicherheit zum Schutz für Cloud-Instanzen.

Erfahren Sie mehr über Cloud Computing