Anwendungen & Cloud Neueste Blogartikel

Anwendungsmodernisierung und Multi-Cloud-Portabilität mit VMware Tanzu

Michael Rebmann – Senior Solution Architect bei VMware und Teil des Solution Engineering Teams in der Schweiz.

„Ich arbeite mit der VMware-Community und einigen der größten Kunden in der Schweiz zusammen.“

Es war 2019, als VMware Tanzu und Project Pacific ankündigte. Seitdem ist viel passiert und fast jeder spricht heute über Anwendungsmodernisierung. Mit meinem ausgeprägten IT-Infrastrukturhintergrund musste ich viel Neues lernen, um die ersten Gespräche mit Anwendungseigentümern, Entwicklern und Softwarearchitekten zu bestehen. Und in der gleichen Zeit wuchs das Kubernetes-Angebot von VMware und wurde sehr komplex – nicht nur für Kunden, sondern für jeden, wie ich glaube.

Über VMwares Vision mit Tanzu habe ich bereits geschrieben: Ein konsistentes “Kubernetes-Grid” über jede Cloud zu legen.

Das ist die einfache Botschaft und der Wert, der sich hinter den viel größeren Themen verbirgt, wenn es um Anwendungsmodernisierung und Anwendungs-/Datenportabilität über Clouds hinweg geht.

Das Ziel dieses Artikels ist es, Ihnen ein besseres Verständnis für den tatsächlichen Wert von VMware Tanzu zu vermitteln und zu erklären, dass es weniger um Kubernetes und die Kubernetes-Integration in vSphere geht.

Anwendungsmodernisierung

Bevor wir über die Modernisierung von Anwendungen oder die verschiedenen Migrationsansätze sprechen können:

  • Retain – Optimierung und Beibehaltung bestehender Anwendungen im Ist-Zustand
  • Rehost/Migration (Lift & Shift) – Verschieben einer Anwendung in die Public Cloud, ohne Änderungen vorzunehmen
  • Replatform (lift and reshape) – Anwendungen in Container packen und in Kubernetes ausführen. Verschieben von Anwendungen in die öffentliche Cloud
  • Rebuild und Refactor – Anwendungen mit nativen Cloud-Technologien neu schreiben
  • Retire – Ausmusterung traditioneller Anwendungen und Umstellung auf neue SaaS-Anwendungen

…müssen wir einen Blick auf die Palette unserer Anwendungen werfen:

  • Webanwendungen – Apache Tomcat, Nginx, Java
  • SQL-Datenbanken – MySQL, Oracle DB, PostgreSQL
  • NoSQL-Datenbanken – MongoDB, Cassandra, Prometheus, Couchbase, Redis
  • Big Data – Splunk, Elasticsearch, ELK Stack, Greenplum, Kafka, Hadoop

In einer Diskussion über die Modernisierung von Anwendungen beginnen wir sehr schnell Anwendungen als Microservices oder Monolithen zu klassifizieren. Aus Sicht der Infrastruktur betrachtet man Apps unterschiedlich und nennt sie “zustandslose” (Web-Apps) oder “zustandsbehaftete” (SQL, NoSQL, Big Data) Apps.

Und mit Kubernetes versuchen wir die Herausforderungen zu meistern, die mit zustandsbehafteten Anwendungen im Zusammenhang mit der App-Modernisierung einhergehen:

  • Was bedeutet Modernisierung wirklich?
  • Wie definiere ich “Modernisierung”?
  • Was ist der Nutzen der Modernisierung von Anwendungen?
  • Was sind die Werkzeuge? Was sind meine Optionen?
  • Was hat sich geändert? Warum reden alle über Modernisierung? Warum reden wir so viel über Kubernetes und Cloud Native? Warum gerade jetzt?

Um die Vorteile (und Herausforderungen) der Anwendungsmodernisierung zu verstehen, können wir uns zunächst die Definition von IBM für eine “moderne Anwendung” ansehen:

