• BLOG-NETZWERK FÜR FORSCHUNG UND KULTUR
SBB aktuell
  • FOYER
  • SERVICE
  • IT-INNOVATION
  • WISSEN
  • FEUILLETON
  • Menü Menü

Microservices, Service Registry „Die Zentrale“

12.05.2016/0 Kommentare/in Foyer, IT-Innovation/von Konrad Eichstädt

Im Rahmen unseres IT Projektes „Microservices“ und der damit verbundenen Blog Serie möchte ich in diesem Beitrag über unserer Erfahrungen mit den „Platform Services“, welche ein zentraler Baustein in der Microservices Architektur sind, berichten. Es sind zusätzliche Dienste welche den Betrieb von zahlreichen Anwendungsservices vereinfachen. Dazu gehören unter anderem

  • Service Registry
  • Routing
  • Load balancing / Circuit Breaker
  • Configuration Management
  • Zentrales Logging
  • Monitoring

Alle diese Dienste ermöglichen es eine große Anzahl an Microservices zu betreiben und nutzbar zu machen. Diese Auflistung sieht auf den ersten Blick nach sehr viel Aufwand und technischer Infrastruktur aus und beinhaltet Begrifflichkeiten, welche tiefgehendes, technisches Wissen erfordern um die Bedeutung und Notwendigkeit verstehen zu können. Aus diesem Grund möchte ich in den kommenden drei Beiträgen etwas Licht ins Dunkle bringen und versuchen den Mehrwert dieser technischen Services zu erläutern. Beginnen möchte ich mit der Service Registry, weil diese aus meiner Sicht die grundlegendste Komponente ist auf welcher viele der anderen Services aufsetzen.

 

Die Services Registry stellt in gewisser Weise eine Art Telefonzentrale dar , die Clientanwendung, wie zum Beispiel ein Content Management System oder aber eine andere beliebige Webanwendung, anrufen können um nach einem Dienst zufragen, welcher gerade benötigt wird. Tatsächlich fragt die aufrufende Anwendung mit einem Namen wie zum Beispiel: „Suche“ oder „Dokumentenmanagement“ die Service Registry und erhält die Information wie dieser Service zu erreichen ist. Die Information beinhaltet eine vollständige URL und kann als Einstiegspunkt zur Verwendung des Service benutzt werden.

 

Die einfachere und klassische Variante ohne die Verwendung einer Service Registry ist, dass die Client Anwendung die URL auf den Einstiegspunkt selber gespeichert hat. Allerdings gibt es bei dieser klassischen Variante einige Nachteile:

 

  • Die URL ist statisch in der Clientanwendung gepflegt und muss bei Veränderungen der URL mit geändert werden. Zieht der zu nutzende Service auf einen anderen Server um oder ändert sich der TCP/IP Port, muss die Clientanwendung in der Regel mit angepasst werden.
  • Es ist keine Verwendung von clientseitigem Load Balancing möglich. Das bedeutet, selbst wenn der Service auf mehreren Servern eingerichtet ist, kann der Client diese nicht dynamisch nutzen.
  • Es gibt oft keine Echtzeit Übersicht über den aktuellen Stand der zur Verfügung stehenden Services. Es besteht natürlich die Möglichkeit, ein sehr gutes Monitoring einzurichten, was diese Fähigkeit besitzt. Allerdings sind die klassischen Monitoring Lösungen wie zum Beispiel Nagios dafür nicht konzipiert und vorgesehen. In den meisten Fällen sind diese auch so nicht eingerichtet.

 

Diese aufgeführten Nachteile der herkömmlichen Verknüpfung von Clientanwendung und Anwendungsdienst (Service)  zeigen im Umkehrschluss natürlich auch die Vorteile einer Service Registry:

 

  • Zentrale Übersicht aller Service und deren Status
  • Möglichkeit eines Load balancing
  • Keine clientseitige Anpassung bei Service und Infrastruktur Änderungen

 

