Puzzleteile sinnbildlich für Integration

Flexibel und effizient agieren mit Microservices

Wissensbeitrag

2016 war ein Hochpunkt des Hypes um das Thema Microservices. Grund genug für uns, um ein Resümee zu ziehen und unsere positiven Erfahrungen zu diesem Thema auszuwerten.

Was sind Microservices?

Microservices sind ein Architekturmuster für Entwicklung und Betrieb von Software-Anwendungen. Es weist viele Gemeinsamkeiten mit einer serviceorienterten Architektur (SOA) auf.Komplexe Anwendungen werden dabei durch kleine, modulare und unabhängige Services dargestellt. Die Kommunikation zwischen Komponenten erfolgt durch technologieunabhängige Schnittstellen.

“Do One Thing and Do It Well”

Douglas McIlroy US-amerikanischer Informatiker, Mathematiker, Ingenieur und Programmierer

Dieser Gedanke der Unix-Philosophie gibt dem Entwickler alle Freiheiten bei der Implementierung einer Anwendung und stellt gleichzeitig die Anforderung, dass die Funktionalität der Anwendung nicht zu weit gefasst ist.

Ein frühes Beispiel für den Einsatz von drei kombinierten Microservices ist beispielweise:

cat /etc/passwd | grep “/bin/bash” | cut -d “:” -f 1

Der erste Microservice „cat“ gibt den Inhalt von Dateien in die Standardausgabe aus. In diesem Fall die Benutzerdatei, welche alle Benutzer des Systems enthält. Der zweite Microservice „grep“ filtert den übergebenen Datenstrom zeilenweise. Es wird auf die Zeichenfolge „/bin/bash“ gefiltert. Dies soll die Zeilen für Benutzer finden, welche die Shell verwenden können. Der dritte Microservice „cut“ extrahiert spaltenweise Ausschnitte aus Textzeilen. In diesem Fall das erste Feld der Zeile mit dem Benutzername.

Das Zeichen „|“ kombiniert die Aufrufe der einzelnen Services miteinander. Auch wenn die Grundsätze von Microservices denen einer SOA stark gleichen, ist die Definition von Microservices schärfer gefasst und lässt weniger Interpretationsspielraum zu. Einzelne Aspekte von Microservices wie unabhängiger Betrieb und Auslieferung einzelner Services gehen über die Definition von SOA hinaus.

Was bei der Umsetzung zu beachten ist

Ein Grund, warum sich dieser Trend in einigen Bereichen der Softwareentwicklung vermehrt durchsetzt, ist wohl die Anforderung, immer flexibler mit Teilen einer Anwendungslandschaft agieren zu können. Beispielsweise kann es erforderlich sein, einzelne Teile in die Cloud auszulagern, zu skalieren oder einfach nur zu ändern. Begünstigt wird der Trend durch hochwertige Open Source-Produkte wie Docker, welche perfekt zu den Grundgedanken von Microservices passen.

Einige Vorteile von Microservices

Vorteile von Microservices
  • Serviceunabhängige Skalierung einzelner Microservices
  • Skalierung agiler Entwicklungs-Prozesse, da die Services unabhängig entwickelt und verteilt werden
  • Hohe Qualität und reduzierter Änderungsaufwand durch verringerte Komplexität einzelner Services
  • Gutes Konfigurationsmanagement durch klar abgegrenzte Schnittstellen
  • Continuous Integration/Delivery, begünstigt durch die Größe und Unabhängigkeit der einzelnen Services
  • Effizienz und Technologieunabhängigkeit

Nachteile von Microservices ergeben sich vor allem durch die verteilte Architektur und die komplexere Infrastruktur, denn daraus resultieren z.B. ein höherer Testaufwand, eine aufwendigere Sicherstellung der Datenkonsistenz sowie ein komplexeres Monitoring. Außerdem müssen Microservices eine getrennte Datenhaltung haben. Die Nutzung einer gemeinsamen Datenbasis würde die Microservices zu eng aneinander binden.

Aus der Praxis