“Anwendungsmodernisierung ist der Prozess, bei dem bestehende Legacy-Anwendungen übernommen und ihre Plattforminfrastruktur, interne Architektur und/oder Funktionen modernisiert werden. Ein Großteil der Diskussion um die Anwendungsmodernisierung konzentriert sich heute auf monolithische On-Premises-Anwendungen, die in der Regel mit Wasserfall-Entwicklungsprozessen aktualisiert und gewartet werden, und darauf, wie diese Anwendungen in die Cloud-Architektur und in Release-Muster, nämlich Microservices, überführt werden können.

Moderne Anwendungen sind Sammlungen von Microservices, die schlank, fehlertolerant und klein sind. Microservices können in Containern ausgeführt werden, die in einer privaten oder öffentlichen Cloud bereitgestellt werden.

Das bedeutet, dass eine moderne Anwendung sich an jede Umgebung anpassen und gleich gut funktionieren kann.

Hinweis: Anwendungsmodernisierung kann auch bedeuten, dass Sie Ihre Anwendung von .NET Framework auf .NET Core umstellen müssen.

Ich habe einen Kunden, der gerade mit dem Thema App-Modernisierung anfängt und Hunderte von Windows-Anwendungen hat, die auf dem .NET Framework basieren. Die Portierung einer bestehenden .NET-Anwendung auf .NET Core ist mit einigem Aufwand verbunden, stellt aber die allgemeine Empfehlung für die Zukunft dar. Dies würde Ihnen auch die Möglichkeit geben, Ihre .NET Core-Anwendungen auf Windows, Linux und macOS (und nicht nur auf Windows) auszuführen.

Eine moderne Anwendung ist etwas, das auf Bare-Metal, VMs, Public Cloud und Containern ausgeführt werden kann und das sich leicht in jede Komponente Ihrer Infrastruktur integrieren lässt. Es muss etwas sein, das elastisch ist. Etwas, das je nach Last und Nutzung wachsen und schrumpfen kann. Da es sich um etwas handelt, das sich anpassen können muss, muss es agil und daher portabel sein.

Cloud-native Architekturen und moderne Designs

Wenn ich meine VMware-Kollegen aus unserer sogenannten MAPBU (Modern Application Platform Business Unit) frage, wie Kunden Anwendungsportabilität erreichen können, lautet die Antwort immer: “Cloud Native!”

Viele Unternehmen und Personen sehen Cloud Native als Übergang zu Kubernetes. Aber Cloud Native ist so viel mehr als nur die Bereitstellung und Orchestrierung von Containern mit Kubernetes. Es geht um Zusammenarbeit, DevOps, interne Prozesse und Lieferketten, Observability/Selbstheilung, kontinuierliche Bereitstellung/Deployment und Cloud-Infrastruktur.

Es gibt so viele Definitionen rund um “Cloud Native”, dass Kamal Arora von Amazon Web Services und andere das Buch “Cloud Native Architecture” geschrieben haben, das ein Reifegradmodell beschreibt. Dieses Modell hilft Ihnen zu verstehen, dass “Cloud Native” mehr eine Reise ist als nur eine restriktive Definition.

Die Übernahme von Cloud-Diensten und die Anwendung eines anwendungszentrierten Konzepts sind sehr wichtig, aber in dem Buch wird auch erwähnt, dass Sicherheit und Skalierbarkeit von der Automatisierung abhängen. Und dies könnte zum Beispiel die Anforderung an Infrastructure as Code (IaC) mit sich bringen.

In der Vergangenheit zwang die Virtualisierung – der Wechsel von Bare-Metal zu vSphere – die Unternehmen nicht dazu, ihre Anwendungen zu modernisieren. Die Anwendung musste nicht geändert werden und VMware abstrahierte und emulierte den Bare-Metal-Server. So war der Übergang (P2V) einer Anwendung sehr reibungslos und nicht kompliziert.

Und genau das hat sich heute geändert. Wir haben neue Architekturen, neue Technologien und neue Clouds, die mit unterschiedlichen Technologiestacks betrieben werden. Wir haben Kubernetes als Framework, das eine Neukonzeption der Anwendungen für diese Plattformen erfordert.

Das ist der Grund, warum Unternehmen ihre Anwendungen modernisieren müssen.

