Was ist eine Mikrodienstarchitektur?

Eine Mikrodienstarchitektur (oft als Mikrodienste bezeichnet) bezeichnet einen Architekturstil zur Entwicklung von Anwendungen. Mit Mikrodiensten kann eine große Anwendung in kleinere, unabhängige Elemente mit einem eigenen Zuständigkeitsbereich aufgeteilt werden. Zur Verarbeitung einer einzelnen Nutzeranfrage lässt sich eine auf Mikrodiensten beruhende Anwendung auf vielen internen Mikrodiensten aufrufen.

Container sind ein gutes Beispiel für Mikrodienste. Damit können Sie sich auf die Entwicklung der Dienste konzentrieren, ohne sich Gedanken über die Abhängigkeiten machen zu müssen. Serverloses Computing ist ein weiterer gängiger Ansatz, der es Teams ermöglicht, Microservices auszuführen, ohne Server oder Infrastruktur zu verwalten, und Funktionen automatisch in Reaktion auf die Nachfrage zu skalieren.

Erfahren Sie mehr darüber, wie Sie mit Google Kubernetes Engine (GKE) und Cloud Run Anwendungen auf der Basis von Mikrodiensten durch Verwendung von Containern erstellen können.

Startbereit? Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.

Weitere Informationen zur Mikrodienstarchitektur
Weitere Informationen zur Mikrodienstarchitektur

Definition von Mikrodienstarchitektur

Eine Mikrodienstarchitektur ist eine Art Anwendungsarchitektur, in der die Anwendung als eine Sammlung von Diensten entwickelt wird. Sie bietet das Framework, mit dem Sie Diagramme und Dienste der Mikrodienstarchitektur unabhängig voneinander entwickeln, bereitstellen und verwalten können.

Innerhalb einer Mikrodienstarchitektur ist jeder Mikrodienst ein einzelner Dienst, der für ein Anwendungsfeature und die Verarbeitung diskreter Aufgaben entwickelt wurde. Jeder Mikrodienst kommuniziert über einfache Schnittstellen mit anderen Diensten, um Geschäftsprobleme zu lösen.

Monolithische vs. Mikrodienstarchitektur

Traditionelle monolithische Anwendungen werden als eine einzige, einheitliche Einheit entwickelt. Alle Komponenten sind eng miteinander verknüpft und teilen sich Ressourcen und Daten. Dies kann zu Problemen bei der Skalierung, Bereitstellung und Wartung der Anwendung führen, insbesondere wenn sie komplexer wird. Im Gegensatz dazu wird bei der Mikrodienstarchitektur eine Anwendung in eine Reihe kleiner, unabhängiger Dienste zerlegt. Jeder Mikrodienst ist in sich geschlossen und hat seinen eigenen Code, seine eigenen Daten und Abhängigkeiten. Dieser Ansatz bietet mehrere potenzielle Vorteile:

  • Bessere Skalierbarkeit: Einzelne Mikrodienste können unabhängig voneinander skaliert werden, je nach ihren spezifischen Anforderungen.
  • Höhere Agilität: Mikrodienste können unabhängig entwickelt, bereitgestellt und aktualisiert werden, was schnellere Releasezyklen ermöglicht.
  • Höhere Ausfallsicherheit: Wenn ein Mikrodienst ausfällt, hat das nicht unbedingt Auswirkungen auf die gesamte Anwendung.
  • Technologische Vielfalt: Die Flexibilität von Mikrodiensten ermöglicht es Teams, für jeden Dienst die am besten geeignete Technologie zu verwenden.

Für Anwendungen, die noch nicht groß oder komplex genug sind, um eine vollständig verteilte Mikrodienstarchitektur zu rechtfertigen, ist der „modulare Monolith“ eine leistungsstarke Option. Bei diesem Ansatz wird eine einzelne Anwendungsbereitstellungseinheit (ein Monolith) beibehalten, aber die Codebasis der Anwendung wird streng in stark kohäsive, lose gekoppelte interne Module aufgeteilt, die auf der Geschäftsdomain basieren. Dies bietet die organisatorischen Vorteile von Mikrodiensten (klare Grenzen, unabhängige Entwicklung) ohne den vollen Aufwand für die Verwaltung eines verteilten Systems.

Branchenbeispiele