Aber rechtfertigen diese Vorteile den Aufwand und den Betrieb einer Service Registry? Der Aufwand der Installation einer Service Registry ist sehr gering, da es bereits sehr gute und ausgereifte Produkte gibt:

 

  • Eureka aus dem Netflix Open Source Stack (Netflix OSS)
  • Consul
  • Zookeeper
  • Etcd

 

Die beiden erst genannten Produkte sind diejenigen mit der höchsten Verbreitung und damit auch die ausgereiftesten. In unserem Projekt haben wir hauptsächlich auf den Netflix OSS gesetzt und daher auf Eureka. Auch wir haben in unserem Pilotprojekt sehr gute Erfahrungen mit Eureka gemacht. Wichtig bei der Verwendung ist, dass die Service Registry nicht wiederum selbst zum Single Point of Failure wird und daher immer mehrfach betrieben werden sollte. Aber auch dieser Aspekt ist mit sehr geringem Aufwand umzusetzen. Ich empfehle für den Einstieg daher ein Spring Boot Projekt mit aktivierter Service Registry, welches im Beispiel Microservices Projekt von Eberhardt Wolff zur Verfügung steht. Sie werden erstaunt sein, mit wie wenig Quellcode die Service Registry umgesetzt ist.

Der Quellcode…

@SpringBootApplication
@EnableEurekaServer
@EnableDiscoveryClient
public class ServiceRegistryApplication {

public static void main(String[] args) {
SpringApplication.run(ServiceRegistryApplication.class, args);
}
}

 

Fazit:

Aus meiner persönlichen Sicht ist der Einsatz einer Service Registry auch ohne die Verwendung der gesamten Microservices Architektur von unschätzbarem Vorteil, sobald mehrere zentrale Services im Hause betrieben werden. Alleine die Tatsache, dass nicht mehr mit jeder Infrastruktur Anpassung die Client Anwendung und die Dokumentation bzw. das Monitoring angepasst werden müssen, sind im Dauerbetrieb mit geringem Personaleinsatz von unschätzbarem Wert. Hinzu kommt, dass wir in unserem Beispiel Projekt sowohl die Anbindung von Java Webanwendungen als auch von reinen HTML / Javascript Anwendungen relativ einfach umsetzen konnten. Wir konnten aus dem weit verbreiteten CMS Typo3 sehr leicht die Service Registry nach einem Service anfragen und diesen anschließend nutzen. Integriert man diese Anfrage Logik zum Beispiel in eine Typo3 Extension und macht diese so nachnutzbar für andere Typo3-Projekte, wird der Aufwand auf alle Projekte betrachtet noch geringer und der Nutzen somit noch größer. Zusätzlich bietet eine Service Registry als Basis der Platform Services weitere Möglichkeiten, welche ebenfalls von unschätzbarem Wert, um stabilen Betrieb von zentralen Services sind.

 

Diese Möglichkeiten werde ich in den kommenden Beiträgen detailliert aufführen und zeigen, wie man zum Beispiel ein bestehendes Fremdsystem, wie zum Beispiel Fedora Content Repository oder Pazpar2-Suche, in eine solche Service-Struktur einfach einbindet, ohne die Produkte selbst anpassen zu müssen.

Ich freue mich daher auf die kommenden Beiträge und hoffe auf zahlreiche Kommentare.

Schlagworte: Architektur, Bibliothek, Eureka, Fedora, Microservices, Pazpar2, Platform Services, Service Registry, Softwareentwicklung
Eintrag teilen
  • Teilen auf Facebook
  • Teilen auf X
  • Auf WhatsApp teilen
  • Teilen auf Pinterest
  • Teilen auf LinkedIn
  • Teilen auf Tumblr
  • Teilen auf Vk
  • Teilen auf Reddit
  • Per E-Mail teilen
https://blog.sbb.berlin/wp-content/uploads/Microservices2.jpg 475 845 Konrad Eichstädt https://blog.sbb.berlin/wp-content/uploads/stabi-logo-kante.png Konrad Eichstädt2016-05-12 09:21:532026-06-24 10:02:50Microservices, Service Registry „Die Zentrale“
Das könnte Sie auch interessieren
Microservices, Load Balancing
Ausstellung: Mies van der Rohes Villa Wolf in Gubin
Wieder Kuben in Guben
Hans Scharoun / Copyright: bpk /Fritz Eschenbpk /Fritz Eschen Herzlichen Glückwunsch, Hans Scharoun!
Microservices, Sicherheit
Fotowettbewerb zur Ausstellung "bau1haus trifft Hans Scharoun" anlässlich des Jubiläumsjahres "100 JAHRE BAUHAUS"Lizenz: CC-BY-NC-SA-3.0 Instagram-Fotowettbewerb zur Ausstellung von Jean Molitor
Microservices, Integration
Angekündigte Dreharbeiten Dreharbeiten vor der SBB – Potsdamer Platz
0 Kommentare

Ihr Kommentar

An Diskussion beteiligen?
Hinterlassen Sie uns einen Kommentar!

Schreiben Sie einen Kommentar Antworten abbrechen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Search Search

Kommentare:

  • Anna bei Neue Trinkwasserspender für alle | New Drinking Water Dispensers for All
  • Thomas Parschik bei Röntgentermin für den Pharao
  • SuK bei Wissenshunger stillen ohne Krümel | Feed Your Hunger for Knowledge — Without the Crumbs
  • Thomas Parschik bei Tollkühne Frauen und Männer und fliegende Kisten
  • Benutzungskommunikation bei Wissenshunger stillen ohne Krümel | Feed Your Hunger for Knowledge — Without the Crumbs

Schlagwörter

Ausbildung Ausleihe Ausstellung Benutzung Benutzungseinschränkung Bilderbuch Buchpatenschaft CrossAsia Datenbank digitale Lektüretipps Digitalisierung E.T.A. Hoffmann Fachinformation Freunde der Staatsbibliothek Geschichte Hinweis Import Jugendbuch Kinderbuch Kulturelles Erbe Lesesaal Martin Luther Materialität Musik Osteuropa Presse Promovierende Provenienzforschung Recherche Recht Rechtsforschung Rechtswissenschaften Reformation Restaurierung sbb online offen Service Servicezeiten Slawistik Stipendienprogramm Werkstattgespräch Wissenswerkstatt Workshop Zeitschriftendatenbank Zeitungen Öffnungszeiten

Unsere Blogs

  • E. T. A. HOFFMANN PORTAL
  • FEUILLETON
  • FOYER
  • FREUNDE DER BIBLIOTHEK
  • HISTORISCHE DRUCKE
  • INKUNABELN
  • IT-INNOVATION
  • KARTEN
  • MUSIK
  • ORIENT
  • PODCAST
  • PRESSE
  • SERVICE
  • TERMINE
  • WISSEN

Suche über alle Beiträge:

Search Search

Folgen Sie uns auf Instagram

Folgen Sie uns auf Bluesky

Folgen Sie uns auf Mastodon

Besuchen Sie uns auf Youtube

ARCHIV ALLER BLOGBEITRÄGE

Zum Kalender
© Copyright - Staatsbibliothek zu Berlin – Preußischer Kulturbesitz
  • RSS-Feeds abonnieren
  • Impressum
  • Datenschutzerklärung
  • Erklärung zur Barrierefreiheit
  • Barriere melden
Link to: Informationen, Macht und das ‚right to be forgotten‘ – Werkstattgespräch am 31.5. Link to: Informationen, Macht und das ‚right to be forgotten‘ – Werkstattgespräch am 31.5. Informationen, Macht und das ‚right to be forgotten‘ – Werkstattgespräch...Delete key (Büşra Özcoşkun. Wikimedia Commons, bearb. CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/deed.de)K:\ZWR\Bildrechte\Murawski\WG_right_to_be_forgotten\wikimedia_delete_key.png Link to: Das „HoPo“ zu Besuch in Bamberg Link to: Das „HoPo“ zu Besuch in Bamberg Das „HoPo“ zu Besuch in Bamberg
Nach oben scrollen Nach oben scrollen Nach oben scrollen