Was sind Microservices?

Was sind Microservices?

Microservices und die damit verbundenen Architekturen gewinnen in Unternehmen aller Größenordnungen an Bedeutung. Viele IT-Entscheidungsträger haben allerdings immer noch keine genaue Vorstellung davon, was Microservices eigentlich sind und was ein Microservices-Framework für die Entwicklung von IT-Lösungen in modernen Unternehmen bedeutet. Auch für DevOps spielen Microservices eine wichtige Rolle. Der agile Entwicklungszyklus vereint zwei zuvor separate IT-Entitäten – Entwicklung und Abläufe – in einem gemeinsam umgesetzten Projektansatz.

Im Prinzip sind Microservices eine neue Art der Erstellung von Unternehmensanwendungen: Anwendungen werden in kleinere, unabhängige Services unterteilt, die nicht von einer bestimmten Programmiersprache abhängig sind. Entwicklungsteams können also ihre vertrauten Programmierungstools verwenden und im Anwendungsentwicklungsprozess trotzdem ein optimales Zusammenwirken erreichen. Beim Microservices-Ansatz lassen sich große, komplexe Anwendungen in kleinere Bausteine aus ausführbaren Programmen unterteilen. Wieder zusammengestellt bieten sie dann alle Funktionen einer umfassenden, hochkomplexen Anwendung.

Bei der Konferenz MuleSoft Connect im Jahr 2016 sagten Katharina Probst von Netflix und Uri Sarid, CTO von MuleSoft, dass es beim Wettbewerb der erfolgreichsten Unternehmen von heute – McDonalds, Under Armour, Amazon, Tesla und Netflix – nicht einzig und allein auf die von ihnen angebotenen Waren und Preise ankomme, sondern auch auf ihre Fähigkeit, digitale Plattformen anzubieten. Es geht also um innovative Methoden, um Kunden diese Waren, Services und Experiences skaliert und in Echtzeit bereitzustellen. Dies wird durch das Erstellen kleiner Services ermöglicht, die sich eigenständig zu Prozessen zusammenstellen, sich unabhängig voneinander entwickeln, so schnell wie nötig entwickelt werden können und für Änderungen und Wiederverwendung optimiert sind. 
 
Unternehmen erreichen dank der Granularität und Wiederverwendbarkeit von Microservices höhere Agilität und stärkere Kostensenkungen. Die Vielzahl unterstützender Technologien und Ansätze machte das Konzept Microservice-basierter Architekturen zur Realität für Unternehmen aller Größenordnungen. Dadurch wird bei der Anwendungsentwicklung und -implementierung ein bisher nicht vorstellbares Maß an Agilität und Effizienz erzielt.

Diese Konzepte und Technologien umfassen eine höhere Verfügbarkeit von Containern, Tools und Prozessen, die zur Realisierbarkeit SOA-basierter Prozesse beitragen, sowie Domain-gesteuerte Prozesse. Durch diese Kombination entsteht eine Entwicklungsumgebung, die stärker auf Zusammenarbeit als auf Code-Governance ausgerichtet ist und Produktivitätssteigerungen bewirkt.

Definition der Microservices-Architektur

Eine Microservices-Architektur basiert auf der Entwicklung einer einzigen Anwendung als Suite kleiner, eng gefasster, unabhängig implementierbarer Services. Jeder Microservice führt seine eigenen Prozesse aus und kommuniziert mit einem schlanken Mechanismus, wobei es sich oft um eine HTTP-Ressourcen-API handelt. Diese Services sind für bestimmte Geschäftsfunktionen zusammengefasst und werden unabhängig voneinander über einen vollständig automatisierten Mechanismus implementiert.

Microservices können beim Wechsel zu cloudbasierten Angeboten angeglichen werden, wobei die Steuerung mehrerer Anwendungen von einem gemeinsamen Servicepaket möglich ist. Eine auf Microservices basierte Architektur erweist sich jedoch für öffentliche, private und hybride Cloud-Implementierungen als nützlich, wenn das Konzept der Verwendung einer Sammlung kleiner unabhängiger Services über eine schlanke Schnittstelle, wie zum Beispiel eine RESTful-API, zum Einsatz kommt.

