Die Rolle von Microservices in der modernen Softwareentwicklung

Autor: Roger Morrison
Erstelldatum: 23 September 2021
Aktualisierungsdatum: 10 Kann 2024
Anonim
Architekturen - Von Monolithen bis Microservices (Code Days 2020)
Video: Architekturen - Von Monolithen bis Microservices (Code Days 2020)

Inhalt



Quelle: Andreus / Dreamstime.com

Wegbringen:

Microservices ermöglichen die Entwicklung von Software in kleineren Teilen, die nicht voneinander abhängig sind, und bieten so mehr Flexibilität.

Obwohl Microservices nicht gerade ein neuartiges Konzept oder eine neuartige Praxis sind, haben sie die Softwareentwicklung in vielerlei Hinsicht neu definiert. Microservices haben das Potenzial, monolithische Anwendungen zu ersetzen, und sind stärker auf die sich ändernden Geschäftsanforderungen von Unternehmen ausgerichtet. Eine typische monolithische Anwendung ist eine eigenständige Softwareanwendung, bei der alle Komponenten eng miteinander verbunden sind. Wenn Komponenten aus irgendeinem Grund betroffen sind, ist die gesamte Anwendung betroffen. Beispielsweise kann eine Änderung in einer Komponente eine vollständige Systemregression und eine vollständige Bereitstellung erforderlich machen. Monolithische Anwendungen werden als unflexible Systeme angesehen, und Unternehmen verbrauchen eine Menge Ressourcen, um solche Anwendungen zu warten. Microservices hingegen erweisen sich als agiler und flexibler. Es handelt sich um kleine, unabhängige und wiederverwendbare Dienste, die geändert und unabhängig bereitgestellt werden können. Dies ermöglicht es Unternehmen, eine Menge Investitionen zu sparen. Obwohl nicht gesagt werden kann, dass Microservices universell eingesetzt werden, gibt es bereits einige ermutigende Fallstudien. (Weitere Informationen zu Technologietrends finden Sie unter Autonome Systeme und Aufstieg des Menschen aus der Middleware.)


Was sind Microservices?

Microservices ist ein Architekturstil zur Entwicklung einer einzelnen Softwareanwendung mit einer Kombination kleiner, unabhängiger Dienste. Die Idee ist, jeden Dienst isoliert bearbeiten oder modifizieren zu können, damit im Gegensatz zu monolithischen Anwendungen die gesamte Softwareanwendung durch das Update nicht beeinträchtigt wird. Jeder Dienst hat seine eigenen Prozesse und kommuniziert auf einfache Weise - häufig mithilfe eines HTTP-Ressourcen-Webdiensts.

Um die Merkmale der Microservice-Architektur zu verstehen, kann es relevant sein, sie mit monolithischen Softwaresystemen zu vergleichen. Die folgende Tabelle zeigt die Hauptunterschiede zwischen monolithischen und Microservices-Softwaresystemen.

Mechanismus

Monolithisch

Microservices

Prozess

Fasst alle Funktionen in einem einzigen Prozess zusammen.


Im Gegensatz zu komplexen Systemen wie dem Enterprise Service Bus (ESB), die fortschrittliche Systeme zum Ausführen von Aufgaben wie Routing, Choreografie und Anwenden von Geschäftsregeln verwenden, verarbeitet die Microservice-Architektur eine Anfrage auf einfache Weise: Sie akzeptiert Anfragen, verarbeitet sie und generiert eine Antwort .

Während Sie mit SOA Dienste in verschiedenen Technologie-Stacks entwickeln und zur Entwicklung einer Softwareanwendung bereitstellen können, muss jeder Dienst über einen gemeinsamen Kommunikationsmechanismus kommunizieren.Im Fall einer Mikrodienstarchitektur gibt es jedoch keine solche Anforderung. Dienste können unabhängig voneinander bereitgestellt und betrieben werden.

Jeder Dienst in einer Microservice-Architektur ist in der Regel erheblich kleiner als der in einer SOA-Architektur. Microservices sind unabhängig voneinander implementierbare Dienste, während eine SOA Teil einer Monolith-Anwendung oder kleiner implementierbarer Dienste sein kann.

Einige Beispiele für Microservices

Viele bekannte Organisationen haben das monolithische System für die Microservice-Architektur verlassen, darunter Netflix, eBay, Amazon, der britische Government Digital Service, PayPal, Soundcloud, The Guardian und viele andere.

Netflix hat mit großem Erfolg Microservices in der SOA-Architektur eingesetzt. Täglich werden mehr als eine Milliarde Anrufe über APIs von mehr als 800 verschiedenen Arten von Geräten empfangen. Anschließend werden fünf weitere Anrufe an den Back-End-Service getätigt.

EBay ist auch zu Microservices übergegangen, deren Kernanwendung mehrere kleinere, autonome Anwendungen umfasst. Jede kleine Anwendung führt die Geschäftslogik für verschiedene Geschäftsbereiche der Anwendung aus.

Fazit

Es ist offensichtlich, dass Microservices sehr beliebt sind, da sie stärker auf sich ändernde Geschäftsszenarien ausgerichtet sind. Es muss jedoch bedacht werden, dass es kein Problem ist, so viele verschiedene Dienstleistungen zusammenzustellen, um ein einziges Ziel zu erreichen. Unternehmen müssen weiterhin eine klare, zeitnahe Kommunikation im System verwalten, was eine Herausforderung sein kann. Die Verwaltung von Teams oder Personen, die über Kenntnisse in der Verwaltung so vieler verschiedener Dienste verfügen, kann ebenfalls eine Herausforderung darstellen. Alles in allem scheint die Microservice-Architektur immer noch eine viel bessere Option zu sein als die monolithische Architektur.