Viele Unternehmen aus verschiedenen Branchen haben eine Mikrodienstarchitektur eingeführt, um spezifische geschäftliche Herausforderungen zu bewältigen und Innovationen voranzutreiben. Hier einige Beispiele:

  • E-Commerce: Viele E-Commerce-Plattformen nutzen Microservices, um verschiedene Aspekte ihrer Abläufe zu verwalten, z. B. Produktkatalog, Warenkorb, Auftragsbearbeitung und Kundenkonten. So können sie einzelne Dienste nach Bedarf skalieren, Kundenerlebnisse personalisieren und schnell neue Funktionen bereitstellen.
  • Streamingdienste: Streamingdienste nutzen häufig Mikrodienste für Aufgaben wie Videocodierung, Inhaltsbereitstellung, Nutzerauthentifizierung und Empfehlungssysteme. So können sie Millionen von Nutzern gleichzeitig Streaming in hoher Qualität bieten.
  • Finanzdienstleistungen: Finanzinstitute nutzen Microservices, um verschiedene Aspekte ihrer Abläufe zu verwalten, z. B. Betrugserkennung, Zahlungsabwicklung und Risikomanagement. So können sie schnell auf veränderte Marktbedingungen reagieren, die Sicherheit verbessern und behördliche Anforderungen erfüllen.

Wofür wird die Mikrodienstarchitektur verwendet?

In der Regel werden Mikrodienste verwendet, um die Anwendungsentwicklung zu beschleunigen. Häufig werden Mikrodienstarchitekturen mit Java und insbesondere mit Spring Boot erstellt. Mikrodienste lassen sich mit einer dienstorientierten Architektur vergleichen. Beide haben das gleiche Ziel: Monolithische Anwendungen werden in kleinere Komponenten aufgeteilt. Sie verfolgen jedoch unterschiedliche Ansätze. Im Folgenden finden Sie einige Beispiele für Mikrodienstarchitekturen:

Websitemigration

Eine komplexe Website, die auf einer monolithischen Plattform gehostet wird, kann zu einer cloud- und containerbasierten Mikrodienstplattform migriert werden.

Medieninhalte

Mit der Mikrodienstarchitektur können Bilder und Video-Assets in einem skalierbaren Objektspeichersystem gespeichert und direkt im Web oder auf Mobilgeräten bereitgestellt werden.

Transaktionen und Rechnungen

Zahlungsabwicklung und Bestellung können als unabhängige Diensteinheiten aufgeteilt werden. Zahlungen werden dann weiterhin akzeptiert, auch wenn die Rechnungsstellung nicht funktioniert.

Datenverarbeitung

Eine Mikrodienstplattform kann die Cloud-Unterstützung für vorhandene modulare Datenverarbeitungsdienste erweitern.

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.
Sprechen Sie mit einem Google Cloud-Vertriebsexperten, um Ihre besonderen Herausforderungen im Detail zu besprechen.

Designmuster für Mikrodienste

Um die Komplexität verteilter Systeme zu bewältigen und ihre Leistung zu optimieren, setzen Architektinnen und Architekten heute auf mehrere grundlegende Entwurfsmuster.

Service Mesh

  • Ein Service Mesh ist eine dedizierte Infrastrukturebene für die Dienst-zu-Dienst-Kommunikation.
  • Dabei wird in der Regel ein Sidecar-Proxy (wie Istio oder Envoy) verwendet, der neben jedem Mikrodienstcontainer bereitgestellt wird, um den Traffic zu verwalten.
  • Dieses Muster bietet wichtige Funktionen wie Ausfallsicherheit (z. B. Wiederholungen und Circuit Breaking), Sicherheit (mTLS-Authentifizierung) und Beobachtbarkeit (detaillierte Tracing- und Messwerte), ohne dass Änderungen am Dienstcode selbst erforderlich sind.

Ereignisgesteuerte Architektur (EDA)

  • Während herkömmliche Mikrodienste oft synchron über REST APIs kommunizieren, bevorzugen moderne Architekturen zunehmend die asynchrone Kommunikation über Ereignisse.
  • Bei der ereignisgesteuerten Architektur veröffentlicht ein Dienst ein Ereignis (eine Zustandsänderung) in einem Message Broker (wie Google Cloud Pub/Sub), und andere Dienste abonnieren diese Ereignisse.
  • Dies fördert eine lockerere Kopplung, eine bessere Echtzeitreaktion und eine verbesserte Fehlerisolierung, da die Dienste nicht direkt voneinander wissen müssen.

Gleich loslegen

Profitieren Sie von einem Guthaben in Höhe von 300 $, um Google Cloud und mehr als 20 immer kostenlose Produkte kennenzulernen.

Google Cloud