Architekturvorteil: APIs & Microservices 

Flexibilität und technologische Autonomie – das sind die Kernaspekte bei der Entwicklung einer modernen service-orientierten Architektur mit APIs und Services. Mit Container und Cluster-Umgebungen überwindet sie die Restriktionen monolithischer Anwendungen und macht den Betrieb effizienter, sicherer und skalierbarer.

Die Herausforderung: Monolithische Anwendungen – unflexibel und teuer

Noch vor wenigen Jahren waren Application Server als Laufzeit-Umgebung für Enterprise-Anwendungen und Services der Stand der Dinge. Sie boten Vorteile wie einheitlichen Zugriff auf Datenbanken und Messaging Services, doch das feste technologische Umfeld der Server stellt gleichzeitig ein enges Korsett für eigene Ideen dar. 

Die eigene Anwendung muss den technischen Anforderungen in Bezug auf Programmiersprache, Frameworks und Persistenz genügen und ist an das jeweilige Server-Produkt gebunden. 
Abseits von echten (und teuren) Enterprise Application Servern stellt die punktuelle horizontale Skalierung von Services in der Architektur ein Problem dar. Oft kann nur der gesamte Server durch Zuweisung von mehr lokalen Ressourcen vertikal skaliert werden.

Nicht zuletzt schafft ein full-blown Application Service in einem modernen Cluster-Umfeld mit Container, Kubernetes oder OpenShift einen unnötigen Overhead. Viele der ehemals relevanten Mehrwert-Dienste lassen sich mittlerweile durch ein Service Mesh einfacher und effizienter mit der eigenen Businesslogik verweben. 

Moderne Architekturen mit robusten Schnittstellen und flexiblen Services

Service-orientierte Architekturen und Microservices sind angetreten, die Grenzen monolithischer Systeme zu überwinden. Sie bilden die notwendige fachliche Funktionalität der eigenen Anwendungen ab und delegieren die nicht-funktionalen Anforderungen wie Autorisierung und Authentifizierung, Protokollierung und Routing an ein Service Mesh. 

Der Zugriff auf die Funktionen der Anwendung erfolgt über ein Application Programming Interface (API), also eine definierte Schnittstelle, die Operationen, Parameter und Bedingungen für Anfragen festlegt und gleichzeitig die möglichen Antworten beschreibt. Diese API ist unabhängig von der eigentlichen Service-Implementierung und verwendet generische Transport-Formate wie JSON oder XML.

Bei richtiger Planung entstehen so Services, die atomar und zustandlos sind. Sie lassen sich in beliebige Systeme integrieren und durch massive parallele Instanzen nahezu beliebig skalieren. 

Performance-Booster: Die Implementierung einer (Micro-)Services-Architektur erlaubt die punktgenaue, horizontale Skalierung. Für Unternehmen bedeutet das: eine höhere Performance ihrer Anwendungen. Gleichzeitig verbessert sich die Resilienz des Systems, da Fehler nur begrenzte Auswirkungen haben. 

Einfache Integration: Die Schnittstelle (entworfen und dokumentiert via OpenAPI) nutzt die Formate JSON oder XML. Damit lassen sich Microservices sehr viel einfacher in bestehende Architekturen integrieren als es bei monolithischen Infrastrukturen der Fall ist. Funktionserweiterungen und Modernisierung gelingen schneller und kosteneffizienter. 

Geringer Ressourcenverbrauch: Durch die Abbildung einer Funktion in einem Service besteht die Option mehrere Versionen der entsprechenden API bzw. des Services parallel anzubieten. Im Gegenzug zu monolithischen Anwendungen bleibt der Ressourcen-Verbrauch dabei überschaubar, da nur einzelne Bestandteile der gesamten Service-Landschaft mehrfach vorhanden sein müssen.

Aleris Vorgehen für API- und Services-Projekte 

Sie möchten eine bestehende Anwendung auf eine Service-Architektur umstellen oder planen eine neue Anwendung nach dem Microservices-Ansatz? Wir gehen methodisch und strukturiert an jedes Projekt heran. Dabei gilt es die Technologien für die drei Kernbereiche – Service, Schnittstelle und Container/Cluster – je nach individuellem Use Case optimal aufeinander abzustimmen. 

Domain Driven Design: Wir analysieren zunächst die Anwendung auf ihre „Domänen“ – Funktionsgruppen, die eine logisch verbundene Einheit bilden und im Zusammenspiel mit anderen Funktionsgruppen zur Gesamtanwendung kombiniert werden können. An den einzelnen Domänengrenzen identifizieren wir Schnittstellen (APIs) und definieren den Zugang zu den unterschiedlichen Services. Dieses Vorgehen fördert den Service-Gedanken und erlaubt die Aufteilung von Entwicklungsaufgaben auf Teams oder Dienstleister. 

OpenAPI und AsyncAPI: Sowohl OpenAPI als auch AsyncAPI sind mächtige und dennoch leicht verständliche Formate für die Spezifikation und Dokumentation synchroner (z. B. REST) und asynchroner (z. B. Event-Driven) APIs. Zudem können mithilfe von Generatoren Vorlagen für die eigentliche Service-Implementierung erstellt werden. Als textbasierte Formate (YaML) ist außerdem die Versionierung über übliche Systeme wie Git oder SVN möglich.

Cloud und Container: Bevorzugt entwickeln wir Services für den Betrieb in (Linux-)Containern. Alle für den Betrieb notwendigen Abhängigkeiten können wir so bündeln und gemeinsam ausrollen. Gleichzeitig erlauben Container den Betrieb in der Cloud oder in lokalen Cluster-Umgebungen mit Kubernetes oder OpenShift. Nicht-funktionale Anforderungen (Monitoring, Logging, etc.) können außerdem an das Service Mesh übergeben werden.

Christoph Dahlen, Aleri Solutions

Christoph Dahlen

Technology Lead: API & Serviceschristoph.dahlen@aleri.de

Sie haben weitere Fragen? Möchten Kontakt zu uns aufnehmen?

Gerne beraten wir Sie unverbindlich zu Ihrem Use Case und zeigen Ihnen Referenzprojekte, in der wir ähnliche Herausforderung erfolgreich gelöst haben. 

Nutzen Sie gerne unser Kontaktformular - wir melden uns schnellstmöglich bei Ihnen.

Dieses Feld ist Pflicht.
*Pflichtangaben
Seite teilen