<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://dev.kaibel.net/index.php?action=history&amp;feed=atom&amp;title=Microservices-Architektur</id>
	<title>Microservices-Architektur - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://dev.kaibel.net/index.php?action=history&amp;feed=atom&amp;title=Microservices-Architektur"/>
	<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Microservices-Architektur&amp;action=history"/>
	<updated>2026-08-27T13:33:26Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in dev.kaibel.net</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://dev.kaibel.net/index.php?title=Microservices-Architektur&amp;diff=99&amp;oldid=prev</id>
		<title>PhilKa: Die Seite wurde neu angelegt: „= Microservices-Architektur =  Die &#039;&#039;&#039;Microservices-Architektur&#039;&#039;&#039; ist ein moderner Architekturstil in der Softwareentwicklung, bei dem eine Anwendung aus einer Sammlung **kleiner, unabhängiger und lose gekoppelter Dienste** besteht.   Jeder Microservice erfüllt eine **spezifische Geschäftsaufgabe**, kommuniziert über klar definierte Schnittstellen (z. B. REST oder Messaging) und kann **unabhängig entwickelt, bereitgestellt und skaliert** werden.  ==…“</title>
		<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Microservices-Architektur&amp;diff=99&amp;oldid=prev"/>
		<updated>2025-11-01T12:18:01Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Microservices-Architektur =  Die &amp;#039;&amp;#039;&amp;#039;Microservices-Architektur&amp;#039;&amp;#039;&amp;#039; ist ein moderner Architekturstil in der Softwareentwicklung, bei dem eine Anwendung aus einer Sammlung **kleiner, unabhängiger und lose gekoppelter Dienste** besteht.   Jeder Microservice erfüllt eine **spezifische Geschäftsaufgabe**, kommuniziert über klar definierte Schnittstellen (z. B. REST oder Messaging) und kann **unabhängig entwickelt, bereitgestellt und skaliert** werden.  ==…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Microservices-Architektur =&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Microservices-Architektur&amp;#039;&amp;#039;&amp;#039; ist ein moderner Architekturstil in der Softwareentwicklung, bei dem eine Anwendung aus einer Sammlung **kleiner, unabhängiger und lose gekoppelter Dienste** besteht.  &lt;br /&gt;
Jeder Microservice erfüllt eine **spezifische Geschäftsaufgabe**, kommuniziert über klar definierte Schnittstellen (z. B. REST oder Messaging) und kann **unabhängig entwickelt, bereitgestellt und skaliert** werden.&lt;br /&gt;
&lt;br /&gt;
== Grundidee ==&lt;br /&gt;
&lt;br /&gt;
Anstatt eine monolithische Anwendung zu entwickeln, wird das System in viele **kleine, eigenständige Dienste (Microservices)** zerlegt.  &lt;br /&gt;
Jeder Service ist für eine klar umrissene Funktion zuständig (z. B. Benutzerverwaltung, Bestellungen, Zahlungsabwicklung).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
+-------------+   +---------------+   +---------------+&lt;br /&gt;
|  User-Service  |   | Order-Service  |   | Payment-Service |&lt;br /&gt;
+-------------+   +---------------+   +---------------+&lt;br /&gt;
        \               |               /&lt;br /&gt;
         \              |              /&lt;br /&gt;
          +--------------------------------+&lt;br /&gt;
          |       API Gateway / Frontend   |&lt;br /&gt;
          +--------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