Besonders positiv aufgefallen sind uns die hohe Flexibilität und Geschwindigkeit, die durch Continuous Integration im Zusammenspiel mit Microservices ermöglicht werden.Der Aufbau neuer Umgebungen und die Qualitätssicherung von Releases für eine größere Anwendung konnte dadurch beschleunigt und der Aufwand reduziert werden. Außer durch die Verwendung von Microservices wurde dies unter anderem durch die Virtualisierung mit Docker erzielt.

Rechner mit Programmiercode

Die Größe eines Microservices ist ein wichtiges Kriterium, um von paralleler Entwicklung profitieren zu können. Er sollte von einem einzelnen Team entwickelt werden können. Um den Entwicklungsaufwand rund um Datenkonsistenz und Transaktionen in Grenzen zu halten, sollten Microservices allerdings nicht zu klein sein.

Die übersichtliche Größe von Teams dieser Art für Services mit klar abgegrenzten Schnittstellen hat in mehreren Projekten den Bedarf an Absprachen in und zwischen den Teams merklich reduziert. Es blieb mehr Zeit für die Umsetzung.

Microservices in meinem Unternehmen?

Es lässt sich nicht pauschal sagen, ob der Einsatz von Microservices sinnvoller ist als die Alternativen. Zu unterschiedlich sind die Anforderungen und die Gegebenheiten. Die Abwägung von Vor- und Nachteilen für die projektspezifische Situation erfordert Erfahrung mit Softwarearchitekturen und eine gute initiale Planung. Ein Einstieg in Microservices ist sowohl durch die Migration oder Erweiterung eines Monolithen als auch per Start auf der grünen Wiese möglich.

Unser Resümee ist, dass Microservices zu vielen modernen Anforderungen an Softwarearchitektur passt und bei korrekter Implementierung viele Vorteile bietet.

Wissen

Die Zukunft vorhersagen mit Predictive Analytics

Für Unternehmen gilt es heute mehr denn je, nicht nur in der Gegenwart gut aufgestellt zu sein, sondern auch einen Blick in die Zukunft zu wagen. Industrie 4.0 und Predictive Analytics ermöglichen es interne Prozesse besser nachzuverfolgen.

Wissen

Der Cloud vorgelagert: Edge Computing für Datenanalysen

Sicherheitsbedenken und Performance-Engpässe gestalten die Verarbeitung und Analyse von Daten in der Cloud zunehmend schwierig. So spricht einiges für eine Zwischenschicht: den Edge.

Puzzle zur Visualisierung von Enterprise Application Integration (EAI)
Kompetenz 31.08.20

Enterprise Integration

Enterprise Integration unterstützt die Geschäftsprozessabwicklung und verschafft Unternehmen Kostenvorteile. Zum Aufbau von Integrationsszenarien verwendet X-INTEGRATE die Methode Baseline.

Literaturtipp: Enterprise Integration Patterns
Trendthemen 03.09.20

Literaturtipp: Enterprise Integration Patterns

Dieses Buch ist besonders herauszuheben, denn “Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions” von Gregor Hohpe und Bobby Woolf ist die Referenz zu Mustern im Bereich Integration und Enterprise Service Bus.

:Literaturtipp Patterns of Enterprise Application Architecture
Trendthemen 03.09.20

Patterns of Enterprise Application Architecture

Das Buch vermittelt dem Leser die grundlegenden Kenntnisse, die ein erfolgreicher Software-Architekt benötigt. Anhand einer Reihe von praxisnahen Beispielen wird gezeigt, wie sich große Systeme in Komponenten zerlegen lassen und welche Beziehungen es zwischen diesen gibt.

Unsere Literaturtipps – Für Sie gelesen
Trendthemen 03.09.20

Unsere Literaturtipps – Für Sie gelesen

Auch unsere Arbeit wurde von einigen Forschern, Freidenkern und insbesondere Praktikern beeinflusst. Einige von diesen haben in interessanten Bücher Ihre Erfahrungen und Sichtweisen festgehalten. Hier möchten wir Ihnen ausgewählte Literatur zu unserem Arbeitsgebiet vorstellen.

Service Oriented Architecture (SOA)
Kompetenz 03.09.20

Architekturberatung

Mit der passenden Architektur ist es möglich, Abläufe mit der exakt dosierten Komplexität zu unterstützen und Design, Betrieb und Weiterentwicklung so einfach wie möglich zu gestalten.

Anleitung zum Unglücklichsein mit Services
Wissen

Anleitung zum Unglücklichsein mit Services

Servicedesign – so sollten Sie es definitiv nicht machen! In seinem Blogartikel gibt X-INTEGRATE Geschäftsführer Wolfgang Schmidt Einblicke, was es in Sachen Services zu vermeiden gilt.

Anonyme Referenz
Referenz 12.11.24

Effizientes Flottenmanagement dank skalierbarer Plattform

X-INTEGRATE ermöglicht innovative Geschäftsmodelle im Flottengeschäft durch den Aufbau einer transaktionssicheren und skalierbaren Technologieplattform. Lesen Sie mehr.

Tacho zur Visualisierung einer hohen Performance
Wissen

Performanceoptimierung durch Analyse - Blog

Erfahren Sie in diesem Blogbeitrag, warum Analyse wichtigster Baustein bei der Optimierung von Performance & Stabilität Ihrer IBM WebSphere Umgebung ist.

Wissen

E-Mobilität-Business lebt von der Datenqualität

Das E-Auto laden und weiterfahren? X-INTEGRATE hat dafür eine Technologieplattform entwickelt, über die sie zugleich ei-ne hohe Datenqualität sicherstellt.

Literaturtipp: Service-Oriented Architecture Compass
Trendthemen 03.09.20

Literaturtipp: Service-Oriented Architecture Compass

Das Buch dokumentiert Best Practices und motiviert den geschäftlichen Nutzen von SOA. Bewährte Technologien und die Beziehung zur Fachseite (neudeutsch: Business Alignment) werden besprochen.

Digitalisierung in der Öffentlichen Verwaltung
Wissen

Digitalisierung in der Öffentlichen Verwaltung

Die Ziele im Rahmen der Entwicklung von „E-Fachverfahren“ können durch die Nutzung eines integrativen Prozessmanagements erreicht werden. Dies führt zu den gewünschten Aspekten der Prozesseffizienz und -effektivität sowie der Verfahrensvisibilität und –flexibilität.

Zahnräder sinnbildlich für einen Prozess
Wissen

Prozessautomatisierung mit IBM DBA

Vor allem Unternehmen in einem starken Wettbewerbsverhältnis setzen mehr denn je auf Automatisierung ihrer Geschäftsprozesse. Die Automatisierungsplattform von IBM, DBA (Digital Business Automation) genannt, bietet dafür vielfältige Lösungsansätze.

Cloud - SOA = Zero oder IT-Business Alignment
Wissen

Cloud - SOA = Zero oder IT-Business Alignment

Vor Jahren war SOA das aktuelle Buzzword, und zur Zeit ist Cloud Computing Hype. Hat SOA der Cloud den Weg geebnet? Wie ist deren Zusammenhang? Was bringt es?

Headerbild für Edge Computing
Kompetenz 13.07.22

Edge Computing

Mit Edge Computing können Sie Daten dezentral, direkt am Ort ihrer Entstehung, analysieren und auswerten – und zwar nahezu in Echtzeit.

EAI Integrationsmodelle
Technologie 31.08.20

EAI Integrationsmodelle

Es gibt im Wesentlichen drei Integrationsmodelle oder EAI Ansätze: Data Level Integration, Message Level Integration und Process Level Integration. Erfahren Sie mehr zu Vor- und Nachteilen!

Realisierung von Integrationslösungen
Kompetenz 31.08.20

Realisierung von Integrationslösungen

Echter Geschäftsnutzen entsteht bei der Umsetzung einer effizienten Architektur in eine robuste und hochqualitative IT Infrastruktur. Wir setzen Ihre individuellen Geschäftsideen in die vorhandene Systemumgebung um.

Prozessautomation
Technologie 31.08.20

Process Engine

Eine Process Engine ist eine Plattform zur elektronischen Ausführung von Geschäftsprozessen im Rahmen einer serviceorientierten Architektur (SOA).

Message Oriented Middleware (MOM)
Technologie 31.08.20

Message Oriented Middleware (MOM)

Message Oriented Middleware bezeichnet Middleware, die auf der asynchronen Kommunikation, also der Übertragung von Nachrichten beruht. Erfahren Sie hier mehr zu den Vorteilen!