© Studio_G/Shutterstock.com
Wenn Java EE und MicroProfile auf Kubernetes und Istio treffen …

Ein Cloud-Native-Starter-Projekt


Nicht jede neue Anwendung muss als Microservices-Architektur „cloud-native“ entwickelt werden, aber das Thema Cloud-native hat mittlerweile sicherlich den Hypestatus überwunden und sich als feste Größe in der Anwendungsentwicklung etabliert. Allerdings bedeutet der Umstieg auf Cloud-native, dass man viel Neues lernen und alte Gewohnheiten aufgeben muss. Das kann schon viel auf einmal sein, wie wir selbst erfahren haben.

Anfang des Jahres haben wir in unserem Team entschieden, dass wir uns mit dem Thema Java EE und Container beschäftigen wollen. Java EE, weil es immer noch die meistverwendete Sprache im Enterprise-Umfeld ist, und Container, da sie praktisch unumgänglich sind, wenn es um Cloud-native-Anwendungen geht. Cloudtechnologie ist ja auch ein wichtiger Baustein für die Themen Digitalisierung und Anwendungsmodernisierung im genannten Enterprise-Umfeld. Unser Ziel war es, herauszufinden, ob man für Anforderungen an Ausfallsicherheit, Testing, Monitoring usw. besser die Funktionen einer Plattform wie Istio [1] verwendet oder die Funktionen eines Frameworks wie MicroProfile [2]. Dabei stellten wir fest, dass es im Internet dafür zwar viele Beispiele gibt, diese aber entweder nur einzelne Aspekte betrachten, auf proprietären Produkten basieren oder so komplex waren, dass sie auf einem typischen Notebook nicht installierbar wären. Deshalb entstand unser Cloud-Native-Starter-Projekt, das komplett auf Open Source basiert, selbst Open Source und mit Hilfe von Skripten für jeden einfach installierbar ist, und von uns auf GitHub veröffentlicht wurde [3]. Wir wollten dabei alle (oder zumindest die meisten) Aspekte abdecken, die einen Anwendungsentwickler im Enterprise-Umfeld zum Thema Cloud-native interessieren könnten:

  • Java und REST APIs

  • Traffic Routing (Dark Launches, Canary Deployments)

  • Resiliency (Verhalten der Anwendung im Fehlerfall)

  • Authentication, Authorization

  • Verteiltes Logging und Monitoring

  • Health Checks

  • Konfiguration

  • Persistenz mit Java Persistence API

Zusätzlich wollten wir es auf möglichst vielen Umgebungen realisieren – im Moment haben wir Skripte für:

  • Minikube

  • IBM Cloud Kubernetes Service

  • Minishift

  • OpenShift auf der IBM Cloud

Im GitHub-Projekt sind momentan weit über 20 Blogartikel verlinkt, die wir zu einzelnen Themenbereichen geschrieben haben. Einige davon zitiere ich in diesem Artikel, und es ist zusätzlich ein kompletter Hands-on-Workshop zum Thema Cloud-native Applications enthalten [4].

Grundlagen

Nachfolgend die Definition für Clou...

Neugierig geworden?

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