20 Labs mit Aufgaben und Loesungen

Diese Labs sind bewusst praktisch. Jedes Lab enthaelt Ziel, Befehle, erwartete Ausgabe, Aufgabe und Loesung.

← Zurueck zum Index

Lab 01: System starten und Portal verstehen

Ziel

Docker Compose Stack starten, Portale oeffnen, Systemkarte lesen

Befehle

docker compose up -d
docker compose ps

Erwartete Ausgabe

  • alle Container laufen
  • index.html zeigt Academy Einstieg

Aufgaben

  • Welche Systeme sind im Stack?
  • Welche Ports sind wichtig?

Loesung und Lernkontrolle

Containerstatus dokumentieren und URLs in Projektkarte pruefen.

Lab 02: REST Bestellung annehmen

Ziel

Order Accept Flow ausloesen

Befehle

curl -i -X POST http://localhost:8080/api/orders/ORD-LAB-02/accept

Erwartete Ausgabe

  • HTTP 200
  • Status ACCEPTED

Aufgaben

  • Welche Schichten werden durchlaufen?

Loesung und Lernkontrolle

REST -> UseCase -> Payment -> DB -> Outbox.

Lab 03: PostgreSQL Orders pruefen

Ziel

Datenbank nach REST Flow inspizieren

Befehle

docker compose exec postgres psql -U order_user -d orderdb -c "select * from order_platform.orders;"

Erwartete Ausgabe

  • Order sichtbar

Aufgaben

  • Welche Tabelle gehoert zur Domain?

Loesung und Lernkontrolle

order_platform.orders enthaelt den fachlichen Zustand.

Lab 04: Outbox verfolgen

Ziel

Outbox Event pruefen

Befehle

docker compose exec postgres psql -U order_user -d orderdb -c "select event_type,status from outbox.events;"

Erwartete Ausgabe

  • OrderAccepted Event

Aufgaben

  • Warum steht Event erst in DB?

Loesung und Lernkontrolle

Outbox entkoppelt DB-Commit vom Broker-Publish.

Lab 05: RabbitMQ Queue pruefen

Ziel

Broker und Queue kontrollieren

Befehle

open http://localhost:15672
rabbitmqctl list_queues name messages

Erwartete Ausgabe

  • billing.order-accepted vorhanden

Aufgaben

  • Welche Rolle hat Routing Key?

Loesung und Lernkontrolle

Routing key verbindet Eventtyp mit Queue.

Lab 06: Keycloak Token holen

Ziel

JWT erzeugen und API mit Token rufen

Befehle

./scripts/security/get-keycloak-token.sh order-admin admin

Erwartete Ausgabe

  • access_token vorhanden

Aufgaben

  • Was ist 401? Was ist 403?

Loesung und Lernkontrolle

401 ungueltig/fehlend, 403 Rolle fehlt.

Lab 07: Security Negativtest

Ziel

order-reader darf keine Admin Aktion

Befehle

TOKEN=$(./scripts/security/get-keycloak-token.sh order-reader reader)
curl -i -H "Authorization: Bearer $TOKEN" -X POST ...

Erwartete Ausgabe

  • HTTP 403

Aufgaben

  • Warum ist das gut?

Loesung und Lernkontrolle

Least privilege wird praktisch sichtbar.

Lab 08: Payment Fehler simulieren

Ziel

WireMock Fehlerfall aktivieren

Befehle

curl -i http://localhost:8089/__admin/mappings
curl -X POST http://localhost:8089/payment/authorize

Erwartete Ausgabe

  • Fehlerantwort oder Delay

Aufgaben

  • Was macht Resilience?

Loesung und Lernkontrolle

Timeout/Retry/Circuit Breaker begrenzen Schaden.

Lab 09: Circuit Breaker beobachten

Ziel

Metriken und Status pruefen

Befehle

curl http://localhost:8080/actuator/metrics
curl http://localhost:8080/actuator/prometheus

Erwartete Ausgabe

  • Resilience Metriken sichtbar

Aufgaben

  • Wann soll Circuit oeffnen?

Loesung und Lernkontrolle

Bei wiederholten Fehlern statt Systemueberlast.

Lab 10: Prometheus Targets pruefen

Ziel

Scrape-Ziele ansehen

Befehle

curl http://localhost:9090/api/v1/targets

Erwartete Ausgabe

  • order-runtime target up

Aufgaben

  • Warum ist /actuator/prometheus offen?

Loesung und Lernkontrolle

Prometheus braucht lesenden Zugriff auf Metriken.

Lab 11: Grafana Dashboard lesen

Ziel

Dashboard oeffnen und Panels interpretieren

Befehle

open http://localhost:3000

Erwartete Ausgabe

  • Dashboard sichtbar

Aufgaben

  • Welche Metrik ist fachlich?

Loesung und Lernkontrolle

Technische und fachliche Metriken trennen.

Lab 12: Backup erstellen

Ziel

PostgreSQL Backup ausfuehren

Befehle

./scripts/database/backup-postgres.sh

Erwartete Ausgabe

  • Backup-Datei entsteht

Aufgaben

  • Wo wird Backup abgelegt?

Loesung und Lernkontrolle

Backup muss versioniert und pruefbar sein.

Lab 13: Restore ueben

Ziel

Backup in Test-DB wiederherstellen

Befehle

./scripts/database/restore-postgres.sh backup-file

Erwartete Ausgabe

  • Restore ohne Fehler

Aufgaben

  • Warum in Test-DB?

Loesung und Lernkontrolle

Restore nie zuerst in Produktion testen.

Lab 14: Maven Quality Gate

Ziel

Build und Tests ausfuehren

Befehle

mvn -q verify

Erwartete Ausgabe

  • BUILD SUCCESS

Aufgaben

  • Welche Module werden gebaut?

Loesung und Lernkontrolle

CI/CD fuehrt dieselben Gates reproduzierbar aus.

Lab 15: SBOM erzeugen

Ziel

Abhaengigkeiten sichtbar machen

Befehle

mvn cyclonedx:makeAggregateBom

Erwartete Ausgabe

  • bom.xml oder bom.json

Aufgaben

  • Warum braucht Betrieb SBOM?

Loesung und Lernkontrolle

Security und Lizenzbewertung brauchen Inventar.

Lab 16: Kubernetes Manifeste rendern

Ziel

Kustomize/Helm pruefen

Befehle

kubectl kustomize deploy/kustomize/overlays/local
helm template order-runtime deploy/helm/order-runtime

Erwartete Ausgabe

  • YAML Ausgabe

Aufgaben

  • Welche Werte sind environment-spezifisch?

Loesung und Lernkontrolle

Deployment als Code macht Unterschiede sichtbar.

Lab 17: CrashLoop Diagnose simulieren

Ziel

Fehlerdiagnose mit kubectl lernen

Befehle

kubectl describe pod <pod>
kubectl logs <pod> --previous

Erwartete Ausgabe

  • Events/Logs zeigen Ursache

Aufgaben

  • Was zuerst lesen?

Loesung und Lernkontrolle

Events zeigen Startfehler, Logs zeigen Laufzeitfehler.

Lab 18: DLQ Analyse

Ziel

Dead Letter Messages untersuchen

Befehle

rabbitmqctl list_queues name messages
rabbitmqctl get_queue_messages ...

Erwartete Ausgabe

  • DLQ Count sichtbar

Aufgaben

  • Wann replayen?

Loesung und Lernkontrolle

Erst Ursache fixen, dann Replay.

Lab 19: Incident Mini-Drill

Ziel

Alert annehmen und Runbook folgen

Befehle

curl /actuator/health
docker compose logs runtime

Erwartete Ausgabe

  • Ursache dokumentiert

Aufgaben

  • Welche Evidenz braucht Review?

Loesung und Lernkontrolle

Incident Response ist Prozess plus technische Diagnose.

Lab 20: End-to-End Abschluss

Ziel

Flow komplett von API bis Dashboard nachvollziehen

Befehle

curl -X POST ...
SQL select
RabbitMQ pruefen
Prometheus pruefen

Erwartete Ausgabe

  • alle Stationen sichtbar

Aufgaben

  • Kannst du den Flow erklaeren?

Loesung und Lernkontrolle

Das ist der Abschluss: verstehen, ausfuehren, pruefen, erklaeren.

⌂ Cockpit