Das Konzept einer auf Microservices basierten Architektur geht auf die Anfänge der serviceorientierten Architektur (SOA) zurück. Damals lag der Schwerpunkt auf Service-Erkennung und anonymer Servicenutzung auf Basis von UDDI (Universal Description, Discovery and Integration). Diese Prinzipien haben auch heute noch Gültigkeit. Microservices gehen jedoch noch einige Schritte weiter, indem sie mit RESTful-APIs sowie virtualisierten Plattformen und Containern eine hybride Service-Integration hervorbringen, die monolithische Anwendungen und eine inflexible Codebasis ersetzt. Durch die Zusammensetzung dieser unabhängigen Services entsteht dieselbe Erfahrung wie bei einer monolithischen Anwendung. Die serviceorientierte Architektur in ihrer ursprünglichen Form war nur deshalb nicht erfolgreich, weil die richtigen Bausteine für die Umsetzung dieses Ansatzes fehlten.

Durch die Einführung neuer Technologien, die die drei Hauptbausteine einer Microservices-Architektur bilden, sind Microservices, die auf den Grundsätzen von SOA basieren, nunmehr jedoch Realität. Wenn diese Bausteine frei verfügbar und vorgefertigt sind, entstehen die folgenden Vorteile:

  • Container: Durch Abstrahieren des Betriebssystem-Kerncodes aus der zugrunde liegenden Hardware haben Software-Container einen standardisierten Rahmen für alle Services geschaffen.Die durch Container erzielte Standardisierung beseitigt den aufwändigen Integrationsprozess, der zuvor in einem Umfeld mit heterogener Infrastruktur üblich war. Dank Anbietern wie zum Beispiel Docker können Entwickler Anwendungen nun auf vollkommen andere Art erstellen und implementieren.
  • APIs: Durch die Einführung und die verbesserten Fähigkeiten von APIs ist für Kommunikationen zwischen Anwendungen, Services und Servern ein solides und standardisiertes Format entstanden. Insbesondere REST-APIs (Representation-State-Transfer-APIs) sind für die Microservices-Architektur äußerst wichtig. Eine RESTful-API schlüsselt eine Transaktion in eine Reihe kleiner Module auf. Dabei ist jedes dieser Module für einen bestimmten Teil zuständig, der der Transaktion zugrunde liegt. Diese Modularität bietet Entwicklern eine erhebliche Flexibilität bei der Entwicklung schlanker APIs, die für browserbasierte Anwendungen geeigneter sind.
  • Skalierbare Cloud-Infrastrukturen: Öffentliche, private und hybride Cloud-Infrastrukturen sind nun alle dazu fähig, Ressourcen nach Bedarf bereitzustellen. Unabhängig von der Auslastung oder dem Datenverkehr kann die Bereitstellung von Services effektiv skaliert werden. Dadurch werden Microservice flexibel und somit anpassungsfähiger und effizienter.

Die Risiken einer Microservices-Architektur

Bei neuen architektonischen Trends besteht die Gefahr, dass sie als Allheilmittel bei IT-Problemen wahrgenommen und als die neueste und beste Lösung eingesetzt werden, ohne dass vorab alle Voraussetzungen hinsichtlich IT-Betriebsmodell, Infrastruktur und Fähigkeiten der Entwickler bedacht wurden.