Eines der oben erwähnten “fünf Rs” ist der Lift-and-Shift-Ansatz. Wenn Sie einige Ihrer Anwendungen nicht modernisieren wollen oder müssen, sondern auf einfache, schnelle und kosteneffiziente Weise in die öffentliche Cloud wechseln möchten, sollten Sie sich die Hybrid Cloud Extension (HCX) von VMware ansehen.

In diesem Artikel konzentriere ich mich mehr auf die Replatform- und Refactor-Ansätze in einer Multi-Cloud-Welt.

Kubernetisierung und Produktivierung Ihrer Anwendungen

Unter der Annahme, dass Sie Kubernetes auch als Standard für die Orchestrierung Ihrer Container definieren, in denen Ihre Microservices ausgeführt werden, wäre die nächste Entscheidung in der Regel die über das Kubernetes-“Produkt” (On-Prem, OpenShift, Public Cloud).

Wenn wir uns die aktuelle CNCF Cloud Native Landscape ansehen, können wir über 50 Speicheranbieter und über 20 Netzwerkanbieter zählen, die Cloud Native Speicher– und Netzwerklösungen für Container und Kubernetes anbieten.

Wenn ich mit meinen Kunden spreche, nennen die meisten von ihnen die Speicher- und Netzwerkintegration als eine ihrer großen Herausforderungen mit Kubernetes. Sie sorgen sich um Leistung, Ausfallsicherheit, unterschiedliche Speicher- und Netzwerkmuster, Automatisierung, Datensicherung/-replikation, Skalierbarkeit und Cloud-Portabilität.

Warum brauchen Organisationen Portabilität?

Es gibt viele Anwendungsfälle und Anforderungen, bei denen Portabilität (Infrastrukturunabhängigkeit) relevant wird. Vielleicht geht es um eine Hardware-Aktualisierung oder die Räumung des Rechenzentrums, um die Bindung an einen Anbieter oder eine Cloud zu vermeiden, um eine unzureichende Leistung der aktuellen Infrastruktur oder um Entwicklungs-/Testumgebungen, in denen Ressourcen nach Bedarf bereitgestellt und genutzt werden.

Multi-Cloud-Anwendungsportabilität mit VMware Tanzu

Um den Wert von Tanzu zu erkunden, möchte ich zunächst den folgenden Anwendungsfall eines Kunden vorstellen:

  • On-Premises: VMware vSphere-Infrastruktur, noch keine Containerisierung, nur Legacy-Anwendungen
  • Azure: Verwendung von Azure Kubernetes Service (AKS) und Azure Native Services
  • AWS: Verwendung von Amazon Elastic Kubernetes Services (EKS) und AWS Native Services

In diesem Fall verfolgt der Kunde einen „Cloud-appropriate“ Ansatz, um zu definieren, welche Cloud die richtige Landezone für seine Anwendungen ist. Er beschloss, neue Anwendungen in der öffentlichen Cloud zu entwickeln und die nativen Services von Azure und AWS zu nutzen. Der Kunde hat noch Hunderte von Legacy-Anwendungen (Monolithen) vor Ort und hat sich noch nicht entschieden, ob er einen “Lift-and-Shift- und dann Modernisierungs”-Ansatz verfolgen will, um eine Reihe von Anwendungen in die öffentliche Cloud zu migrieren.

Einige der Anwendungseigentümer haben jedoch bereits die Rückmeldung gegeben, dass ihre Anwendungen nicht in der öffentlichen Cloud gehostet werden dürfen, sondern vor Ort bleiben müssen und lokal modernisiert werden müssen.

Gleichzeitig erhält das IT-Architekturteam von anderen Anwendungseigentümern die Rückmeldung, dass der Weg in die öffentliche Cloud zwar auf dem Papier großartig ist, aber große betriebliche Herausforderungen mit sich bringt. Also fragt der IT-Betrieb das Architekturteam, ob es etwas gegen dieses Problem unternehmen kann.

Die Teams von Cloud Operations für Azure und AWS liefern eine unterschiedliche Qualität ihrer Dienste, Änderungen und Bereitstellungen dauern in einer ihrer öffentlichen Clouds länger, sie haben Probleme mit überlappenden Netzwerken, unterschiedlichen Speicherleistungsmerkmalen und APIs.

