Skip to content

Grundlagen: Quarkus Microservice Anwendung


Bevor wir uns der Migration in die Cloud widmen, betrachten wir die Anwendung, die als Grundlage für den Lehrvortrag dient. Diese Anwendung wurde in den vorherigen Lehreinheiten entwickelt.

Vorausgesetzte Kenntnisse

Für das Verständnis der Anwendung und der Migrationsstrategien sind grundlegende Kenntnisse in folgenden Bereichen hilfreich, die in vorherigen Lehreinheiten vermittelt wurden:

  • Verteilte Systeme
  • Microservice-Architekturen
  • RESTful APIs
  • Java und Maven

Die Beispielanwendung

Die Anwendung ist eine Microservice-basierte Anwendung, die mit Quarkus (Version 3.17.6) und Java 21 realisiert wurde. Quarkus ist ein leistungsstarkes Java-Framework, das für die Entwicklung Microservices und Cloud-native Anwendungen optimiert ist.

Microservice App

Systemkomponenten

Das System besteht aus mehreren unabhängigen Services und einem Frontend:

  1. authservice: Verantwortlich für die Authentifizierung von Benutzern und die Ausstellung von JSON Web Tokens (JWT). Nutzt eine H2 In-Memory-Datenbank für die lokale Entwicklung.
  2. profileservice: Verwaltet Benutzerprofile, inklusive Interessen und Expertenlevel. Nutzt ebenfalls eine H2-Datenbank.
  3. mondial: Bietet Zugriff auf geografische Daten (Städte, Länder) aus der Mondial-Datenbank. Der Dienst benötigt eine PostgreSQL-Datenbank mit Mondial. Ein passendes Docker-Image für die Mondial-Datenbank finden Sie hier.
  4. frontend: Eine JavaServer Faces (JSF) basierte Benutzeroberfläche, die mit den Backend-Services über REST-Schnittstellen kommuniziert und JWT zur Authentifizierung nutzt.

Kernmerkmale

  • Modularer Aufbau mit vier Microservices und einem Frontend.
  • Basiert auf Java 21 und Quarkus.
  • Nutzt REST-APIs und JWT für die Kommunikation und die Absicherung der Anwendung.
  • Dient als Ausgangspunkt für das "Lift & Shift"-Migrationsszenario im Lehrvortrag.

Der vollständige Quellcode dieser Beispielanwendung steht als ZIP-Archiv zum Download auf der Seite zum Terraform Deployment bereit. Sie finden das Repository auch auf GitHub und können es über GitHub Classroom für Übungszwecke nutzen.


Zurück zur Übersicht des Lehrvortrags