Kubernetes as a Service

Herausforderung "Skalierbarkeit"

Die Anforderungen an Anwendungen im Internet haben sich stark verändert. So waren früher monolitische Systeme, also ein Server kümmert sich um einen Zweck, völlig normal und State of the Art. Heutzutage soll die Rechenleistung von Servern im Verbund optimal ausgenutzt werden ohne einen Leistungsverlust von Virtualisierungssoftware in Kauf nehmen zu müssen. Zudem soll ein Verbund von Servern leicht verwaltbar sein. Wie viele Server wirklich bespielt werden, soll für die Anwendung nicht von Belang sein, denn nur so lässt sich wirkliche Skalierfähigkeit erreichen.

Diese Herausforderungen lassen sich manuell nicht lösen, dazu braucht es also ein Tool.

Die Lösung: Kubernetes

Kubernetes ist das Tool für genau diese Herausforderungen. Kubernetes abstrahiert förmlich die Server und fügt sie zu einer API zusammen, die sich remote bedienen lässt. Bei der Handhabung des Tools spielt es auch keine Rolle, ob der Cluster aus 3 Servern oder aus 300 Servern besteht. Der Anwendungsentwickler definiert die Anforderungen an seine Applikation, also wieviel RAM, CPU und Festplattenspeicher gebraucht wird, und Kubernetes kümmert sich dann darum auf einem Server Platz für diese Anwendung zu finden. Auch ist es möglich mehrere Instanzen derselben Anwendung auf verschiedene Server zu verteilen. Bei einem Ausfall eines Servers wird die Anwendung auf funktionierenden Servern dann weiter ausgeführt. Dies geht schon in die Richtung von Self-Healing, also dass eine Anwendung bei Problemen sich quasi selbst repariert. 

Im Laufe der Zeit ändern sich oft die Anforderungen an Applikationen. Meist muss die Anwendung nach mehreren Jahren ein Vielfaches an Last aushalten als ursprünglich geplant war. Um hier nicht die ganze Infrastruktur umbauen zu müssen, ist es in Kubernetes sehr einfach weitere Server in den Verbund einzugliedern. Auch andersherum ist dies möglich. Sollte die Anwendung einmal stufenweise abgeschaltet werden müssen, ist es sehr leicht Server aus dem Verbund heraus zu lösen um Kosten zu sparen.  

Warum Kubernetes as a Service?

Auch wenn Kubernetes bereits vieles erleichtert, effizienter und kostensparender macht, so braucht es trotzdem professionelle Betreuung des Kubernetes Clusters. Es müssen Updates eingespielt werden, damit die Sicherheit des Clusters nicht gefährdet wird. Sollte es einem Angreifer mal gelingen einen Kubernetes Cluster zu übernehmen, hat er direkt eine Vielzahl von Servern unter seiner Kontrolle und kann dementsprechend Schaden anrichten. Damit dies nicht passiert muss ein Monitoring von Security Updates eingeführt werden, um eine schnellstmögliche Aktualisierung der Systeme sicherzustellen.

Backups müssen ebenfalls erstellt werden. Auch wenn die Anwendungen auf verschiedenen Servern laufen und gegebenenfalls Daten auf verschiedenen Systemen speichern, sind Backups unabdingbar. Ein verteiltes Speichern kann bei Hardwarefehlern helfen, aber bei einem Bug in der Anwendung der unverhofft Daten löscht, muss ein anderes Konzept her. Kubernetes selbst hat keine Backup-Lösung integriert, so dass eine externe Lösung geplant, eingebunden und überwacht werden muss. 

Für einen reibungslosen Betrieb ist professioneller Support unabdingbar. Kubernetes selbst ist Open-Source, so dass es keine Hersteller Firma gibt, bei der man Support einkaufen kann. Hier sind externe Firmen gefragt. Eine Mischung aus Hoster und Kubernetes Anbieter ist dabei optimal. Kubernetes selbst abstrahiert für den Anwender die zugrundeliegende Server Infrastruktur. Sollten aber Probleme auftreten muss auch genau auf die Server Infrastruktur eingegangen werden, was ein Anbieter von Kubernetes der keine Server selbst stellt nicht leisten kann.  

Siehe auch:
Managed Kubernetes

Patrick Oberdorf - Geschäftsführer Bild


 

 

Viele Grüße
Euer Patrick


 

Wenn ihr Fragen habt, meldet euch: info@mobilistics.de

Im Blog oder auf unserer Homepage könnt ihr gerne schauen, was wir sonst noch so machen.