Eine Microservices-Architektur-Strategie sollte einen umsichtigen und maßgeschneiderten Ansatz verfolgen, um so für maximalen Nutzen zu sorgen. Wir empfehlen die Planung und Entwicklung von Microservices, die Funktionen für bestimmte Geschäftsbereiche umfassen und Sicherheitsaspekte berücksichtigen. Sonst besteht das Risiko, dass Sie letztlich ein monolithisches Microservices-Paket entwickeln, weil alle Entwickler unabhängig voneinander arbeiten. Mit anderen Worten: Unternehmen könnten am Ende viele uneinheitliche und verteilte Microservices haben, mit allen Nachteilen einer monolithischen Lösung, ergänzt durch die Komplexität der Verteilung und einer Reduzierung des gesamten ROIs. Unternehmen, die Microservices nutzen, sollten von ihren Entwicklungsteam erwarten, dass sie sich absprechen und an klare Pläne halten. 

Wir empfehlen auch, dass Sie die strenge Disziplin der kontinuierlichen Auslieferung einführen und über die notwendigen Tools zur Automatisierung der Release-Pipeline verfügen. Eine mangelnde Teamkoordinierung und Automatisierung im DevOps-Stil führen dazu, dass Ihnen Ihre Microservice-Initiative mehr Sorgen als Vorteile bringen wird. 

Ein Plattform-Ansatz für die Microservices-Architektur

Microservices sind eindeutig ein wichtiger und willkommener Trend in der Softwareentwicklungsbranche. Sie haben viele Vorteile gegenüber bisherigen architektonischen Ansätzen. Allerdings gibt es verschiedene Dinge, derer man sich im Zuge des Aufbaus einer Microservices-Architektur bewusst sein sollte. Unternehmen sollten Microservices aufgrund ihrer leichten Implementierung und ihrer agilen Bauart einführen. Wenn sie aber nicht richtig verwaltet werden, kann diese Architektur zu Desorganisation und Kontrollverlust führen. Mit einer Microservices-Architektur entwickelte Produkte müssen auch mit älteren, bereits vorhandenen Technologie-Stacks integriert werden. Wird dies nur mangelhaft umgesetzt, können technische Schuld und weitere Betriebskosten für das IT-Team entstehen. Daher gilt: Die Einführung von Microservices in einer Weise, die Wettbewerbsvorteile schafft und Ihrem Unternehmen zu einer besseren Innovationsfähigkeit verhilft, geht weit über die bloße Auswahl von Produkten und Software hinaus. Außerdem müssen Sie das Personal, die Prozesse und die Kultur innerhalb einer Organisation berücksichtigen.
Deshalb empfehlen wir in Bezug auf Microservices einen ganzheitlichen Plattformansatz, bei dem API-led Connectivity im Mittelpunkt steht. API-led Connectivity schafft nicht nur die Integrationskomponente, die für die einwandfreie Funktionsweise Ihres Technologie-Stacks so entscheidend ist. Sie ermöglicht zudem Entwicklern innerhalb und außerhalb des zentralen IT-Teams, neue Lösungen auf eine überschaubare, wiederverwendbare und regulierte Art und Weise zu erarbeiten. So wird verhindert, dass zu viele Anwendungen entstehen, die das Unternehmen nicht kontrollieren kann. Der Plattformansatz von MuleSoft bietet ein einzigartiges Betriebsmodell, das es sowohl einzelnen Geschäftsbereichen als auch der IT ermöglicht, neue Lösungen zu entwickeln, zu verbessern und bereitzustellen – wo auch immer sie im Unternehmen benötigt werden – und dabei die erforderliche Transparenz und Kontrolle beizubehalten.

In der überaus wettbewerbsintensiven Geschäftswelt von heute ist es wichtig, sich von den Mitbewerbern abzuheben und Kunden, Mitarbeitern und Partnern ein angenehmes Erlebnis zu bieten. Für ein Unternehmen sind Microservices ein wichtiges Instrument, um genau das zu erreichen. Umgesetzt in einer ganzheitlichen und überschaubaren Art und Weise wird die Microservices-Architektur zu einem technologischen Standard für das Unternehmen.

Sehen Sie sich weitere Dokumente zum Thema Bewährte Methoden für die Implementierung einer Microservices-Architektur an.