© Liashko/Shutterstock.com
Entwickler Magazin
Konfiguration, Service Discovery und Resilience

Baukasten für flexible und robuste Microservices

Microservices locken mit dem Versprechen, neue Funktionalitäten zielgerichteter und schneller in Produktion zu bringen. Die Herausforderung ist dabei, den Überblick zu behalten. Denn wo früher noch die Verwaltung und Problemanalyse von Hand möglich war, hilft jetzt nur noch vollständige Automatisierung. Wie gut, dass es dafür fertige Komponenten für Konfiguration, Service Discovery und Resilience gibt.

Alexander Schwartz


Das große Versprechen einer Microservices-Architektur ist es, dass Ideen zielgerichteter und schneller umgesetzt werden und in Produktion gehen können. Wo es früher nur wenige Releases pro Jahr gab, sollen es jetzt mehrere Releases pro Tag sein, die jeweils automatisch in einer Continuous-Delivery-Pipeline getestet werden. Dies gelingt nur, wenn statt eines großen Monolithen kleine Services zielgerichtet in Produktion gebracht werden.

In einer solchen Umgebung ist die manuelle Konfiguration von Services genauso wenig möglich wie die manuelle Installation. Es sind Lösungen gefragt, die die dynamische Rekonfiguration der Services zulassen und dafür an zentraler Stelle hochverfügbar und passend zur Umgebung die notwendigen Konfigurationen bereitstellen. Die Umgebungen sollen sowohl dynamisch horizontal skalieren als auch jederzeit neue Services integrieren können. Einen Load Balancer von Hand zu konfigurieren, scheidet hier aus. Auch wenn ein Load Balancer für den Zugriff von außen einen zentralen Einstiegspunkt bieten kann, sollen sich Services innerhalb der eigenen Infrastruktur direkt austauschen. So wird der Load Balancer nicht zum unnötigen Engpass. Hierfür ist Service Discovery gefragt.

Services sind von ihrer eigenen Datenbank und den Services in ihrer Umgebung abhängig. Ist eine dieser Abhängigkeiten nicht verfügbar oder zu langsam, so ist der Service nicht verfügbar und Fehler pflanzen sich fort. Dies gilt sowohl in klassischen als auch in Microservices-Architekturen. Damit nicht ein defekter Service die anderen blockiert, sind robuste Schnittstellen notwendig. Da Microservices-Architekturen durch kleiner geschnittene Systeme viel mehr Schnittstellen haben, gibt es hierfür fertige Bibliotheken, um dies zu lösen. Davon profitieren auch klassische Architekturen.

Dynamische Konfiguration zur Laufzeit

Das erste, was eine Anwendung bei ihrem Start benötigt, ist ihre Konfiguration. Konfiguration ist das, was sich in verschiedenen Staging-Umgebungen wie Entwicklung, Test und Produktion unterscheidet und was ohne Ausrollen einer neuen Softwareversion geändert werden soll. Der Rest ist Programmcode. Die gute Nachricht: Da durch die Continuous-Delivery-Pipeline mehrmals pro Tag Softwareänderungen in Produktion gegeben werden können, kann an den Stellen auf Konfiguration verzichtet werden, bei denen sie früher auf Vorrat oder auf Verdacht eingebaut wurde. Zusätzlich kommen neue Konfigurationen hinzu, etwa für Feature Toggles, mit denen neue Funktionen erst in ...

Entwickler Magazin
Konfiguration, Service Discovery und Resilience

Baukasten für flexible und robuste Microservices

Microservices locken mit dem Versprechen, neue Funktionalitäten zielgerichteter und schneller in Produktion zu bringen. Die Herausforderung ist dabei, den Überblick zu behalten. Denn wo früher noch die Verwaltung und Problemanalyse von Hand möglich war, hilft jetzt nur noch vollständige Automatisierung. Wie gut, dass es dafür fertige Komponenten für Konfiguration, Service Discovery und Resilience gibt.

Alexander Schwartz


Das große Versprechen einer Microservices-Architektur ist es, dass Ideen zielgerichteter und schneller umgesetzt werden und in Produktion gehen können. Wo es früher nur wenige Releases pro Jahr gab, sollen es jetzt mehrere Releases pro Tag sein, die jeweils automatisch in einer Continuous-Delivery-Pipeline getestet werden. Dies gelingt nur, wenn statt eines großen Monolithen kleine Services zielgerichtet in Produktion gebracht werden.

In einer solchen Umgebung ist die manuelle Konfiguration von Services genauso wenig möglich wie die manuelle Installation. Es sind Lösungen gefragt, die die dynamische Rekonfiguration der Services zulassen und dafür an zentraler Stelle hochverfügbar und passend zur Umgebung die notwendigen Konfigurationen bereitstellen. Die Umgebungen sollen sowohl dynamisch horizontal skalieren als auch jederzeit neue Services integrieren können. Einen Load Balancer von Hand zu konfigurieren, scheidet hier aus. Auch wenn ein Load Balancer für den Zugriff von außen einen zentralen Einstiegspunkt bieten kann, sollen sich Services innerhalb der eigenen Infrastruktur direkt austauschen. So wird der Load Balancer nicht zum unnötigen Engpass. Hierfür ist Service Discovery gefragt.

Services sind von ihrer eigenen Datenbank und den Services in ihrer Umgebung abhängig. Ist eine dieser Abhängigkeiten nicht verfügbar oder zu langsam, so ist der Service nicht verfügbar und Fehler pflanzen sich fort. Dies gilt sowohl in klassischen als auch in Microservices-Architekturen. Damit nicht ein defekter Service die anderen blockiert, sind robuste Schnittstellen notwendig. Da Microservices-Architekturen durch kleiner geschnittene Systeme viel mehr Schnittstellen haben, gibt es hierfür fertige Bibliotheken, um dies zu lösen. Davon profitieren auch klassische Architekturen.

Dynamische Konfiguration zur Laufzeit

Das erste, was eine Anwendung bei ihrem Start benötigt, ist ihre Konfiguration. Konfiguration ist das, was sich in verschiedenen Staging-Umgebungen wie Entwicklung, Test und Produktion unterscheidet und was ohne Ausrollen einer neuen Softwareversion geändert werden soll. Der Rest ist Programmcode. Die gute Nachricht: Da durch die Continuous-Delivery-Pipeline mehrmals pro Tag Softwareänderungen in Produktion gegeben werden können, kann an den Stellen auf Konfiguration verzichtet werden, bei denen sie früher auf Vorrat oder auf Verdacht eingebaut wurde. Zusätzlich kommen neue Konfigurationen hinzu, etwa für Feature Toggles, mit denen neue Funktionen erst in ...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang