Microservices Flashcards

1
Q

Was sind Microservice Architekturen?

A

Architekturen, deren Subsysteme jeweils getrennt voneinander entwickel- deploy und betreibbare Einheiten darstellen, die über Schnittstellen (häufig RESTful) miteinander kommunizieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind die Vor- und Nachteile von Microservices?

A

Vorteile:

  • Hohe Flexibilität und Veränderbarkeit von Software
  • Verbesserung der time-to-market
  • Schnellere Entwicklung in kleineren Einheiten
  • Erhöhte Innovationsfähigkeit
  • Flexibilität bzgl. der Technologieauswahl
  • Eigene Ablaufumgebung
  • Gute Skalierbarkeit
  • Koexistenz versch. Implementierungen

Nachteile:

  • Latenz
  • Verbindungsprobleme/Ausfälle
  • Bandbreiten
  • Schwierige Fehlerbehandlung
  • Komplexes Deployment
  • Auflösung der Dependencies zur Laufzeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind die Eigenschaften eines MicroServices?

A
  • Unabhängigkeit von anderen Einheiten
  • einzelne Entwicklung
  • Unabhängige Verarbeitung
  • einzelne Änderbarkeit
  • einzelne Skalierbarkeit
  • einzelne Ersetzbarkeit
  • Kommunikation mit anderen Microservices über ein Netzwerk
  • dezentrales Management der Microservices
  • automatisierte Infrastruktur
  • Kurze Release-Zyklen
  • hohe Kohäsion und lose Kopplung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was sind die Herausforderungen in Hinblick auf Service Discovery?

A

Microservices müssen in der Lage sein, die Dienste anderer Services zu nutzen => Verbindungen müssen hergestellt werden

Lösungen:

  • Client-Side Discovery: der Consumer fragt in einer Service-Registry nach der Adresse einer passenden Instanz des Services
  • Server-Side-Discovery: der Consumer sendet die Anfrage an einen Router, der die Service-Registry nach einer passenden Instanz fragt und den Request weiterleitet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind die Herausforderungen in Hinblick auf Dezentralisierung der Steuerung?

A

Bei einer dezentralen Steuerung ist es schwierig, den Überblick zu behalten.

Lösungen:

  • einheitliche Regelungen zur Dokumentation und Publikation der Schnittstellen
  • Technische Protokolle einheitlich festlegen
  • Monitoring und Logging standardisieren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind Herausforderungen in Hinblick auf UI-Integration?

A

Die einheitliche Integration in eine UI kann schwierig werden

Lösungen:

  • Jeder Microservice bringt seine eigene UI mit, die im Browser über Links integriert wird
  • Jeder Microservice stellt seine eigenen UI-Anteile zur Verfügung, die in einer übergeordneten Benutzeroberfläche zusammengeführt werden

WICHTIG: Keine Frontend-Monolithen entwerfen!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was sind die Herausforderungen in Hinblick auf dezentralisierte Daten?

A

Daten werden nicht zentral gespeichert, sondern jeder Microservice speichert die für ihn relevanten Aspekte bestimmter Datenmodelle. das führt dazu, dass Daten asynchron ausgetauscht und upgedated werden

Lösung:

Ein Microservice published eine Datenänderung, die von anderen MS, für die die Änderung relevant ist, subscribed wird. Diese anderen MS können dann mit den neuen Daten arbeiten und diese in einem für sie sinnvollen Kontext speichern

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Möglichkeiten zur Aufteilung von Microservices gibt es?

A

Decompose by Business Capability: Services nach Business Anforderungen oder Geschäftsbereichen organisieren

Decompose by Subdomain: Microservices nach Domains entsprechend DDD organisieren => Bounded Contexts bieten eine Orientierungsmöglichkeit für die Aufteilung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie ist die Teamstruktur innerhalb von Microservices?

A
  • cross-funktionale Teams, die ein Produkt von Anfang bis Ende betreuen
  • you build it, you run it
  • Kleine Teams (8 bis 12 Personen)
  • ein Microservice sollte so groß bzw. klein sein, dass er innerhalb von 2 Wochen entwickelt, getestet und deployed werden kann
How well did you know this?
1
Not at all
2
3
4
5
Perfectly