let's
play
china
Panda ausblenden

Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 45

Die Minions der Softwareentwicklung: Wie Microservices funktionieren und was sie leisten

    Die Minions der Softwareentwicklung: Wie Microservices funktionieren und was sie leisten

Microservices erfreuen sich zunehmender Beliebtheit. Welche Technologien zum Einsatz kommen und worauf Softwarearchitekten und -entwickler achten sollten.

Wer schon einmal eine selbst entwickelte Software über längere Zeit betreut, gewartet und weiterentwickelt hat, kennt das Problem: Bugfixes, neue oder sich verändernde Anforderungen und stetiger technologischer Wandel sorgen dafür, dass Software kontinuierlich wächst und sich verändert. Ohne entsprechende Maßnahmen führt diese „Software-Evolution“ häufig dazu, dass Software größer und komplexer, und somit auch schwieriger zu warten wird.

Um dieser „Softwarealterung“ vorzubeugen, hat sich in den vergangenen Jahren mit dem Microservice-Muster ein neues Architekturparadigma etabliert. Dieses versucht, die Komplexität großer, wachsender Softwaresysteme besser beherrschbar zu machen und somit eine einfache Wartbarkeit sicherzustellen.

Wie funktionieren Microservices?

Eine Microservice-Architektur teilt ein Softwaresystem in eine Vielzahl einzelner, kleiner und unabhängiger Dienste auf. Diese laufen als einzelne Prozesse (somit in der Regel auch über ein Netzwerk verteilt) und kommunizieren über einfache Netzwerkschnittstellen miteinander.

Gegenüber einer herkömmlichen „monolithisch“ aufgebauten Software bietet diese Architektur einige Vorteile – beispielsweise können einzelne Services unterschiedliche Technologien nutzen. Während sich für einen Service womöglich Java als Laufzeitumgebung und MySQL als Datenbankmanagementsystem eignen, sind für einen anderen Service womöglich Node.js und eine Mongo-Datenbank bessere Kandidaten. Die Kapselung in einzelne Services ermöglicht es Entwicklungsteams somit, das jeweils beste Werkzeug für den jeweiligen Zweck zu wählen.

Die Aufteilung in mehrere Einzelkomponenten kann zudem die Auslieferung neuer Versionen vereinfachen: Statt das komplette System am Stück zu deployen (gerade bei komplexen Softwaresystemen ein womöglich riskantes Vorhaben), können einzelne Services nun unabhängig voneinander ausgeliefert werden (oder sogar durch Neu-Implementierungen ersetzt werden).

Im Unterschied zu herkömmlichen serviceorientierten Architekturen (SOAs) liegt der Fokus bei Microservice-Architekturen auf Einfachheit. Der Funktionsumfang eines einzelnen Services sollte möglichst überschaubar sein. Außerdem werden einfachere Kommunikationsprotokolle wichtiger. Statt des schwergewichtigen SOAP-Protokolls geht der Trend zu einfacheren Kommunikationsmustern wie RESTful HTTP, oder – falls Asynchronität oder eine Publish/Subscribe-Architektur gewünscht ist – auch AMQP.

Ein Beispiel für eine Microservice-Architektur im E-Commerce: Sie besteht aus vier verschiedenen Microservices, jeweils mit eigener Datenhaltung, drei externen Applikationen, und einem Gateway, welches den Zugriff auf die verschiedenen Schnittstellen der Services ermöglicht und kontrolliert.

Ein Beispiel für eine Microservice-Architektur im E-Commerce: Sie besteht aus vier verschiedenen Microservices, jeweils mit eigener Datenhaltung, drei externen Applikationen, und einem Gateway, welches den Zugriff auf die verschiedenen Schnittstellen der Services ermöglicht und kontrolliert. Die obige Abbildung zeigt eine Beispiel-Architektur für ein E-Commerce-Szenario, bestehend aus vier Microservices, die verschiedene Aufgaben übernehmen.

Links und Literatur

  1. RabbitMQ
  2. Docker
  3. rkt
  4. Mesos
  5. Kubernetes
  6. Swarm
  7. Zookeeper
  8. Consul

Finde einen Job, den du liebst

Schreib den ersten Kommentar!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden