Microservices

Microservices erlauben cloud-basiert eine einzelne Anwendung aus vielen lose gekoppelten und unabhängig voneinander einsetzbaren kleineren Komponenten oder Diensten zusammenzubauen. Diese Dienste haben in der Regel 

  • ein eigenes Stack, einschließlich der Datenbank und des Datenmodells; 
  • eine Kommunikation über eine Kombination aus REST-APIs, Ereignis-Streaming und Nachrichtenbrokern  

 

Während sich ein Großteil der Diskussion über Mikrodienstleistungen um architektonische Definitionen und Merkmale dreht, lässt sich deren Wert auch durch relativ einfache geschäftliche und organisatorische Vorteile verstehen: 

  • Code kann einfacher aktualisiert werden. 

  • Teams können unterschiedliche Stapel für unterschiedliche Komponenten verwenden. 

  • Komponenten können unabhängig voneinander skaliert werden, was den Aufwand und die Kosten für die Skalierung ganzer Anwendungen verringert, da ein einzelnes Feature möglicherweise zu stark ausgelastet ist. 

Microservices sind ideal weil sie:

  • Ermöglichen, dass Entwicklungsteams parallel an einem System arbeiten können 

  • Eine kurze Time to Market und schnelle Feedbackzyklen erzielen 

  • Ausfälle des Gesamtsystems vermieden werden können (und somit starken Imageschaden und hohe Kosten) 

  • Lastspitzen und starken Schwankungen von Benutzerzahlen ausgeglichen werden 

  • Eine stabile Wartbarkeit und Anpassung für Systeme mit langen Laufzeiten ohne Zeitverlust und Risiko 

  • Sichern gegen technologische Fehlentscheidungen ab 

  • Erleichtern Innovation und den Wechsel zu moderneren Technologien 

  • Ermöglichen einen unkomplizierten Einsatz unterschiedlicher Technologien in unterschiedlichen Systemen  

  • Gelangen zu schnellen, lokalen Entscheidungen, anstatt lange mit globalen Entscheidungen zu kämpfen 

  • Gute und motivierte Softwareentwickler gewinnen und halten 

 

Da Microserviceses in der Regel auf Protokolle setzen, die deutlich langsamer sind als direkte Aufrufe innerhalb eines Monolithen, kann sich in diesen Situationen kann ein monolithisches System lohnen: 

  • Es arbeitet nur ein Entwicklungsteam. 

  • Das System so klein ist, dass sich Continuous Delivery trotzdem gut umsetzen lässt. 

  • Der Schaden durch Systemausfälle gering ist oder Resilienz sich anders gut gewährleisten lässt. 

  • Sich Benutzerzahlen und Auslastung frühzeitig prognostizieren lassen bzw. nur langsam ändern. 

  • Das System eine kurze, geplante Laufzeit hat. 

  • Die Probleme, mit denen sich das System beschäftigt, eher homogen sind und sich mit der gleichen Technologie gut lösen lassen. 

 

Die Frage, ob eine Microservice-Architektur besser ist als ein monolithisches System, lässt sich nicht generell beantworten, da es immer auf das konkrete Szenario ankommt. Überprüfen Sie daher für jedes Projekt, welche Variante besser zu Ihren eigenen Zielen passt. Bedenken Sie dabei auch, dass jede Variante ihren Preis hat und vergessen Sie nicht: Sie senken in großen Softwaresystemen die Komplexität nicht durch den Einsatz von Microservices, sondern verlagern sie teilweise aus dem Code in die Architektur und Kommunikation. 

Wenn Sie unsicher sind, welche Variante die Beste für Ihr Unternehmen, Ihren Bereich oder Ihr Projekt ist, lassen Sie sich beraten. Im ersten Schritt von Ihren Experten aus der Softwareentwicklung und darüber hinaus auch extern. Gute IT-Dienstleister betrachten Ihre Systeme ganzheitlich und können Ihnen Vor- und Nachteile für beide Seiten aufzeigen. Gegebenenfalls ist es bei einer Umstellung auch sinnvoll, dass Sie Ihre Mitarbeiter schulen lassen.  

Wir helfen Ihnen gerne weiter. Kontaktieren Sie uns für ein unverbindliches erstes Gespräch. 

Fragen Sie eine Offerte zum Thema Microservices an. 

Lösen Sie die Matheaufgabe: abfrage abfrage abfrage