Service Mesh - Mehr Produktivität in der Public Cloud

In diesem Blogbeitrag geht es um die schrittweise und einfache Migration Deiner Applikationen von einem lokalen Netzwerk in die Public Cloud mit der Unterstützung durch ein Service Mesh.

Autor: False

Der Weg in die Public Cloud ist eine kontinuierliche Reise. Applikationen werden nicht alle auf einmal, sondern schrittweise in die Public Cloud migriert. Das stellt die IT vor neue Herausforderungen. Eine davon ist, dass sich die Netzwerke (und eventuell auch die Verschlüsselung, z.B. http zu https), unter welchen die Applikationen erreichbar sind, während der Migrationsphase ändern. Hier kommt das Service Mesh ins Spiel. Das Service Mesh ist ein programmierbarer Infrastruktur-Layer und bietet effiziente Lösungen rund um die Herausforderungen von verteilten und heterogenen Applikationen. So stellt das Service Mesh für Applikationen die Kernfunktionalität bereit, um die Verbindung zu sich dynamisch ändernden Endpunkten von Applikationen sicherzustellen.

Eine kurze Einführung in Service Mesh

Der Begriff Service Mesh beschreibt das Zusammenspiel von Softwarekomponenten, die die Kommunikation zwischen den verschiedenen Anwendungen in einer verteilten Architektur steuern. Service Mesh bietet die Möglichkeit, die Sicherheit durchzusetzen, den Netzwerkverkehr zu überwachen, das Routing zu steuern und insgesamt die Entwicklung und den Betrieb von Anwendungen zu vereinfachen, ohne dabei die Applikationen selbst zu verändern. Service Mesh ist eine Weiterentwicklung von Proxys, Edge-Router und Load Balancer, die nun auch für das Routing des Netzwerkverkehrs zwischen den Applikationen, die Verwaltung von TLS/SSL-Zertifikaten und die Bereitstellung von Metriken aus dem Netzwerkverkehr verantwortlich sind.

Zwei Nutzen, wie das Service Mesh bei der Cloud-Migration hilft

Abstraktion

4.png

Die Migration bestehender Applikationen in die Public Cloud ist eine anspruchsvolle Aufgabe und birgt Herausforderungen rund um die Kommunikation zwischen Applikationen. Eine davon ist, dass migrierte Applikationen unter einer neuen Domain erreichbar sind, Pfade sich ändern oder man auf eine verschlüsselte Kommunikation wechselt. Jede dieser Änderungen am Endpunkt einer Applikation betreffend Domain, Port, Pfad oder Protokoll führt zu Änderungen an allen Applikationen, die die zu migrierende Applikation nutzen.

5.png

