2450555

So bauen Entwickler ihre erste Cloud-native Anwendung

Welche Komponente ist die richtige und wie spielen die Komponenten zusammen – das Entwickeln Cloud-nativer Anwendungen ist nicht trivial. Wie JEE, Kubernetes, Eclipse Microprofile und Istio dabei unterstützen, weiß Niklas Heidloff von IBM.

Kürzere Time-to-market, Skalierbarkeit, höhere Sicherheit – die Vorteile der Cloud sind beim Management angekommen. Entwickler allerdings verbinden damit andere Schlagworte: Microservices, Architekturen und Kubernetes zum Beispiel. Wie sie das Thema angehen können, daran arbeitet NiklasHeidloff . Der IBM-Evangelist für Java- und Cloud-Technologien weiß: „Entwickler fühlen sich oft überwältigt, wenn sie anfangen, Cloud-native Anwendungen mit Microservices zu schreiben.“
 
Wer die geforderten End-to-end-Anwendungen programmieren will, sollte zunächst verstehen, welche Technologie wie zu nutzen ist. „Deshalb haben meine Kollegen und ich auf Basis von Open Source eine neue Referenz-Architektur entwickelt. Wir bieten ein Beispiel dafür, wie man Cloud-native Applikationen und Microservices durchgängig end-to-end implementieren kann“, erklärt Heidloff. Der Code ist auf GitHub verfügbar , das Repository nennt sich cloud-native-starter.

Technologien, Funktionen und Besonderheiten

Konkret geht es um folgende Technologien: Kubernetes, Istio, Java/Jakarta EE und Eclipse MicroProfile. Die Referenz-Architektur demonstriert dabei eine Reihe von Cloud-nativen Schlüsselfunktionen: Containerized Java EE Microservices, Exposing REST APIs, Consuming REST APIs, Traffic Routing, Resiliency, Authentication und Authorization, Distributed Logging sowie Metrics und Persistence mit Java Persistence API (JPA).
 
Die wichtigsten Komponenten der Anwendung sind quelloffen verfügbar. Jeder kann sie nutzen – es gibt keinen Vendor Lock-In. Komponenten, die nicht open source laufen, sind optional und lassen sich durch andere Services ersetzen. So kann man in puncto Persistence JPA von der IBM db2 Datenbank auf andere SQL-Datenbanken switchen. „Es ist sehr einfach, das Sample aufzusetzen“, betont Heidloff, „binnen einer Stunde sollte das erledigt sein.“

Vorteile für Entwickler im Unternehmen

Cloud ist nicht gleich Cloud – sie kann private oder public betrieben werden, in gemanagten oder nicht-gemanagten Umgebungen. Die Lösung dazu liefert Kubernetes. Heute fungieren diese Orchestrierungs-Plattform und das Service Mesh Istio de facto als Standard für den Betrieb Cloud-nativer Anwendungen.
 
Die neue Referenz-Architektur verfügt über Scripts und Dokumentationen für den Betrieb auf verschiedenen Kubernetes-Distributionen wie Minikube, IBM Cloud Kubernetes Service, Minishift und OpenShift in der IBM-Cloud. Entwickler lösen mit Kubernetes und Istio Fragen nach Traffic Routing, Resilienz, verteiltes Monitoring und Service Discoveries.
 
Dennoch decken Orchestration-Plattformen und Service-Meshes nicht alle Funktionen ab. Dann müssen Entwickler tief in die Business-Logik der Microservices einsteigen, etwa bei spezifischen Failover-Funktionen, Metriken und fein-granularen Autorisierungen.

Vier Design-Prinzipien

Hier greifen Entwickler zu Eclipse MicroProfile. Diese Extension von Java EE (Enterprise Edition) unterstützt dabei, Architekturen aufzubauen, die auf Microservices basieren, und hat sich als Ergänzung zu Kubernetes und Istio bewährt. Dem liegen folgende Design-Prinzipien zugrunde:
 
1. Die Nutzbarkeit der Plattform maximieren – möglichst wenig in Frameworks ausführen und darauf achten, dass sie nur bestimmten Programmiersprachen zugeordnet sind. Cloud-native Anwendungen sind typischerweise polyglott. Der Entwickler kann also die passende Sprache für jede Aufgabe wählen.
2. Für die Kernservices, welche die Anwendung erfüllen soll, nur Open Source-Komponenten nehmen. Einfach ausgedrückt: Es gibt wohl keinen Entwickler, der nicht auf Open Source abfährt …
3. Die First-Time Experience für Anwender so einfach wie möglich machen: An Artikeln und Tutorials rund um Cloud-native Features herrscht kein Mangel. Dennoch kennt auch Heidloff die Schwierigkeiten, wenn man versucht, diese Features in einer Anwendung laufen zu lassen – manchmal erfordern sie verschiedene Java-Stacks, manchmal verschiedene Versionen.
4. Darauf achten, dass die Applikation in verschiedenen Umgebungen läuft: Genau darin liegt einer der großen Pluspunkte von Kubernetes. Die Workloads laufen On-Premise, in einer Public Cloud oder in hybriden Umgebungen. Das Repo enthält Anweisungen, wie man die Applikation in Minikube und in gemanagten IBM Cloud-Kubernetes-Services implementiert.

Fazit: Gründe genug, es auszuprobieren!

In einem COMPUTERWOCHE Live Webinar in Zusammenarbeit mit IBM diskutieren wir u.a. diese Fragen:
 

  • Wie lassen sich JEE, Kubernetes, Eclipse Microprofile und Istio für die Entwicklung von Cloud-nativen Anwendungen einsetzen?

  • Wie geht man bei der Entwicklung vor?

  • Welche Vorteile ergeben sich?

Mehr Informieren zu diesem COMPUTERWOCHE Webcast am 10. September 2019, 11:00 Uhr finden Sie hier .

 

PC-WELT Marktplatz

2450555