Was ist eine Microservice-Architektur?

Haben Sie sich jemals gefragt, warum Unternehmen wie Netflix und Amazon scheinbar mit Lichtgeschwindigkeit neue Funktionen einführen? Das Geheimnis könnte in ihrem auf der Microservice-Architektur basierenden technischen Stack verborgen sein. 

Im Kern geht es bei der Microservice-Architektur darum, eine Anwendung in eine Sammlung von kleinen, lose gekoppelten Diensten zu zerlegen. Jeder Dienst führt einen eigenen Prozess aus und kommuniziert über eine klar definierte API. Jeder Dienst hat seine eigene Codebasis, die von einem kleinen Entwicklungsteam verwaltet und unabhängig bereitgestellt werden kann. 

Quelle: Dr Milan Milanović

 

Schlüsselelemente der Microservice-Architektur

𝗠𝗶𝗰𝗿𝗼𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀: Jeder Microservice ist für eine bestimmte Funktionalität zuständig, was eine gezielte Entwicklung und eine einfachere Fehlerbehebung ermöglicht. Sie können über RPC (Remote Procedure Call) miteinander kommunizieren. Die Dienste sind für die Speicherung ihrer eigenen Daten oder ihres externen Zustands verantwortlich.

𝗟𝗼𝗮𝗱 𝗕𝗮𝗹𝗮𝗻𝗰𝗲𝗿: Unter einem Load Balancer versteht man die Verteilung eingehender Anfragen auf mehrere Instanzen eines Dienstes, um eine hohe Verfügbarkeit, Skalierbarkeit und Effizienz zu erreichen. 

𝗖𝗗𝗡 (𝗖𝗼𝗻𝘁𝗲𝗻𝘁 𝗗𝗲𝗹𝗶𝘃𝗲𝗿𝘆 𝗡𝗲𝘁𝘄𝗼𝗿𝗸): Ein verteiltes Serversystem (Edge Server), das Webinhalte abhängig vom Standort des Nutzers ausliefert. Es geht darum, die Inhalte näher an den Endnutzer zu bringen, damit die Seiten schneller geladen werden. 

𝗔𝗣𝗜 𝗚𝗮𝘁𝗲𝘄𝗮𝘆: Ein API-Gateway, ist der einzige Zugangspunkt für alle Clients. Ein API-Gateway kann Anfragen auf zwei Arten bearbeiten. Einige Anfragen werden einfach an den entsprechenden Dienst weitergeleitet. Andere Anfragen werden durch Auffächern auf mehrere Dienste bearbeitet. Diese werden mit Hilfe von REST API oder anderen Protokollen an den entsprechenden Microservice weiterleitet. 

𝗠𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁: Überwachung und Koordinierung der Microservices mit den dafür nötigen Tools, um sicherzustellen, dass sie effizient laufen und effektiv untereinander und mit dem Nutzer kommunizieren. 

Vorteile einer Microservice-Architektur

Flexible Skalierung: Microservices ermöglichen es, jeden Service unabhängig voneinander zu skalieren, um die Nachfrage nach der von ihm unterstützten Anwendungsfunktion zu decken 

Einfache Bereitstellung: Microservices ermöglichen eine kontinuierliche Integration und Bereitstellung, wodurch es einfacher wird, neue Konzepte auszuprobieren und zurückzunehmen, wenn etwas nicht funktioniert. 

Technologische Flexibilität: Teams haben die Freiheit, das beste Tool zur Lösung ihrer spezifischen Probleme auszuwählen 

Wiederverwendbarer Code: Ein für eine bestimmte Funktion geschriebener Service kann auch als Baustein für einen anderen Funktionsumfang verwendet werden. 

Resilienz: Die Serviceunabhängigkeit erhöht die Ausfallsicherheit einer Anwendung. Mit Microservices überwinden Anwendungen einen kompletten Serviceausfall, indem sie die Funktionalität beeinträchtigen und nicht die gesamte Anwendung zum Absturz bringen. 

Nachteile einer Microservice-Architektur

Komplexität: Mehr Microservices mit in sich geschlossenen Diensten, können zu einem komplexeren System führen. 

Dateninkonsistenz:  Die Aufrechterhaltung der Konsistenz zwischen Microservicediensten und Ihren Daten mit Ihren unterschiedlichen Speicherorten kann eine Herausforderung sein. 

Netzwerk Latenzzeit: Die dienstübergreifende Netzwerk Kommunikation über mehrere Microservices kann zu Verzögerungen führen. 

𝗘𝗿𝗿𝗼𝗿 𝗵𝗮𝗻𝗱𝗹𝗶𝗻𝗴: Wenn ein Fehler auftritt, ist es schwierig, herauszufinden, warum und wo er passiert ist. 

Die Microservice-Architektur bietet eine innovative Lösung für die Softwareentwicklung, um monolitische Anwendungen zu entkoppeln. Ermöglicht gezielte Entwicklung, leichtere Fehlerbehebung und bringt zahlreiche Vorteile wie flexible Skalierung, einfache Bereitstellung und technologische Vielseitigkeit mit sich. Trotzdem sollten die Herausforderungen wie zunehmende Komplexität und potenzielle Dateninkonsistenzen berücksichtigt werden. Die Microservice-Architektur ist eine vielversprechende Option, erfordert jedoch eine sorgfältige Abwägung der Vor- und Nachteile für die individuellen Bedürfnisse eines Unternehmens in einer sich ständig wandelnden technologischen Landschaft, und Sie brauchen erfahrene DevOps-Teams, um sie bereitzustellen und zu verwalten.
 

Beitrag teilen

Dominique Marty

Dominique Marty arbeitet als M365 Transition Engineer bei der Swisscom AG und bloggt aus dem Unterricht des CAS Digital Architect. Er ist ein Technik-Enthusiast mit einer Leidenschaft für alles, was mit Cloud und M365 zu tun hat. Neben der täglichen Arbeit ist er ein Tech-News-Freak, der immer auf der Suche nach den neuesten Updates und Innovationen in der Branche ist.

Alle Beiträge ansehen von Dominique Marty →

Schreibe einen Kommentar