© Studio_G/Shutterstock.com
Cloud Compendium
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.

Harald Uebele


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 Cloud-native auf der Seite der Cloud Native Computing Foundation [5] (in meiner Übersetzung):

„Cloud-native Computing verwendet einen Open-Source-Softwarestack, um Anwendungen als Sammlung von Microservices zu deployen, jeden einzelnen Microservice in einen eigenen Container zu packen und diese Container dynamisch zu orchestrieren, um die Ressourcenauslastung zu optimieren. Die nativen Cloudtechnologien ermöglichen es Softwareentwic...

Cloud Compendium
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.

Harald Uebele


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 Cloud-native auf der Seite der Cloud Native Computing Foundation [5] (in meiner Übersetzung):

„Cloud-native Computing verwendet einen Open-Source-Softwarestack, um Anwendungen als Sammlung von Microservices zu deployen, jeden einzelnen Microservice in einen eigenen Container zu packen und diese Container dynamisch zu orchestrieren, um die Ressourcenauslastung zu optimieren. Die nativen Cloudtechnologien ermöglichen es Softwareentwic...

Neugierig geworden?


    
Loading...

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