Eine weitere Herausforderung ist der rollenbasierte Zugriff auf die verschiedenen Clouds, Kubernetes-Cluster und APIs. Es gibt keine zentrale Log-Aggregation und keine Observability (intelligentes Monitoring & Alerting). Verkehrsverteilung und Lastausgleich sind weitere Punkte auf dieser Liste.

Aufgrund des Feedbacks vom Betrieb an die Architektur erhielt das IT-Engineering die Aufgabe, eine Multi-Cloud-Strategie zu definieren, die diese betriebliche Komplexität beseitigt.

Anmerkungen: Dies sind die üblichen Multi-Cloud-Herausforderungen, bei denen Clouds die neuen Silos sind und Unternehmen verschiedene Teams mit unterschiedlichem Fachwissen haben, die verschiedene Management- und Sicherheitstools verwenden.

Dies ist der Zeitpunkt, an dem der Multi-Cloud-Ansatz von VMware Tanzu für solche Kunden sehr interessant wird.

Konsistente Infrastruktur und Verwaltung

Der erste Diskussionspunkt wäre hier die Infrastruktur. Es ist wichtig, dass die verschiedenen privaten und öffentlichen Clouds nicht als Silos behandelt und betrachtet werden. Der Ansatz von VMware besteht darin, alle Clouds mit demselben zugrunde liegenden Technologiestack zu verbinden, der auf VMware Cloud Foundation basiert.

Neben der Tatsache, dass Lift- und Shift-Migrationen nun sehr einfach wären, bringt dieser Ansatz zwei sehr wichtige Vorteile für die containerisierten Workloads und die Cloud-Infrastruktur im Allgemeinen. Er löst die Herausforderung mit dem riesigen Speicher- und Netzwerk-Ökosystem, das für Kubernetes-Workloads zur Verfügung steht, indem er vSAN und NSX Data Center in jeder der bestehenden Clouds verwendet. Storage, Networking und Sicherheit sind nun integriert und konsistent.

Für bestehende Workloads, die nativ in öffentlichen Clouds laufen, können Kunden NSX Cloud verwenden, das die gleiche Management- und Steuerungsebene wie NSX Data Center nutzt. Das ist ein weiterer großer Schritt nach vorn.

Die Verwendung einer einheitlichen Infrastruktur ermöglicht den Kunden einen einheitlichen Betrieb und Automatisierung.

Konsistente Anwendungsplattform und Entwicklererfahrung

Betrachtet man die Anwendungs- und Container-Plattformen eines Unternehmens, so ist eine konsistente Infrastruktur zwar nicht erforderlich, aber im Hinblick auf die Betriebs- und Kosteneffizienz natürlich sehr hilfreich.

Um ein konsistentes Entwicklererlebnis zu bieten und die zugrundeliegende Anwendung oder Kubernetes-Plattform zu abstrahieren, würden Sie den gleichen Ansatz wie immer bei VMware verfolgen: eine Schicht oben drauf legen.

Hier heißt die Lösung Tanzu Kubernetes Grid (TKG), die eine konsistente, Upstream-kompatible Implementierung von Kubernetes bietet, die von VMware getestet, signiert und unterstützt wird.

Ein Tanzu Kubernetes-Cluster ist eine eigenständige Installation der Open-Source-Software Kubernetes, die von VMware entwickelt und unterstützt wird. Bei allen Angeboten erfolgt die Bereitstellung und Nutzung von Tanzu Kubernetes-Clustern auf eine deklarative Weise, die Kubernetes-Betreibern und -Entwicklern vertraut ist. Die verschiedenen Tanzu Kubernetes Grid-Angebote ermöglichen die Bereitstellung und Verwaltung von Tanzu Kubernetes-Clustern auf verschiedenen Plattformen, die so ähnlich wie möglich sein sollen, sich aber dennoch unterscheiden.

VMware Tanzu Kubernetes Grid (TKG aka TKGm)

Tanzu Kubernetes Grid kann in Software-definierten Rechenzentren (SDDC) und öffentlichen Cloud-Umgebungen, einschließlich vSphere, Microsoft Azure und Amazon EC2, eingesetzt werden. Ich gehe davon aus, dass die Google Cloud in der Roadmap enthalten ist.

TKG ermöglicht es Ihnen, Kubernetes konsistent zu betreiben und stellt es Ihren Entwicklern als Dienstprogramm zur Verfügung, genau wie das Stromnetz. TKG bietet die Dienste wie Vernetzung, Authentifizierung, Eingangskontrolle und Protokollierung, die eine Kubernetes-Produktionsumgebung benötigt.

Diese TKG-Version ist auch als TKGm für “TKG multi-cloud” bekannt.

VMware Tanzu Kubernetes Grid Service (TKGS aka vSphere mit Tanzu)

TKGS ist die Option, von der vSphere-Administratoren als erstes hören wollen, denn sie ermöglicht es, einen vSphere-Cluster in eine Plattform zu verwandeln, auf der Kubernetes-Workloads in dedizierten Ressourcenpools ausgeführt werden. TKGS war in der Vergangenheit als “Project Pacific” bekannt.

Nach der Aktivierung auf einem vSphere-Cluster erstellt vSphere mit Tanzu eine Kubernetes-Kontrollebene direkt auf der Hypervisor-Ebene. Sie können dann Kubernetes-Container ausführen, indem Sie vSphere Pods bereitstellen, oder Sie können über den VMware Tanzu Kubernetes Grid Service vorgelagerte Kubernetes-Cluster erstellen und Ihre Anwendungen in diesen Clustern ausführen.

VMware Tanzu Mission Control (TMC)

In unserem vorherigen Anwendungsfall haben wir AKS und EKS für den Betrieb von Kubernetes-Clustern in der öffentlichen Cloud.

Die VMware-Lösung für das cloudübergreifende Kubernetes-Management mit mehreren Clustern heißt Tanzu Mission Control und ist eine zentralisierte Management-Plattform für die Konsistenz und Sicherheit, die das IT-Engineering-Team gesucht hat.

TMC ist über VMware Cloud Services als SaaS-Angebot verfügbar und bietet IT-Betreibern einen einzigen Kontrollpunkt, um ihren Entwicklern einen Self-Service-Zugang zu Kubernetes-Clustern zu ermöglichen.

TMC bietet auch Cluster-Lebenszyklusmanagement für TKG-Cluster in Umgebungen wie vSphere, AWS und Azure.

Es ermöglicht Ihnen, die Cluster, die Sie bereits in den öffentlichen Clouds oder anderen Umgebungen (z. B. mit Rancher oder OpenShift) haben, über die Anbindung von konformen Kubernetes-Clustern unter ein Dach zu bringen.

https://youtu.be/SwummrRK1F8

Sie erhalten nicht nur eine globale Ansicht über Cluster, Teams und Clouds hinweg, sondern auch eine zentralisierte Authentifizierung und Autorisierung, eine einheitliche Richtlinienverwaltung und Datenschutzfunktionen.

VMware Tanzu Observability von Wavefront (TO)

Tanzu Observability extends the basic observability provided by TMC with an enterprise-level observation and analysis capability.

Wavefront von VMware hilft Tanzu-Betreibern, DevOps-Teams und Entwicklern, metrikgestützte Einblicke in die Echtzeit-Performance ihres benutzerdefinierten Codes, der Tanzu-Plattform und der ihr zugrunde liegenden Komponenten zu erhalten. Wavefront erkennt und warnt proaktiv vor Produktionsproblemen und verbessert die Agilität bei Code-Releases.

TO ist auch eine SaaS-basierte Plattform, die die hohen Anforderungen von Cloud-nativen Anwendungen erfüllen kann.

VMware Tanzu Service Mesh (TSM)

Tanzu Service Mesh, früher bekannt als NSX Service Mesh, bietet konsistente Konnektivität und Sicherheit für Microservices in allen Clouds und Kubernetes-Clustern. TSM kann in TKG-Clustern und Kubernetes-konformen Clustern von Drittanbietern installiert werden.