* **Lose Kopplung:** Jeder Dienst funktioniert unabhängig.  &lt;br /&gt;
* **Hohe Kohäsion:** Jeder Dienst erfüllt genau eine Aufgabe.  &lt;br /&gt;
* **Eigenständige Entwicklung und Bereitstellung:** Teams können Services separat erstellen und deployen.  &lt;br /&gt;
* **Unabhängige Skalierbarkeit:** Nur benötigte Services werden skaliert.  &lt;br /&gt;
* **Technologische Freiheit:** Jeder Dienst kann in einer eigenen Sprache oder mit einem anderen Framework implementiert sein.  &lt;br /&gt;
* **Kommunikation über APIs oder Messaging-Systeme:** Meist via HTTP/REST, gRPC oder Message-Broker (z. B. Kafka, RabbitMQ).&lt;br /&gt;
&lt;br /&gt;
== Architekturprinzip ==&lt;br /&gt;
Microservices folgen dem Prinzip **„Do one thing and do it well“**.  &lt;br /&gt;
Sie kommunizieren typischerweise über leichtgewichtige Protokolle und nutzen eine zentrale Schnittstelle (z. B. API Gateway) für externe Zugriffe.&lt;br /&gt;
&lt;br /&gt;
== Aufbau einer Microservices-Anwendung ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Komponente !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;API Gateway&amp;#039;&amp;#039;&amp;#039; || Zentrale Schnittstelle zwischen Clients und internen Services. Führt Routing, Authentifizierung und Aggregation durch.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Microservices&amp;#039;&amp;#039;&amp;#039; || Kleine, eigenständige Dienste mit eigener Datenhaltung und Logik.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Service Discovery&amp;#039;&amp;#039;&amp;#039; || Findet verfügbare Dienste dynamisch im Netzwerk.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Message Broker&amp;#039;&amp;#039;&amp;#039; || Vermittelt asynchrone Kommunikation zwischen Services.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Database per Service&amp;#039;&amp;#039;&amp;#039; || Jeder Dienst verwaltet seine eigene Datenbank (Isolation und Autonomie).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Monitoring &amp;amp; Logging&amp;#039;&amp;#039;&amp;#039; || Überwachung (z. B. Prometheus, Grafana) und zentrales Logging (z. B. ELK-Stack).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kommunikation ==&lt;br /&gt;
=== 1. Synchronous (z. B. REST, gRPC) ===&lt;br /&gt;
* Direkte Kommunikation über HTTP oder RPC.  &lt;br /&gt;
* Einfach, aber potenziell blockierend.&lt;br /&gt;
&lt;br /&gt;
=== 2. Asynchronous (z. B. Message Queue, Event-Driven) ===&lt;br /&gt;
* Nutzung von Nachrichten- oder Event-Systemen (z. B. Kafka, RabbitMQ).  &lt;br /&gt;
* Erhöht die Entkopplung und Fehlertoleranz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Service A → Message Broker → Service B&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispielhafte Dienste ==&lt;br /&gt;
* **User-Service:** Verwaltung von Benutzerdaten  &lt;br /&gt;
* **Auth-Service:** Anmeldung, Tokens, Zugriffskontrolle  &lt;br /&gt;
* **Order-Service:** Bestellvorgänge  &lt;br /&gt;
* **Payment-Service:** Zahlungsabwicklung  &lt;br /&gt;
* **Notification-Service:** E-Mail- oder SMS-Benachrichtigungen  &lt;br /&gt;
&lt;br /&gt;
== Vorteile ==&lt;br /&gt;
* **Modularität:** Leicht verständliche und wartbare Komponenten  &lt;br /&gt;
* **Skalierbarkeit:** Nur stark belastete Services müssen skaliert werden  &lt;br /&gt;
* **Unabhängige Deployments:** Einzelne Dienste können ohne Downtime aktualisiert werden  &lt;br /&gt;
* **Technologische Vielfalt:** Verschiedene Sprachen oder Frameworks möglich  &lt;br /&gt;
* **Fehlertoleranz:** Fehler eines Services beeinträchtigen nicht zwingend das Gesamtsystem  &lt;br /&gt;
* **Einfache Continuous Delivery / DevOps-Integration**&lt;br /&gt;
&lt;br /&gt;
== Nachteile ==&lt;br /&gt;
* **Komplexe Infrastruktur:** Hoher Aufwand für Orchestrierung, Kommunikation und Deployment  &lt;br /&gt;
* **Verteilte Datenhaltung:** Keine zentralisierte Datenbank, daher komplexe Transaktionen  &lt;br /&gt;
* **Monitoring und Debugging:** Schwieriger, da viele unabhängige Komponenten beteiligt sind  &lt;br /&gt;
* **Netzwerklatenzen:** Kommunikation über Netzwerke statt lokale Aufrufe  &lt;br /&gt;
* **Testaufwand:** Integrationstests über viele Services sind aufwendig&lt;br /&gt;
&lt;br /&gt;
== Vergleich: Monolith vs. Microservices ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Merkmal !! Monolithische Architektur !! Microservices-Architektur&lt;br /&gt;
|-&lt;br /&gt;
| Aufbau || Eine große Anwendung mit gemeinsamer Codebasis || Viele kleine, unabhängige Dienste&lt;br /&gt;
|-&lt;br /&gt;
| Deployment || Gesamtes System auf einmal || Einzelne Services unabhängig&lt;br /&gt;
|-&lt;br /&gt;
| Skalierung || Gesamte Anwendung || Nur benötigte Services&lt;br /&gt;
|-&lt;br /&gt;
| Technologievielfalt || Einheitlich || Frei wählbar pro Service&lt;br /&gt;
|-&lt;br /&gt;
| Fehlertoleranz || Ein Fehler kann alles stoppen || Lokalisierte Fehler, System bleibt funktionsfähig&lt;br /&gt;
|-&lt;br /&gt;
| Entwicklungsaufwand || Einfacher Start, schwer erweiterbar || Komplexer Start, aber flexibel skalierbar&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beispielhafte Technologien ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Kategorie !! Technologien / Tools&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Kommunikation&amp;#039;&amp;#039;&amp;#039; || REST, gRPC, GraphQL, AMQP, Kafka&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Containerisierung&amp;#039;&amp;#039;&amp;#039; || Docker, Podman&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Orchestrierung&amp;#039;&amp;#039;&amp;#039; || Kubernetes, Docker Swarm, OpenShift&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;API Gateway&amp;#039;&amp;#039;&amp;#039; || Kong, NGINX, Traefik, AWS API Gateway&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Service Discovery&amp;#039;&amp;#039;&amp;#039; || Consul, Eureka, Kubernetes DNS&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Monitoring&amp;#039;&amp;#039;&amp;#039; || Prometheus, Grafana, Jaeger, ELK Stack&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;CI/CD&amp;#039;&amp;#039;&amp;#039; || Jenkins, GitLab CI, GitHub Actions, ArgoCD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beispiel einer Microservices-Architektur ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Client / Frontend]&lt;br /&gt;
        ↓&lt;br /&gt;
[API Gateway]&lt;br /&gt;
   ↓          ↓&lt;br /&gt;
[User-Service]   [Order-Service]&lt;br /&gt;
       ↓               ↓&lt;br /&gt;
 [Auth-Service]     [Payment-Service]&lt;br /&gt;
        ↓               ↓&lt;br /&gt;
      [DB User]       [DB Orders]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beste Praktiken ==&lt;br /&gt;
* **Domain-Driven Design (DDD):** Fachliche Abgrenzung der Services nach Domänen.  &lt;br /&gt;
* **Database per Service:** Keine geteilten Datenbanken.  &lt;br /&gt;
* **Asynchrone Kommunikation:** Für bessere Entkopplung.  &lt;br /&gt;
* **Zentrales Logging &amp;amp; Tracing:** z. B. ELK oder Jaeger.  &lt;br /&gt;
* **API-Versionierung &amp;amp; Dokumentation:** z. B. mit OpenAPI/Swagger.  &lt;br /&gt;
* **Automatisiertes Deployment (CI/CD):** Für schnelle Updates ohne Ausfallzeiten.&lt;br /&gt;
&lt;br /&gt;
== Verbindung zu anderen Architekturen ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Architektur !! Beziehung&lt;br /&gt;
|-&lt;br /&gt;
| [[Client-Server-Architektur]] || Microservices erweitern das Client-Server-Prinzip durch viele kleine Serverinstanzen.&lt;br /&gt;
|-&lt;br /&gt;
| [[Event-Driven Architecture]] || Häufige Basis für asynchrone Microservice-Kommunikation.&lt;br /&gt;
|-&lt;br /&gt;
| [[Service-Oriented Architecture (SOA)]] || Microservices sind eine modernisierte, leichtere Form von SOA.&lt;br /&gt;
|-&lt;br /&gt;
| [[Reactor-Entwurfsmuster]] || Wird oft intern in asynchronen Microservices zur Event-Verarbeitung genutzt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Fazit ==&lt;br /&gt;
Die Microservices-Architektur ermöglicht **hochgradig modulare, skalierbare und flexible Anwendungen**, ist aber mit **komplexer Infrastruktur und höherem Managementaufwand** verbunden.  &lt;br /&gt;
Sie eignet sich besonders für **große, dynamische Systeme** mit mehreren Entwicklerteams und hohen Anforderungen an **Skalierbarkeit und Agilität**.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Client-Server-Architektur]]  &lt;br /&gt;
* [[Event-Driven Architecture]]  &lt;br /&gt;
* [[Service-Oriented Architecture (SOA)]]  &lt;br /&gt;
* [[Reactor-Entwurfsmuster]]  &lt;br /&gt;
* [[Proactor-Entwurfsmuster]]  &lt;br /&gt;
* [[Entwurfsmuster (Softwareentwicklung)]]&lt;br /&gt;
* [[Distributed Systems]]&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* Martin Fowler: *Microservices* (2014)  &lt;br /&gt;
* Sam Newman: *Building Microservices* (O’Reilly, 2021)  &lt;br /&gt;
* Fowler &amp;amp; Lewis: [https://martinfowler.com/articles/microservices.html Microservices – a Definition of This New Architectural Term]  &lt;br /&gt;
* [https://en.wikipedia.org/wiki/Microservices Wikipedia: Microservices]  &lt;br /&gt;
* Chris Richardson: *Microservices Patterns* (2018)&lt;/div&gt;</summary>
		<author><name>PhilKa</name></author>
	</entry>
</feed>