Zum Beispiel wird Applikation B in die Cloud migriert und erhält eine neue Adresse (von http://applications.company.ch:8080/app-b/ zu https://app-b.cloud.company.ch/). Applikationen, welche auf B zugreifen, müssen nun ihre Konfiguration ändern und neu deployed werden, damit sie Applikation B unter der neuen Adresse erreichen können. Das heisst, dass die Migration genau geplant und koordiniert werden muss. Denn ein Fehler in der Konfiguration führt zum Ausfall der Applikation. Und mit jeder zusätzlichen Applikation, die migriert wird, erhöht sich der Aufwand und das damit verbundene Risiko.

Da das Service Mesh die gesamte Kommunikation unter den Applikationen vermittelt, kann es zur Abstraktion der reellen Endpunkte der Applikationen verwendet werden. Damit kann das Problem der sich stets ändernden Konfiguration und deren Anpassung bzw. Deployment aufgelöst werden. Denn das Service Mesh abstrahiert das Routing zu den realen Endpunkten, ohne dass die aufrufenden Applikationen wissen müssen, ob die Applikation noch im lokalen Netzwerk läuft oder schon in der Public Cloud ist. Dadurch können Sie die Applikationen schrittweise in die Cloud migrieren, ohne dabei ständig die Konfigurationen der aufrufenden Applikationen verändern und neu deployen zu müssen. Das Service Mesh bewerkstelligt dies, indem ein Proxy mit jeder Applikation deployed wird, der den Datenverkehr abstrahiert. Alle Proxys werden vom Service Mesh verwaltet.

Wie sieht das an einem konkreten Beispiel aus

Mit nachfolgender Abbildung möchte ich die Migration am Beispiel von Applikation B aufzeigen.

Situation vor der Migration von B (graue Zahlen):

  1. Applikation B ist unter dem lokalen Endpunkt erreichbar: http://applications.company.ch:8080/app-b/
  2. Applikation A ist schon migriert und greift auf die Applikation B bereits mittels des zukünftigen Endpunkts zu: https://app-b.cloud.company.ch/
  3. Das Service Mesh schreibt den Endpunkt um und leitet den Request an den lokalen Endpunkt von Applikation B weiter
  4. Applikation C ist noch nicht migriert und greift auf den lokalen Endpunkt von Applikation B zu
  5. Das Service Mesh leitet den Request ohne Veränderung weiter.

Situation nach der Migration von B (gelbe Zahlen):

  1. Applikation B ist neu unter folgendem Endpunkt erreichbar: https://app-b.cloud.company.ch/.
  2. Applikation A greift auf die Applikation B mittels des nun korrekten Endpunktes zu: https://app-b.cloud.company.ch/
  3. Das Service Mesh leitet den Request ohne Veränderung weiter.
  4. Applikation C ist bisher nicht migriert und greift noch auf den lokalen Endpunkt von Applikation B zu: http://applications.company.ch:8080/app-b/
  5. Das Service Mesh schreibt den Endpunkt um, übernimmt die Verschlüsselung der Kommunikation und leitet den Request an den Cloud Endpunkt von Applikation B weiter.
Webseite 169_2022 (333 × 333 px) (1).png

Verschlüsselung

Neben der Abstraktion bietet das Service Mesh auch eine wichtige Funktion, um die Sicherheit und Compliance durchzusetzen. Die Proxys des Service Mesh können so konfiguriert werden, dass sie untereinander nur verschlüsselt kommunizieren. Dadurch können auch Applikationen eine sichere Verbindung aufbauen, die keine Verschlüsselung unterstützen. Somit stellt das Service Mesh eine Garantie für verschlüsselten Traffic.

Die drei wichtigsten Erkenntnisse zum Einsatz von Service Mesh

Neben dem in diesem Blog beschriebenen Nutzen gibt es aber auch einige Einschränkungen, die Sie kennen sollten, bevor Sie mit der Migration beginnen.

  • Das Service Mesh kann nur den Datenfluss zwischen Services erkennen und steuern, die mit einem Proxy verbunden sind, und hat keinen Einblick in den Datenverkehr zwischen Services, die nicht mit einem Proxy verbunden sind.
  • Das Service Mesh kann auch nicht für andere Aufgaben in der Migration wie Datenreplikation und Datensynchronisation zwischen Datenbanken verwendet werden.
  • Auch ist die richtige Konfiguration eines Service Mesh komplex und bedarf Know-how über die Infrastruktur und Applikationslandschaft.

Fazit

Mithilfe eines Service Mesh kann der Migrationsprozess durch Kontrolle und Abstraktion der internen Kommunikation zwischen Applikationen drastisch vereinfacht und weitestgehend automatisiert werden. Dadurch ist es für die aufrufende Applikation irrelevant, ob die Applikation schon migriert ist oder nicht, das Service Mesh routed die Kommunikation an den richtigen Endpunkt. Dies ermöglicht eine einfache und schrittweise Migration von Applikationen in die Cloud. Durch das Erzwingen von verschlüsselter Kommunikation leistet das Service Mesh auch einen wichtigen Beitrag zum Erfüllen der Sicherheits- und Compliance-Anforderungen.

Dein ipt-Experte

Ich freue mich auf Deine Kontaktaufnahme