Cloud-basierte Anwendungen sind heutzutage keine monolithischen Gebilde mehr, sondern bestehen aus Microservices und Containern. Die in viele kleine Teile, sogenannte Microservices, zerlegten Anwendungen sind, jeweils in einer eigenen schlanken und sehr portablen virtuellen Umgebung untergebracht, dem Container.
Dies bietet technologisch einen großen Mehrwert, der sich vor allem daraus ergibt, dass so Entwicklungs- und Testprozesse beschleunigt werden können. Werden die Anwendungen jedoch aus der sicheren Dev&Test-Sandbox in die reale Produktion verschoben, gibt es oft Probleme bei der Verwaltung, Sicherheit und Skalierbarkeit. Um diese Probleme zu beseitigen, kommt eine neue Technologie ins Spiel: Das Service Mesh. Dies ist der Stand der Dinge seiner Entwicklung.
Mit dem Service Mesh cloudbasierte Anwendungen effizient verwalten
Ein Service Mesh ist tatsächlich kein Produkt, oder Lösung, die einfach eingekauft und dem System hinzugefügt werden kann, um den Einsatz cloud-nativer Komponenten in der Produktion einzuleiten. Ein Service Mesh ist eher eine Art Rahmen, der auf verschiedenste Art und Weise zur Verfügung gestellt werden kann, und innerhalb dessen Cloud-native Komponenten, mit ihren benötigten Diensten verbunden werden. So kann ein Service Mesh eines der größeren Probleme cloudbasierter Technologien lösen: die Skalierbarkeit. Eine übliche Anwendung kann eine Handvoll virtueller Maschinen umfassen, eine native Cloud-Applikation ist hingegen eine Sammlung von Hunderten oder sogar Tausenden von Mikroservices, die in einem zugehörigen Container in einer hybriden Cloud-Infrastruktur laufen.
Container können extrem schnell gepatcht, ein- und ausgeschaltet, verschoben und aktualisiert werden. Das ist ein großer Vorteil, da die Verfügbarkeit der gesamten Anwendung nicht beeinträchtigt wird. Jedoch muss jeder Container seine begleitenden Bestandteile sowie gemeinsame Management-, Sicherheits-, Load Balancing- und andere Anwendungsdienste ausfindig machen und mit ihnen kommunizieren. Im Hinblick auf die potenziell hohe Änderungsrate und die sehr große Anzahl der beteiligten Container, ist dies eine große Herausforderung.
Die Notwendigkeit dieser vielfältigen Kommunikation, kann die Verwaltung von cloudbasierten Anwendungen zu einem Albtraum werden lassen. Dies wird man feststellen, wenn man versucht sie auf traditionelle Art zu skalieren. Hier hilft das Service Mesh. Das Service Mesh ist eine eigene Infrastrukturebene für Anwendungsdienste. Es verbindet effektiv die einzelnen Teile cloudbasierter Anwendungen, indem es ein zentral verwaltetes Service-Ökosystem zur Verfügung stellt. Dieses Ökosystem steht beispielsweise Containern zur Verfügung, damit diese alle benötigten Dienste erhalten und ihre Aufgaben erledigen können.
Das Istio-Projekt, ein großer Schritt zur Marktreife
Bis zur umfassenden Marktreife des Service Meshs gibt es jedoch noch viel zu tun. Sowohl auf der Seite der namenhaften Cloud-Anbieter als auch von Technologieanbietern im Bereich der Bereitstellung von Anwendungsdiensten, insbesondere Application Delivery, Security- und Traffic Management. Es wurden bereits eine Reihe proprietärer Produkte vorgestellt, das wohl aussichtsreichste ist die Open-Source-Initiative Istio. IBM, Lyft und Google starteten das Projekt und die Liste namhafter Unternehmen, die zur weiteren Entwicklung von Istio beisteuern, wächst ständig. Zuletzt gesellten sich weitere Größen der Industrie wie VMware, Pivotal Cisco und Red Hat dazu. Die Kombination aus innovativen Start-ups und etablierten Herstellern, wird Istios Service Mesh weiter vorantreiben und immer mehr Funktionen und Anwendungen unterstützen. Istio ist aufgrund dieser umfassenden Unterstützung heute nahezu gleichbedeutend mit „Service Mesh“, ebenso wie Kubernetes für „Container Orchestrierung“ steht. Es ist kein Zufall, dass die ersten Releases von Istio sehr stark an Kubernetes und die native Anwendungsarchitektur der Cloud gebunden waren und innerhalb eines Kubernetes-Clusters ein Istio-Service-Mesh heute bereits sinnvoll eingesetzt werden kann.
Durch die Erweiterung von Istio mit anderen bewährten Technologien, wird in Zukunft auch eine cluster- und sogar cloud-übergreifende Kommunikation zwischen cloudbasierten Anwendungen und ihren Diensten problemlos möglich sein. Der Mehrwert der Technologie wird über Kubernetes und darüber hinaus sehr wahrscheinlich stetig wachsen. Dies ermöglicht die Anwendung des Service Mesh auf allen gegenwärtigen Anwendungen im Rechenzentrum. Granulare Anwendungsdienste, die nahe der Anwendung zur Verfügung stehen, können so auch ohne Weiteres traditionellen Anwendungen auf virtuellen Maschinen oder Bare-Metal-Infratrukturen zur Verfügung gestellt werden.
Unternehmen werden über kurz oder lang ein Service Mesh benötigen
Die sehr hohe Granularität von Anwendungskomponenten aufgrund der containerisierten Microservices-Architektur hat zur Folge, dass in absehbarer Zeit die Verfügbarkeit von anwendungsnahen Diensten über ein Service Mesh unbedingt notwendig sein wird. Zukünftig wird ein Service Mesh sehr wahrscheinlich über alle Anwendungsarten und über Kubernetes-Cluster hinaus verfügbar sein. Derzeit sieht es danach aus, als wäre Istio das Service Mesh der Zukunft. Abgesehen vom Format muss ein Service Mesh jedoch Vorteile für die gegenwärtigen und neue Anwendungen bringen. Unternehmen, die cloudbasierte Technologien nutzen wollen, werden mit hoher Wahrscheinlichkeit auch ein Service Mesh nutzen.
Bild: Mit Istio integriertes lokales und globales Traffic-Management: Mit zahlreichen Netzwerk-Proxies auf jedem Node im Container-Cluster dient jeder Proxy als Gateway zwischen Servern und Containern.
Ranga Rajagopalan, Mitbegründer und CTO, Avi Networks
In den letzten 15 Jahren vor der Mitbegründung von Avi Networks war Ranga Architekt und Entwickler mehrerer leistungsstarker verteilter Betriebssysteme sowie Netzwerk- und Speicher-Rechenzentrumsprodukte. Vor seiner jetzigen Funktion als CTO war er Senior Director bei Cisco’s Data Center Business Unit, verantwortlich für Plattform-Software der Nexus 7000 Produktlinie. Ranga kam durch die Übernahme von Andiamo zu Cisco, wo er einer der führenden Architekten für das SAN-OS-Betriebssystem war, und begann seine Karriere bei SGI als IRIX-Kernelingenieur für die Origin-Serie der ccNUMA-Server. Begonnen hat er seine Karriere. mit einem Abschluss als Master of Science- in Elektrotechnik von der Stanford University und einem Bachelor of Engineering in EEE von BITS, Pilani, Indien, und verfügt heute über mehrere Patente im Bereich Networking und Storage.
www.avinetworks.com