Organisationen, die die beliebte Calico Cloud Native Networking-Option für ihr Kubernetes-Ökosystem verwenden oder in Betracht ziehen, ziehen häufig eine Integration mit Istio (Service Mesh) in Betracht, um Dienste zu verbinden und die Kommunikation zwischen diesen Diensten zu sichern.

Die Kombination aus Calico und Istio kann durch TSM ersetzt werden, das auf VMware NSX für die Vernetzung aufbaut und eine Abstraktion der Istio-Datenebene verwendet. Diese Version von Istio ist signiert und wird von VMware unterstützt und ist identisch mit der Upstream-Version. TSM bietet Unterstützung für Istio auf Unternehmensniveau und einen vereinfachten Installationsprozess.

Eines der wichtigsten Konstrukte von Tanzu Service Mesh ist das Konzept eines Global Namespace (GNS). GNS ermöglicht es Entwicklern, die Tanzu Service Mesh nutzen, unabhängig davon, wo sie sich befinden, Anwendungsservices zu verbinden, ohne dass sie Details der zugrunde liegenden Infrastruktur angeben müssen (oder diese überhaupt kennen), da dies alles automatisch geschieht. Dank dieser Abstraktion können Ihre Anwendungs-Microservices überall und in jeder Cloud “leben”, so dass Sie Platzierungsentscheidungen auf der Grundlage von Anwendungs- und Unternehmensanforderungen treffen können – und nicht aufgrund von Infrastrukturbeschränkungen.

Hinweis: Am 18. März 2021 kündigte VMware die Übernahme von Mesh7 und die Integration der kontextbezogenen API-Verhaltens-Sicherheitslösung von Mesh7 mit Tanzu Service Mesh an, um DevSecOps zu vereinfachen.

Tanzu Editions

Das VMware Tanzu-Portfolio wird in drei verschiedenen Editionen angeboten: Basic, Standard, Advanced


Tanzu Basic ermöglicht die unkomplizierte Implementierung von Kubernetes in vSphere, so dass vSphere-Administratoren bei der Verwaltung von Clustern die vertrauten Tools zur Verwaltung von VMs nutzen können = TKGS

Tanzu Standard bietet Multi-Cloud-Unterstützung und ermöglicht die Kubernetes-Bereitstellung in lokalen, öffentlichen Cloud- und Edge-Umgebungen. Darüber hinaus enthält Tanzu Standard eine zentralisierte Multi-Cluster-SaaS-Kontrollebene für einen konsistenteren und effizienteren Betrieb von Clustern in verschiedenen Umgebungen = TKGS + TKGm + TMC

Tanzu Advanced baut auf Tanzu Standard auf, um den Lebenszyklus von Containern zu vereinfachen und abzusichern, so dass Teams die Bereitstellung von modernen Anwendungen in großem Umfang über verschiedene Clouds hinweg beschleunigen können. Es fügt eine umfassende globale Kontrollebene mit Beobachtbarkeit und Service-Mesh, konsolidierte Kubernetes-Ingress-Services, Datenservices, Container-Katalog und automatisierte Container-Builds hinzu = TKG (TKGS & TKGm) + TMC + TO + TSM + VIEL MEHR

Tanzu Data Services

Ein weiteres Thema zur Verringerung von Abhängigkeiten und zur Vermeidung von Vendor Lock-in wäre Tanzu Data Services – ein separater Teil des Tanzu-Portfolios mit On-Demand-Caching (Tanzu Gemfire), Messaging (Tanzu RabbitMQ) und Datenbank-Software (Tanzu SQL & Tanzu Greenplum).

Zusammenfassung

Wie immer versuche ich, die Dinge zusammenzufassen und zu vereinfachen, wo es nötig ist, und ich hoffe, dass es Ihnen geholfen hat, den Wert und die Möglichkeiten von VMware Tanzu besser zu verstehen.

Es gibt noch viele weitere Produkte im Tanzu-Portfolio, die Ihnen helfen, Ihre Anwendungen zu erstellen, auszuführen, zu verwalten, zu verbinden und zu schützen.

Sie möchten bei VMware immer up to date sein? Dann folgen Sie VMware auf TwitterXINGLinkedInYoutube Podcast