menu
arrow_back

Von einer monolithischen Website zu Mikrodiensten in Google Kubernetes Engine migrieren

—/100

Checkpoints

arrow_forward

Create a GKE Cluster

Deploy Existing Monolith

Migrate Orders to a microservice

Migrate Products to microservice

Migrate Frontend to microservice

Von einer monolithischen Website zu Mikrodiensten in Google Kubernetes Engine migrieren

1 Stunde 30 Minuten 7 Guthabenpunkte

GSP699

Google Cloud-Labs zum selbstbestimmten Lernen

Einführung

Was spricht dafür, eine monolithische Anwendung zu einer Mikrodienstarchitektur zu migrieren? Features einer Anwendung auf Mikrodienste aufzuteilen hat die folgenden Vorteile. Die meisten beruhen darauf, dass Mikrodienste lose miteinander verknüpft sind.

  • Mikrodienste können unabhängig voneinander getestet und bereitgestellt werden. Je kleiner die Deployment-Einheit ist, desto einfacher ist das Bereitstellen.
  • Mikrodienste lassen sich in verschiedenen Sprachen und Frameworks implementieren. Für jeden Mikrodienst gibt es eine Auswahl an Technologien, die sich für den jeweiligen Anwendungsfall am besten eignen.
  • Mikrodienste können von verschiedenen Teams verwaltet werden. Durch die Abgrenzung der Mikrodienste voneinander ist es einfacher, einem Team einen oder mehrere Dienste zuzuweisen.
  • Durch das Umsteigen auf Mikrodienste sind die Teams weniger stark aufeinander angewiesen. Für jedes Team sind nur die APIs der Mikrodienste von Belang, für die es zuständig ist. Die Teams müssen sich weder darüber Gedanken machen, wie diese Mikrodienste implementiert werden, noch über ihre Releasezyklen usw.
  • Sie können Ausfälle leichter im Design einplanen. Da die Dienste klar voneinander abgegrenzt sind, lässt sich einfacher feststellen, was zu tun ist, wenn ein Dienst ausfällt.

Mikrodienste haben gegenüber monolithischen Anwendungen jedoch auch einige Nachteile:

  • Da es sich bei einer auf Mikrodiensten beruhenden Anwendung um eine Verknüpfung verschiedener Dienste handelt, die häufig auf nicht direkt erkennbare Weise miteinander interagieren, nimmt die allgemeine Komplexität des Systems tendenziell zu.
  • Anders als bei monolithischen Anwendungen erfolgt die Kommunikation bei Mikrodiensten über ein Netzwerk und nicht über interne Strukturen. In manchen Fällen kann dies zu einem Sicherheitsproblem führen. Bei Istio wird diesem Problem durch automatisches Verschlüsseln des Traffics zwischen den Mikrodiensten begegnet.
  • Aufgrund von Latenzen zwischen den Diensten wird möglicherweise nicht das gleiche Leistungsniveau erreicht wie bei einem monolithischen Ansatz.
  • Das Verhalten Ihres Systems wird nicht von einem einzelnen Dienst, sondern von mehreren Diensten und deren Zusammenwirken bestimmt. Daher ist es schwieriger, nachzuvollziehen, wie sich Ihr System in der Produktionsumgebung verhält, d. h., die Beobachtbarkeit wird erschwert. Auch dieses Problem kann mit Istio umgangen werden.

In diesem Lab stellen Sie eine monolithische Anwendung in einem Google Kubernetes Engine-Cluster bereit und teilen sie dann in Mikrodienste auf. Kubernetes ist eine Plattform zum Verwalten, Hosten, Skalieren und Bereitstellen von Containern. Container bieten die Möglichkeit, Code portabel zu verpacken und auszuführen. Sie eignen sich gut für Anwendungen, die in Form von Mikrodiensten entwickelt wurden und bei denen jeder Mikrodienst in einem eigenen Container ausgeführt werden kann.

Diagramm der Architektur unserer Mikrodienste

Als Erstes teilen Sie die monolithische Anwendung schrittweise in drei Mikrodienste auf: "Orders", "Products" und "Frontend". Mithilfe von Cloud Build erstellen Sie ein Docker-Image für jeden Mikrodienst. Anschließend stellen Sie die Mikrodienste in Google Kubernetes Engine (GKE) mit einem Kubernetes-Dienst vom Typ LoadBalancer bereit und geben sie frei. Sie führen dies für alle Dienste aus und refaktorieren sie dabei gleichzeitig aus der monolithischen Anwendung. Während des gesamten Vorgangs werden sowohl die monolithische Anwendung als auch die Mikrodienste ausgeführt, bis Letztere gelöscht werden kann.

636a2d58588b2b87.png

Lerninhalte

  • Eine monolithische Anwendung in Mikrodienste aufteilen

  • Google Kubernetes Engine-Cluster erstellen

  • Docker-Image erstellen

  • Docker-Images in Kubernetes bereitstellen

Voraussetzungen

  • Ein Google Cloud Platform-Konto mit Administratorzugriff zum Erstellen von Projekten oder eines Projekts mit der Rolle "Projektinhaber"

  • Grundlegende Kenntnisse von Docker und Kubernetes

Wenn Sie sich in Qwiklabs anmelden, erhalten Sie Zugriff auf den Rest des Labs – und mehr!

  • Sie erhalten vorübergehenden Zugriff auf Google Cloud Console.
  • Mehr als 200 Labs für Einsteiger und Experten.
  • In kurze Sinneinheiten eingeteilt, damit Sie in Ihrem eigenen Tempo lernen können.
Beitreten, um dieses Lab zu starten