← Zur Uebersicht

Concordia Bank AG — WebSphere-Liberty-Betriebslernprojekt

Lernprojekt zur Vorbereitung auf ein Bewerbungsgespräch für die Rolle "Websphere Application Server Spezialist (WAS)". Im Gegensatz zu den meisten anderen Projekten in diesem Workspace liegt der Fokus nicht auf Java-Entwicklung, sondern auf Middleware-Betrieb: Liberty installieren/konfigurieren, überwachen, tunen, troubleshooten, automatisiert deployen, absichern (LDAP/SSL/Rollen) und hochverfügbar betreiben — exakt die Punkte aus der zugrunde liegenden Stellenanzeige.

Fachlicher Rahmen: eine fiktive Bank (Core-Banking auf z/OS + DB2 for z/OS, Portale auf WebSphere Liberty, zentrales LDAP) — Details siehe docs/00-ueberblick/systemlandschaft.md.

Ehrlichkeits-Konvention (übernommen aus dem Referenzprojekt labs/novaris-versicherung-legacy): jede Doku-Seite kennzeichnet klar, ob eine Aussage gegen einen echten laufenden Server/Container verifiziert ist, oder nur dokumentiert/ vorbereitet (z. B. weil echtes DB2 for z/OS oder ein IBM-MQ-HA-Cluster hier nicht verfügbar sind).

Schnellstart

Voraussetzungen: PowerShell 7, JDK 21, Maven und Podman (oder Docker) für die Infrastruktur-Abhängigkeiten.

Für die manuelle Unix-/WSL-Variante liegt weiterhin die Bash-Skriptsammlung bei. Der plattformübergreifende PowerShell-Prüfeinstieg erzeugt Zertifikat und Truststore nativ.

Infrastruktur zuerst (LDAP-Verzeichnis der fiktiven Bank, per LDAPS - siehe docs/60-security-lifecycle/04-ldaps-tls.md):

bash scripts/ldap-tls-cert-generate.sh   # einmalig: eigenes TLS-Zertifikat mit korrektem SAN
cd infra
podman compose up -d
cd ..
bash scripts/ldap-tls-trust-setup.sh     # Liberty-Truststore aus dem Zertifikat bauen

Die reproduzierbaren Prüfeinstiege liegen im Repository:

pwsh -NoProfile -File ci/scripts/verify-repository.ps1 -Mode Fast
pwsh -NoProfile -File ci/scripts/verify-repository.ps1 -Mode Full
pwsh -NoProfile -File ci/scripts/verify-repository.ps1 -Mode Integration

Dann Liberty:

# Liberty-Server starten (echter Open-Liberty-Prozess, kein Docker-Image)
cd concordia-portal
CONCORDIA_LDAP_BIND_PASSWORD="ConcordiaAdmin123!" mvn liberty:run
# in einem zweiten Terminal:
curl http://localhost:19080/concordia-portal/health
curl -u "m.bauer:AdminDemo123!" http://localhost:19080/concordia-portal/secure/whoami
# Strg+C im ersten Terminal zum Beenden

Nicht-interaktive Variante (startet, verifiziert, stoppt automatisch wieder):

cd concordia-portal
CONCORDIA_LDAP_BIND_PASSWORD="ConcordiaAdmin123!" mvn verify -Pliberty-verify

Struktur

Verzeichnis Inhalt
docs/ Ausführliche Doku, eine Ausbaustufe pro Zehner-Nummer — siehe Roadmap in docs/00-ueberblick/systemlandschaft.md
concordia-portal/ Maven-Modul (Jakarta EE, liberty-maven-plugin) — die duenne Beispielanwendung, an der die WAS-Administrationsthemen demonstriert werden
infra/ Docker/Podman-Compose nur für Infrastruktur-Abhängigkeiten (OpenLDAP) — Liberty selbst läuft über Maven, nicht hier. Echtes DB2 for z/OS ist nicht verfügbar, siehe docs/40-bindeglied-dev-ops-db2-netzwerk/
scripts/ Betriebs-/Hilfsskripte (deploy.sh, health-check.sh, ldap-test.sh, gc-log-analyse.sh, cert-rotation.sh, md-to-html.py) — siehe docs/50-automatisierung-deployment/
Jenkinsfile CI/CD-Pipeline im Workspace-Stage-Muster, siehe docs/50-automatisierung-deployment/02-jenkinsfile-und-uebergabe.md
project.yaml Maschinenlesbarer Projektstatus für das zentrale Workspace-Cockpit
ci/scripts/verify-repository.ps1 Einheitlicher PowerShell-7-Einstieg für Unit-, Build- und echte LDAP-/Liberty-Prüfungen

Werkzeuge in diesem Projekt

Status

Alle Ausbaustufen aus der Roadmap in docs/00-ueberblick/systemlandschaft.md sind angelegt. Nachweistabelle unten für den direkten Abgleich mit der Anzeige.

Der kanonische Workspace-Pfad ist labs/concordia-bank-middleware; das private GitHub- Repository heißt nursude/concordia-bank-middleware und verwendet ausschließlich main.

Nachweistabelle: Anzeigen-Anforderung → Projektstelle

Anzeigen-Anforderung Wo im Projekt Status
Installation, Instandhaltung und Konfiguration von Websphere Liberty docs/10-installation-konfiguration/ ✅ verifiziert
Monitoring, Troubleshooting, Tuning/Skalierung (Java Heap, GC, Threads, Pools) docs/20-monitoring-tuning/, docs/30-troubleshooting-runbooks/ ✅ verifiziert (HotSpot), Semeru/OpenJ9 dokumentiert
Bindeglied Java-Entwicklung ↔ WAS-Administration ↔ DB2 für z/OS, Netzwerk (dezentral/zentral) docs/40-bindeglied-dev-ops-db2-netzwerk/ 📄 dokumentiert (kein echtes z/OS verfügbar)
Implementierung/Automation von Betriebs-, Deployment- und Testprozessen docs/50-automatisierung-deployment/, scripts/, Jenkinsfile ✅ verifiziert (alle 5 Skripte real getestet)
Bereitstellung/Administration der Applikationen inkl. Übergabe an Betrieb und Support docs/50-automatisierung-deployment/02-jenkinsfile-und-uebergabe.md ✅ verifiziert (Checkliste + real getesteter Deploy-Zyklus)
Einspielung und Konfiguration der Software docs/10-installation-konfiguration/ ✅ verifiziert
Unterstützung beim Aufbau einer Infrastruktur infra/, docs/00-ueberblick/systemlandschaft.md ✅ verifiziert (OpenLDAP-Infra von Grund auf aufgesetzt)
Security Lifecycle: Rollen und Rechte, Zertifikate, SSL docs/60-security-lifecycle/ ✅ verifiziert (LDAP-Auth, Rollen-Mapping, SSL, Zertifikatsrotation)
Sehr gute WAS-/Middleware-Kenntnisse gesamtes Projekt, insb. docs/10-installation-konfiguration/
Gute LDAP-Kenntnisse docs/60-security-lifecycle/02-ldap-registry.md ✅ verifiziert
Linux/UNIX-Umfeld alle Skripte/Doku bash-basiert, infra/ containerisiert
High Availability (24x7) AppServer docs/70-high-availability/01-appserver-ha-demo.md ✅ verifiziert (zwei echte, gleichzeitig laufende Knoten)
High Availability Messaging docs/70-high-availability/02-messaging-ha.md 📄 dokumentiert (kein IBM-MQ-Cluster verfügbar)

Legende: ✅ = gegen echten Server/Container verifiziert, 📄 = dokumentiert/vorbereitet (Begründung jeweils auf der verlinkten Seite).

Lizenz / Nutzung

Privates Lernprojekt. Kein Produktionscode, keine echten Daten.

⌂ Cockpit