Microservices

Eschborn, 17.09.2015

Aufgrund der zunehmenden Verbreitung von Microservices untersucht Agon Solutions derzeit Vor- und Nachteile für anstehende Projektvorhaben sowie deren Umsetzungsvarianten und Betrieb mit Open-Source-Frameworks.

Die Konzeption von Microservices ist ein vergleichsweise neuer Architekturstil für modulare Entwicklung, der sich aus gemeinsamen Erfahrungen namhafter Unternehmen wie beispielsweise Netflix für erfolgreiche Erstellung und Betrieb von Services entwickelt hat. Bestehende Prinzipien,  insbesondere SOA, agile Entwicklung, DevOps und Continuous Integration dienen als Basis, werden aber weiter optimiert und ergänzt.

Eine „Microservice Architecture" beschreibt eine Vorgehensweise zur Erstellung einer Anwendung als Gruppe kleiner, unabhängig und automatisiert auslieferbarer Services, die jeweils in einem separaten Prozess laufen und über leichtgewichtige Mechanismen wie Web-Resource-Schnittstellen miteinander kommunizieren. Sie werden für klar abgegrenzte Fachfunktionen erstellt und können mit unterschiedlichen Technologien (Anwendungssprachen, Datenbanktechnologien, Tools) erstellt und betrieben werden.

Als wichtigste Vorteile des Architekturstils insbesondere gegenüber Silo-Anwendungen sind zu nennen:

  • Die Isolation einzelner Services und ihrer Funktionalität bringen hohe Flexibilität bezüglich unabhängiger Änderbarkeit, geringer Komplexität und individuellem Einsatz von Tools und Technologien („the right tool for each job")
  • Schnelle Umsetzung (ein Service soll in zwei Wochen neu erstellbar/ersetzbar sein) und Automationsgrad (Auslieferung von Fachfunktionen als Services) führen zu einem deutlichen Geschwindigkeitsvorteil

Nachteilig ist insbesondere eine insgesamt höhere Komplexität bezüglich Anzahl der Services, der Technologien und des Fehlerpotentials.

Eine feste Definition zu Microservices existiert bislang nicht. Nachfolgend die wichtigsten Charakteristika (Artikel Martin Fowler):

  • Komponentisierung in Form von Services: Komponenten sind Softwarebestandteile, die unabhängig voneinander ersetzt und aktualisiert werden können
  • Teams werden anhand von Fachfunktionen gebildet und verfolgen eine Produktphilosophie
  • Evolutionäre, schrittweise Vorgehensweise zur Aufteilung bzw. Ersatz bestehender Silos und Technologien
  • Design-for-Failure (temporäre oder vollständige Nichterreichbarkeit)
  • Transparenz zur Laufzeit in Form von detailliertem Real-time- und semantischem Monitoring

Fragen Sie unseren Experten

Nicole Heyne
Marketing/Vertrieb
vertrieb@agon-solutions.de