Files
Orchestrator/bahn/project-audit/data/confluence-export/pages/116555799_Architekturrunde PathOS.md
T
ankn a5f8fb49ab Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
      Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
      Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)

Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
2026-06-30 20:39:52 +02:00

76 KiB

Architekturrunde PathOS

Confluence Page ID: 116555799 Version: 743 Pfad: /pathOS/Kommunikationskanäle, Termine, Besprechungsnotizen pathOS/Besprechungsnotizen/Architekturrunde PathOS Labels:


Dies ist der Regeltermin um über anstehende Architekturentscheidungen zu sprechen und diese voranzutreiben. Die Ablage der Entscheidungen erfolgt weiterhin in Gitlab. Eine Auflistung hier soll primär der Vorbereitung der Termine dienen, insbesondere um sicherzustellen, dass relevante Entscheider dabei sind. Die aktuelle Version der Architekturbeschreibung findet man hier. Ältere Termine sind im  zu finden.

ADRs in Arbeit

| | Nr | Titel | Branch | MR | | ADR-72 | Technische Anbindung von Click&Ride an PathOS | |

| | ADR-74 | Technische Anbindung von TrassenPortal an PathOS | |

| | ADR-75 | Maximierung Verfügbarkeit der genutzten Container-Registries | | https://git.tech.rz.db.de/bestellsystem1/docs/runbook/-/merge_requests/553

Agenda-Backlog

Agenda 10.4.2026

Agenda 6.3.2026

  • Vorstellung Entwurf ADR-72 Technische Anbindung von Click&Ride und TrassenPortal an PathOS
  • Weiterentwicklung Systemtest
  • Schritt 1: Umstellung auf Plain-JUnit (das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CDEVOPS-794)
  • Schritt 2: TestDataContext entzerren (das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CDEVOPS-795)
  • Bing/Team-Zero: Kafka-Topic Option "retentionMS" vereinheitlichen?
  • Aktuell in Prod: Topic Tbv-Absicherung mit 365 Tage und alle andere Topics mit 7 Tage. 
  • Normale Topics: Standard 7 Tage, bei fachlich abweichender Anforderung wie z.B. TBV oder Stationsportal auch höhere Werte
  • Error-/DLTs: Standard 30 Tage
  • Einen einheitlichen Wert für die ABN/SAT-Umgebungen zu finden?
  • Information: TBV ist eine sensible Schnittstelle. Änderungen an der Konfiguration bitte nicht ohne Rücksprache durchführen!
  • Information: Mit TBV ist eine abweichende Retention vereinbart, deshalb muss die Konfiguration so bestehen bleiben.
  • David/Team-Subp: Sub-Artefakte wie libraries oder apis automatisiert veröffentlichen
  • Aktuell wurde von Subp Seite eine Umstellung der Pipeline auf "release by tagging only" vorbereitet
  • Das wurde der CI/CD Runde kritisiert, weil damit zusätzlich nach allen Renovate MRs noch zusätzlich zum Zeitpunkt X manuell eine Version getaggt werden muss und nachgelagert dann alle Apps auf diese neue Version updaten muss. 
  • Man möchte das weiterhin der stable Branch ins release-Artifactory veröffentlicht wird. 
  • Fragen:
  • will man das prinzipiell von der Architekturrunde?
  • wie werden die Version dann gebildet? aktuell ist bspw. bei apis der stable Branch ein semver Pre-Release "next"
  • Diskussionsergebnis:
  • Libraries: Händisches Tagging bei manuellen Änderungen, Automatismus bei Renovate-Bot-Anpassungen
  • APIs: Händisches Tagging grundsätzlich sinnvoll zwecks Nachvollziehbarkeit bei Bestellsystem-Releases.

Agenda 6.2.2026

  • Aktuelle Situation in den Pipelines: wurde durch die SIT2 die Situation aus Sicht der Teams besser?
  • Hat geholfen → Pipelines sind nicht mehr blockiert, wenn manuelle Tests auf der SIT stattfinden
  • SAT 3 für LuPs und DRT (temporär)
  • Integration der AV in die Portal-Middleware (das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-647)
  • Refactoring und Code-Cleanup in Portal-Middleware vorab
  • SAB-Team benötigt ggf. die AV
  • Höhere Priorisierung von Themen zur Verbesserung der Qualitätssicherung von PathOS
  • Henrik/OpsSquad: Metrics und Alerts
  • JVM-Metrics notwendig, um den tatsächlichen Speicherverbrauch auswerten zu können
  • Jonas/CIB: Umstellung auf https://git.tech.rz.db.de/devex/hardenedimages
  • Vorschlag Jonas: Verwendung ab Java 25 
  • Enabler für Umstellung erstellen →  
  • Vorschlag Christian P.: Parallele Pipeline zum Testen der nächsten Major-Version
  • Auf Applikations-Ebene in MR-Pipelines
  • Auf Deployment-Ebene wäre es nochmal zu prüfen
  • Testgrenzen klarer fassen → ,  
  • API-Informationen in Release-/Hotfix-Tickets mit aufnehmen (Sicherstellung der Abwärtskompatibilität)
  • eigener Abschnitt für APIs

Agenda 1.12.2025

  • Henning/CIB: Spring Boot 4 Upgrade (Spring Boot 3 OSS EOL 2026-06)
  • Thema für PI 40 → Enabler → das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-1001
  • Separater Enabler für JUnit 5 → JUnit 6 → das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-1002
  • Saurav/CIB: Gibt es ein definiertes Konzept oder einen Plan für die Migration auf Camunda 8.8 oder 8.x? In diese Versionen sind zahlreiche Breaking Changes enthalten, die möglicherweise zu Datenverlust in der Produktion führen könnten. https://docs.camunda.io/docs/apis-tools/migration-manuals/
  • Analyse der notwendigen Migrationsschritte hinsichtlich Aufwand und Risiko im Bestellsystem → Team CIB,  
  • Saurav/CIB: Die Blockierungen der SIT Runners führen dazu, dass die gesamte Pipeline stillsteht. Gibt es einen Plan, dieses Problem vor der Produktivsetzung zu verbessern?
  • Automatisierte SITs nur noch in der Tag-Pipeline; nicht mehr in der Master-Pipeline →  
  • Frank/Zero: Logging von Messages (Datenschutz)
  • Personenbezogene Daten in Logs sind zu maskieren

Agenda 17.11.2025

  • STeam: PostMortem Rotation Artifactory Token
  • Tokens sollten über Releaseprozess rotiert werden, was aber aus nicht ganz geklärten Gründen nicht funktioniert hat. Frage: Was ist konkret schief gegangen und wie können wir sicherstellen, dass es beim nächsten Mal klappt?
  • Secrets wurden in umgebungs-konfiguration nicht vollständig ersetzt
  • TODO: Secrets aufräumen, auf fehlerhafte Secret-Namen prüfen  
  • TODO: Struktur in bestellsystem-ops für alle Umgebungen/Cluster usw. vereinheitlichen  
  • Manager-Rolle in Artifactory benötigt, um neue Tokens zu generieren (→ Berechtigungen prüfen )
  • Dead Letter Topics:
  • Einheitliches Namensschema: --error
  • Dokumentation  

Agenda 17.10.2025

Agenda-Backlog

  • Martin / STeam: ADR für ECR-Nutzung ist in Writing
  • Entscheidung → ECR nur als Backup                          → ECR nur für Prod und Tests in Preprod (alle 3-4 Monate)
  • Martin/STeam, was genau soll eigentlich der Systemzustands-Check mit dem Developer Portal machen?
  • in der Praxis sehe ich das nur als Check darauf ob Secret-Leaks erkannt werden.
  • alles weitere erlebe ich persönlich nur als sinnloses Abtippen von bekannt false positive Zahlen aus einem Dashboard in einen Teams-Kanal. → nur Secrets in DXC Portal prüfen und Security Findings nur aus Trivy/Aqua betrachten → Henning macht Doku  
  • Einheitliches Hotfix-Vorgehen
  • Vorlage aus CIB besprechen
  • Änderungen am Vorgehen abstimmen und beschließen siehe: https://git.tech.rz.db.de/bestellsystem1/docs/runbook/-/merge_requests/431
  • CDaaS-Update via Renovate automatisieren? Yay or nay? Soll heissen: Wie können wir hier autoamtisieren, ohne gegen den Releaseprozess zu arbeiten?
  • Wenn nein, gibt es Teilaufgaben eines Updates, die sich automatisieren lassen, ohne die Releaseprozess zu "gefährden"? → update in höheren Versionen via Release Prozess → ja updates via Renovate
  • Zusammenlegung der APIs in ein Multi-Modul-Maven-Projekt → erstmal nicht umsetzen

Agenda 19.09.2025

  • Hotfix-Releases: Problematisch, dass durch reguläre Releases die SIT gesperrt ist

  • Abwägung der Prioritäten von Hotfix + Release

  • Um Sperrzeiten herum arbeiten

  • SITs automatisieren

  • Java 25: EOL Java 21 Amazon Corretto ist 31.10.2030 bzw. Eclipse Temurin ist 31.12.2029 → Umstellung auf Java 25 nach Go-Live

  • Martin / STeam: brauchen wir den infra/infrastruktur-kafka-container noch?

  • das ist ein Bitnami-Image mit Security-Findings ohne Updates, und wir haben aktuell keinen 1:1-Ersatz dafür

  • wir schlagen vor das Image und Repo zu löschen

  • AFAIK gab es drei Use-Cases:

  • Helm kafka-setup-Jobs => wurde durch neues Tool ersetzt

  • Topics Debugging => wurde durch kafbat/kafka-ui ersetzt

  • Tool-Image für Notfall-Debugging und Runbook-Scripte => wurde vermutlich nicht vorbereitet, ist im Runbook nicht dokumentiert => noch relevant?

  • Entscheidung: Wird nicht mehr benötigt; kann archiviert werden

  • Auch aus versions.yaml entfernen

  • Martin / STeam: ADR für ECR-Nutzung ist in Writing

  • Gerne mit- und gegenlesen. Wir haben aktuell grob drei offene Fragen vor einem Einbau von Amazon ECR als Ergänzung zu Artifactory als OCI-Image-Speicher.

  • Richtlinien-Klärung: können wir ECR-Repos im Prod-AWS-Account für alle Stages benutzen? Wie kleinteilig müssen wir die Zugriffspolicies schreiben?

  • Design-Entscheidung: ab welcher Stage wollen wir ECR anstatt Artifactory nutzen?

  • Design-Entscheidung: in welchen CI-Pipelines wollen wir Images nach ECR kopieren? Zentral in der staging-Pipeline, oder verteilt in allen Build-Repos und mehr?

  • TODO für alle: ADR lesen bis Architekturrunde am 17.10.2025; wird dort diskutiert

  • Martin / STeam: wer bekommt Zugriff auf unsere Kafka-UIs?

  • die Zugriffsrechte sind inzwischen alle auf GitLab-Gruppen abgebildet und die werden von Thorsten verwaltet. Der technische Teil ist also schon verbessert.

  • Haben wir Regeln wer hier genau Zugriff braucht und bekommt?

  • Zugriffsvergabe über ART Trio → Anfragen weiterleiten

Agenda 05.09.2025

  • Frank / Team Zero: zu klärende Fragen aus Refinement / Daily:
  • O2CZERO-2221 Talo Logging - ist das noch aktuell
  • Umgang mit dem GET "/"
  • und schließen sich kurz
  • Martin / STeam: wir brauchen bessere und einheitlichere Log-Levels
  • Beobachtung aus dem Systemzustands-Check, der täglich zeigt wie wenig hilfreich unsere Logs sind
  • falsche Nutzer-Eingaben sind keine (System-)Errors
  • ein einmaliger Verbindungs-Retry (z.Bsp. bei REST-API) ist kein Error
  • Entscheidung: Prüfen der Logausgaben in allen Teams. Error nur bei technischen Fehlern, die einen Eingriff benötigen; nicht in den beschriebenen Fällen.

Agenda 08.08.2025

  • Access-Proxy - wie geht es weiter?
  • Access-Proxy ist bestellt. Aktuelle Hindernisse durch noch nicht aktivierten Leistungsschein
  • Access-Proxy läuft unter anderen Hostnamen:
  • PROD: pathos.app.db.de
  • TEST: pathos-test.app.db.de → pathos-test-portal-ui.bsz-abn.cnp-test.comp.db.de
  • In Arbeit:
  • Aufbau neue EVU-Test mit Access-Proxy
  • Vorübergehender Parallelbetrieb alte und neue EVU-Test
  • Kundenkommunikation
  •  Systemzustandsmeldung
  • Wie gehen die einzelnen Teams mit den Rückmeldungen um?
  • Ist nachvollziehbar, dass die gemeldeten neuen Fehler behandelt (entweder neues Ticket oder nicht relevant) wurden?
  • Anpassungen an Übersicht 
  • Nummerierungsspalte hinzugefügt
  • Neue Einträge werden hintenangestellt
  • ExternalDNS ausbauen → neue URLs für betroffene Umgebungen das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1436
  • Schritt 1: IEU
  • Anpassung ankündigen
  • Anpassung vornehmen
  • Anpassung validieren und dokumentieren
  • Schritt 2: SIT
  • Anpassung SIT mit Stakeholdern zeitlich abstimmen
  • Anpassung vornehmen
  • Anpassung validieren und dokumentieren
  • Kommunikation an Stakeholder
  • Schritt 3: E2E
  • Ankündigen
  • Durchführen
  • Validieren und dokumentieren
  • Frank T./Staging für Nicht-Apps
  • E.g. curl, infrastruktur-basis-container, flyway
  • Aktuell passiert dies entweder manuell per renovate (ohne Staging, z.B. curl oder flyway landen parallel auf allen Umgebungen – ohne Testing auf unteren Testumgebungen wie IEU) oder manuell (mit Stagingmöglichkeit, z.B. infrastruktur-basis-container)
  • Das führt dazu, dass wir...
  • Kein Staging für wichtige Images haben
  • CVEs mitschleifen, z.B. O2CSYS-1720
  • Wie wollen wir es lösen?
  • Vorschläge
  • Staging Staging (Repo/Pipeline) ausbauen
  • Für unsere eigenen Images (nicht Apps, z.B. infrastruktur-basis-container)
  • Für andere Images (z.B. curl)
  • Manuellen Prozess aufsetzen und durchsetzen
  • Renovate-Updates auf bestellsystem-deployment
  • Update erst nur auf IEU, danach reguläres Staging (nochmal verifizieren )

Agenda 25.07.2025

  • Release 23.07. - Lessons Learned: SIT nicht mehr an E2E angleichen, sondern an Release-Stand
  • aktueller Zustand 
  • SIT → erfolgreich → Versionsstand übernommen in SIT-versions.yaml → keine Übernahme + Deployment auf E2E
  • neues Deployment auf die SIT nimmt effektiven Versionsstand der E2E als Ausgangspunkt für das Deployment; nicht den SIT-Versionsstand
  • NICHT Release-Stand
  • benötigter Zustand
  • SIT → erfolgreich → Versionsstand übernehmen nach SIT versions.yaml
  • Ausgangspunkt für Deployments auf SIT ist SIT versions.yml und nicht mehr die E2E versions.yaml
  • Deployments auf E2E und folgende Umgebungen per Full-Update von SIT
  • Manuelle Änderungen an der SIT versions.yaml nur noch in begründeten Ausnahmefällen
  • Umsetzung bei STeam → Review bei SUBP   schreibt Enabler → das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1792
  • Fragen aus Team Zero/Steam: Was ist der Stand für E2E oder was ist geplant?
  • E2E wird als Umgebung für TTT-IEU verwendet
  • Zukünftig wieder automatisches Bespielen der E2E
  • Brauchen wir ein echtes Zertifikat für Demo (aktuell ist dort eines für ABN1)?
  • Nein → Testzertifikat verwenden
  • Keystores müssen korrigiert werden →  
  • ein Testzertifikat für mehrere Umgebungen ist erstmal ausreichend
  • Anpassung des EVU-Recorders später zur Prüfung von Client-Zertifikaten (Mutual SSL)
  • Steven / Zero: Sollen wir weiterhin User mit lesendem DB Zugriff für ITT/Quest gestatten? Kann das nicht über evu-recorder erfolgen? Datenbankzugriffe (extern) - O2C | Order2Cash - ariJa Confluence  
  • Temporär für TTT-Testumgebungen Lesezugriff ok
  • Anfang September Anforderungen bzgl. Zugriff auf PathOS Informationen durch ITT/Quest klären und Folgelösung konzipieren  
  • : Uninstall base-Umgebungen jeden Abend
  • Nach Umbauten am Deployment erfolgen diese deutlich schneller (~ 6 Minuten)
  • Uninstall auf base-Umgebungen abends (bis auf PVCs)
  • Deployment erfolgt manuell bei Bedarf (Starten der Pipeline in bestellsystem-deployment)
  • Uhrzeit für das Uninstall: 20:00 Uhr
  • Rollback des Portal-Releases
  • Unterschiedliche Handhabung leerer Arrays: [] vs null
  • Wenn required true → immer ein Array setzen
  • Wenn required false → kann null sein, kann ein leeres oder ein gefülltes Array sein
  • Kein automatisches Umwandeln von leeren Arrays auf null mehr im Bestellsystem

Agenda 27.06.2025

  • Martin / STeam: Klärung Service-Verfügbarkeit einzelner Komponenten und Auswirkung auf Gesamt-Bestellsystem-Verfügbarkeit
  • Hintergrund: wir aktualisieren mal wieder die Kubernetes-Version und müssen dafür alle K8s-Nodes neustarten. In einem "Kubernetes-Design" funktioniert das komplett ohne Downtime bzw. Service-Unterbrechung, weil alle Komponenten mit mindestens zwei Pods laufen sollten und K8s dafür sorgt dass immer einer davon online bleibt.
  • In unseren Umgebungen sehen wir allerdings mehrere Komponenten mit nur einem Pod, z.Bsp. in (dev-)E2E:
  • Stammdaten-Bereitstellung
  • TTK
  • Camunda-Services
  • Frage 1: sind das bei SB und TTK nur Deployment-Bugs, die wir schnell hochskalieren können? Oder gibt es noch Bugs, die mehr Replicas verhindern?
  • Deployment-Bug → Umstellen auf Replica 2 → stellt das um → infra/bestellsystem-deployment MR 2051
  • Frage 2: sind die Camunda-Komponenten so gut gekapselt, dass ein Neustart unproblematisch ist (z.Bsp. weil SV alle Requests queued)?
  • Nach aktuellem Kenntnisstand ja
  • Themen SUBP-Team:
  • Umstellungen Bestellsystem-Deployment 
  • Ausbau AppMesh zur Vereinfachung Bestellsystem-Deployment
  • application-setup, database-setup-full werden nach bestellsystem-application umgezogen
  • Vereinheitlichung der Umgebungskonfigurationen
  • DNS-Konfiguration
  • Lokales Bestellsystem + lokale Systemtests
  • TTTneo-Kompatibilität VNP/ENP
  • DRT-Maßnahmen
  • Aufbau PROD
  • Überblick/Kanban Board: https://arija.jaas.service.deutschebahn.com/secure/RapidBoard.jspa?rapidView=2569
  • trivy-operator über CNP "bestellen" →  
  • NodePools wären anzupassen (expiration time z.B. 60 m → 30 m)
  • Ggf. E2E?
  • Bitte an alle: Base-Umgebungen bei Nichtnutzung abräumen
  • kein Cleanup, aber tägliches Downscale wäre eine Option → prüfen, ob einfache Umsetzung möglich  
  • alternativ: Alerts, wenn Base-Umgebungen mehr als 2 Tage "laufen"

Agenda 13.06.2025

150

  • Planung Umgebungsmapping TTTneo ITU/KTU (siehe Präsentation)
  • ADR 71 - Authentifikation und Autorisierung im Bestellportal (siehe Präsentation)
  • ARD 70 - Weiteres Vorgehen bzgl. System- und Systemintegrationstests → Testing Jour Fixe
  • Aus DRT:
  • Wie Verhalten sich unsere Services bzw. einzelne Services wenn Kafka (ähnliches Szenario bei Keycloak mitdenken) nicht verfügbar ist? Wann Soll sich das Gesamtsystem auf nicht mehr verfügbar stellen? 
  • Erste Betrachtung:
  • PM: Ohne Kafka nur Lesezugriff (Hinweis an Nutzer wäre sinnvoll) / Ohne DB → nicht verfügbar
  • CI: Ohne Kafka /ohne DB → nicht verfügbar
  • TTK: Ohne Kafka → nicht verfügbar
  • SV: Ohne Kafka /ohne DB (RDS, Zeebee, Opensearch) → nicht verfügbar
  • Weiteres Vorgehen: 
  • Services in einzelnen Teams betrachten, Abhängigkeiten identifizieren
  • Besprechung im nächster Architekturrunde
  • Verhalten in Anwendungen prüfen bzgl. Nicht-Verfügbarkeit einzelner Infrastrukturservices (z.B. Kafka oder RDS) → Transaktionsklammer richtig gesetzt? Fehlt Transaktionsklammer?
  • Services in einzelnen Teams auf entsprechendes Fehlerhandlung und Transaktionssicherheit prüfen

Agenda 26.05.2025

  • Disaster Recovery Test - Vorbereitungen
  • Preprod vorbereiten
  • Protokoll aus 2024:
  • Aktuelles Testprotokoll:
  • Anpassungen zur Senkung der Cloud Kosten
  • Zeigen Wirkung: https://grafana-v2.cnp.comp.db.de/d/de2jmcogii8zkd/aws-cloud-costs?orgId=69&from=now-14d&to=now
  • Probleme auf IEU wurden behoben
  • Auswirkungen bitte aufmerksam beobachten, bei Problemen Meldung an STeam
  • Frank L. Critical/High Findings im Developer-Portal: Findings aus gelöschten Branches? / Keine Änderung durch Container-Umbau? Nimmt er Caches?
  • Findings aus gelöschten Branches? → Change Request bereits an Umsetzungsteam vom Developer Portal gestellt, Findings aus gelöschten Branches zu entfernen
  • Keine Änderung durch Container-Umbau? Nimmt er Caches? → Scan manuell anstoßen, sonst nur 1 Scan pro Woche
  • Fragestellung: wie geht man mit Branches um, für die es noch keinen MR gibt?
  • Fokus auf Master-Branch
  • Thorsten: Hostnamen sind keine Secrets → keine verschlüsselten Hostnamen in der Konfiguration
  • Ticket erstellen und einplanen
  • Frank T.: (Wiedervorlage, da Inhalt am Thema vorbei besprochen worden ist) Müssen wir das Thema readOnlyRootFilesystem auch für GitLab CDAAS Runner einhalten?
  • Für Kaniko (und dann später auch buildah) verstoßen wir gegen die Regel runAsNonRoot
  • GitLab Runner Job PODs sind nur kurzlebige ad-hoc "Batch Jobs", braucht es dafür wirklich eine Änderung?
  • Die Änderung wäre recht aufwändig, da wir für jeden Job prüfen müssen, wohin er schreibt und ob da nicht bereits Daten liegen, die recovered werden müssten, sollte man es mittels "EmptyDirMount" lösen...
  • Könnten wir das beim CISO (oder so) erfragen? Oder gibt es für GitLab Runner Job PODs eine Ausnahme?
  • FALSCH: "Thema ist in Ticket O2CSYS-1666 aufgenommen. Sollte angegangen werden, wenn die restlichen MUSS-Themen erledigt sind." → runAsNonRoot != readOnlyRootFilesystem
  • Regelung nach Rücksprache:
  • Gitlab-Runner müssen readOnlyRootFilesystem einhalten
  • Job-Runner-Pods müssen das nicht einhalten
  • Frank T.: CNB Ausbau / Maven Wrapper und sonstige Ergänzungen
  • Wir müssen darüber reden, da die Richtung unklar ist, wohin die individuellen App Repos sich hinentwickeln sollen
  • CNB Ausbau war nicht geplant und kostet viel Aufwand
  • Maven Wrapper eingeführt (Pipeship)
  • CIB macht es wieder ganz anders
  • Keine Einheitliche Lösung
  • Caching in 404 fehlt (noch)
  • Fat-Jar ohne Layer
  • TODO: Dokumentation
  • Einplanung in PI 37: Vereinheitlichung der Lösung (Anpassung CI-Files) + Berücksichtigung von System-(Integrations-)Tests

Agenda 16.05.2025

  • Bing/STeam: Überprüfen und ggfs. Reduzieren der Anwendungsmetriken sowie Metriken der C8-Services (z.B. zeebe). Siehe auch das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1651 

  • Zeebe schreibt viele Metriken

  • Vorschlag:

  • Schritt 1: Deaktivieren auf den Umgebungen außer E2E und EVU-E2E →  

  • Schritt 2: Analysieren, wie die Metriken konfiguriert und reduziert werden können → Team CIB, erstellt ein Ticket

  • Spring-Metriken reduzieren (an Team 404-Umsetzung orientieren)

  • in Team CIB und 404 schon in den jeweiligen Anwendungen umgesetzt

  • in Team Zero noch offen → Ticket ergänzen  

  • Thorsten: Abhängigkeit zu CXF / Generell: Umgang mit Dependencies / bestellsystem-parent-pom  →  

  • Verwendung von CXF, Guava prüfen

  • Entfernen aus bestellsystem-parent-pom und prüfen, welche Anwendungen damit Probleme haben

  • Mehr mit Dependency Management arbeiten

  • Überschreiben von in Spring Boot definierten Versionen vermeiden (erzeugt Inkompatibilitäten)

  • Aufteilung in BOM (bestellsystem-bom) und core-dependencies (bestellsystem-parent-pom) 

  • Entwurf in Branch → Testen in den Projekten → Merge auf Master

  • Frank L.: Datenbankgröße (z.b. aktuell in IEU ca. 8 GB).

  • Idee: Auslagern der Json-Blobs auf S3

  • Vor Go-Live keine Kapazität

  • Später nochmal betrachten

  • Partitionen nutzen, um Datenmenge besser zu handhaben

Agenda 28.04.2025

  • CNP-Risiken von C2S - welche sollten wir für PathOS übernehmen?

https://arija.jaas.service.deutschebahn.com/browse/C2SPT-32

  • Probleme eher beim Aufbau neuer Umgebungen → weniger während des Betriebs

https://arija.jaas.service.deutschebahn.com/browse/C2SPT-35

  • Risiko aufnehmen, allerdings geringe Wahrscheinlichkeit und geringerer Impact → das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-662

https://arija.jaas.service.deutschebahn.com/browse/C2SPT-36

  • Probleme eher beim Aufbau neuer Umgebungen → weniger während des Betriebs

https://arija.jaas.service.deutschebahn.com/browse/C2SPT-29

  • Risiko aufnehmen, geringere Wahrscheinlichkeit, gleicher Impact → das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-663

https://arija.jaas.service.deutschebahn.com/browse/C2SPT-33

  • Trennung von CNP-API-basierten Deployments und Bestellsystem-Deployments
  • Probleme werden in Testumgebungen erkannt → keine Auswirkungen auf Betrieb

https://arija.jaas.service.deutschebahn.com/browse/C2SPT-28

  • Mitigiert durch CNP-interne Limits → aber grundsätzlich auch ein RIsiko für PathOS → übernehmen → das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-664
  • Security-Scanner:
  • Umgang mit False Positives
  • Fortify & Branches → als "False Positive" geschlossene Findings können auf anderem Branch wieder auftauchen
  • Entscheidung
  • Markieren in den jeweiligen Tool (Fortify) bzw. Hinterlegen einer entsprechenden Tool-Konfiguration im Git-Repo
  • Bzgl. Fortify, siehe auch: https://git.tech.rz.db.de/bestellsystem1/docs/dokumentation/-/wikis/Umgang-mit-Fortify-Ergebnissen#user-content-tag-not-an-issue-link-auf-gitlab
  • DevPortal-Scanner (Grype, Gitleaks und Compliance) bzw. Trivy in der Bearbeitung priorisieren
  • Info: portal-ui cnb-builder enthält veraltete Chrome-Version

Agenda 23.04.2025

  • SITs:
  • Access Denied beim Zugriff auf Kafka
    • STeam schauen sich das gemeinsam an
  • Setzen des Offsets für einen Kafka-Consumer: welche Lösung wollen wir umsetzen? Hintergrund: Wir (Zero) hätten das zu einer schnellen Problembehebung in der E2E gebraucht, aber keinen aktuell gangbaren Weg gefunden (das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CZERO-5498).
  • , + STeam evaluieren eine Lösung (kafka-consumer-groups.sh)
  • Frank T.: Müssen wir das Thema readOnlyRootFilesystem auch für GitLab CDAAS Runner einhalten?
  • Für Kaniko (und dann später auch buildah) verstoßen wir gegen die Regel runAsNonRoot
  • GitLab Runner Job PODs sind nur kurzlebige ad-hoc "Batch Jobs", braucht es dafür wirklich eine Änderung?
  • Die Änderung wäre recht aufwändig, da wir für jeden Job prüfen müssen, wohin er schreibt und ob da nicht bereits Daten liegen, die recovered werden müssten, sollte man es mittels "EmptyDirMount" lösen...
  • Könnten wir das beim CISO (oder so) erfragen? Oder gibt es für GitLab Runner Job PODs eine Ausnahme?
  • Thema ist in Ticket O2CSYS-1666 aufgenommen. Sollte angegangen werden, wenn die restlichen MUSS-Themen erledigt sind.
  • Breaking Changes API
  • Breaking Changes vermeiden → Abwärtskompatibilität leben und üben
  • Kompatiblitätstests erstellen (alte Nachrichtenversionen müssen noch funktionieren)
  • Vulnerabilities regelmäßig prüfen
  • Tools:
  • Developer Portal: https://dp.dxc.comp.db.de/
  • Defect Dojo: https://vistadojo-prd2-igo.vista.comp.db.de/
  • Vorgehen:
  • zu Beginn für jedes Team: 1x pro Woche Vulnerabilities prüfen und behandeln (entweder beheben oder entsprechend dokumentieren)
  • zunächst Behebung auf Master-Branch
  • bis Ende des PIs konsequente Behebung auch auf E2E + EVU-E2E (bzw. SAT1) + alle anderen Umgebungen
  • bestehende + neue Vulnerabilities der Stufe hoch und kritisch abbauen bis Ende Sprint 3
  • bestehende + neue Vulnerabilities der Stufe kritisch, hoch und medium abbauen bis Ende PI 36
  • Frequenz steigern auf 1x pro Tag in PI 37

Agenda 04.04.2025

  • Sebastian / STeam: Haben wir Backup bzw. Recoverystrategien für alle Produkte? RDS/Postgres adressieren wir in PI36 schon. Was ist mit dem Rest? Frage kam auf bzgl unserer Kafkas, stellt sich aber sicherlich auch für Zeebe, Opensearch, ...
  • Bzgl der Kafkas haben wir die Option, diese als "stateless" zu deklarieren (und somit die Verantwortung auf die einzelnen Apps zu verlagern) oder entsprechende Backup- und Recoverystrategien zu etablieren.
  • Aktuell keine Unterstützung für MSK-Backups über die CNP API. Wäre relevant für einen gleichzeitigen Datenverlust von RDS und MSK. Wahrscheinlichkeit verschwindend gering. Dennoch: zukünftig Anforderung an CNP stellen
  • Momentan Behandlung als Kommunikationsmedium
  • Zeebe, Opensearch → Camunda → das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-556 in PI 36 ( fachliche Betrachtung in Enabler ergänzen)
  • Martin / STeam: mit den verschiedenen ServiceAccounts und IAM Roles per-Service ist etwas mehr Setup-Aufwand in der CNP-API (d.h. in bestellsystem-ops) notwendig
  • wir wünschen uns dass wir trotzdem alle Roles für alle Umgebungen erzeugen (also auch eine IAM-Role "prod-ifp-mock", obwohl in Prod eigentlich nie ein Mock laufen sollte)
  • Begründung: die Einheitlichkeit und Konsistenz der Umgebungen führt zu weniger Komplexität und ermöglicht mehr Automatisierung. Das finden wir wichtiger als die initiale Arbeitsersparnis einzelne Teile wegzulassen.
  • das gleiche gilt im Prinzip auch für die MSK Consumer/Producer Policies. Es wäre schön wenn die auch über alle Umgebungen hinweg gleich sind. Da könnte "Least Privilege" aber ein Gegenargument sein.
  • Entscheidung: Für alle Umgebungen außer PROD ok (inkl. MSK Consumer/Producer Policies). PROD sollte separat behandelt/betrachtet werden.
  • Martin / STeam: wann finden wir denn Zeit für die Doku der Kafka-Topics (vgl. 7.2.)
  • im Runbook ist leider immer noch ein Fragezeichen, und viele seitdem neue Topics sind nicht eingetragen
  • STeam kann das Erstellen der Policies übernehmen (Anfang in bestellsystem-ops MR 709), aber nur wenn wir die nötigen Infos bekommen
  • würde es uns helfen, wenn wir in bestellsystem-deployment in der _environment.yaml.gotmpl die Attribute 'producer' und 'consumer' einfügen?
  • Wurde erledigt  

Agenda 07.03.2025

  • Neue Umgebungen für TTTneo bzw. Parallelbetrieb TTTneo/TTTclassic 
  • 8 Umgebungen von TTTneo müssen angebunden werden (1 DEV, 1 TU, 2 SAT, 3 AU, 1 PROD)
  • TTTclassic benötigt weiterhin 2 Umgebungen für ITU und KTU
  • pathOS hat aktuell 7 integrative Umgebungen
  • Staging für TTTneo vs. TTTclassic
  • TTTneo-Staging; Anpassung bisheriges Staging: ABN* + PREPROD nach E2E (nicht mehr parallel und als komplettes BS)?
  • TTTclassic-Staging: Staging-Prozess für ITU + KTU (möglichst einfach, da nur temporär)
  • Nachrichtensignatur an externe Systeme. Erarbeitung eines Vorschlags zum Schlüsseltausch mit Drittsystemen.
  • Drittsysteme: TPN Adapter, KOMBau, TBV, Archivierung, Abrechnung
  • Schlüsseltausch mit externen Systemen:
  • Variante Kafka-Topic
  • Variante Artifactory: Öffentliche Schlüssel + Bibliothek für andere Verfahren zur Verfügung stellen
  • JSON-Struktur in Signatur-Header vermeiden → Aufteilung in 2 HTTP-Header  
  • Kurze Frage zu CM-MAEP: Management-Endpoints absichern oder deaktivieren das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CZERO-3419
  • Teams:
  • Prüfen, dass nur relevante Actuator-Endpoints freigeschaltet sind
  • Über Ingress-Konfiguration und Network Policies festlegen, auf welche Endpoints zugegriffen werden darf und durch welches System der Zugriff erfolgen darf
  • Prüfen, welche Ingresses überhaupt noch benötigt werden (z.B. NuR-Mock)
  • Wiedervorlage, Martin/STeam: Umstrukturieren der GitLab-Gruppen
  • Update tools/ vs. infra/:
  • Wir haben keine sinnvolle Kategorisierung gefunden; deshalb möchte ich den Vorschlag zum Neu-Sortieren zurückziehen.
  • Wir möchten tools/service-certificate-generator nach infra/ verschieben.
  • Update libraries/ und mocks/:
  • Vorschlag in Teams-Nachricht: GitLab-Gruppen-Änderungen Vorschlag zu den besprochene...
  • Wenn es keine Einwände gibt, dann kann ich die neuen Untergruppen sofort anlegen und die Repos entsprechend verschiebene.
  • Auswirkung: Update der git remote URLs notwendig, ggf. Update von Doku und Readmes notwendig
  • Deadline 14.03.2025 zum Review von Martins Vorschlag. Gibt es keine Einwände, wird sein Vorschlag so umgesetzt.

Agenda 21.02.2025

Martin/STeam: Im Kontext von Compliance und scm-info überlegen wir wie wir mit archivierten GitLab-Projekten umgehen (O2CSYS-1521).

anstatt uralte Repositories nochmal anzufassen würden wir die lieber alle löschen

  • archivierte Repositories, die nicht mehr benötigt werden, werden ab 24.02. gelöscht (kann 30 Tage rückgängig gemacht werden)
  • möchte jemand noch archivierte Repos behalten? (ich wäre selbst dafür infra/bestellsystem-deployment-helm bzw. dessen commit-History zu behalten, das ist aber auch das einzige)
  • @alle: Rückmeldung an STeam asap für noch benötigte archivierte Repositories
  • Frank/Team Zero: Umgang mit den Cluster-internen Keycloak-Logins auf Evu-E2E und Evu-Test, siehe auch:  Kathrin Schleich: Applikationen in Evu-Test und Evu-E2E nicht via Thunderclient zu... veröffentlicht in VT Order2Cash / Team STeam am Dienstag, 11. Februar 2025 16:06
  • Ggf. Möglichkeit über /etc/hosts Workaround (Vorschlag von )
  • nimmt das Thema nochmal mit in Team Zero. Bessere Analysefähigkeit über Logging/Monitoring schaffen, damit wir auch in Testumgebungen die Möglichkeiten der späteren Produktionsumgebung nutzen und dadurch ggf. vorhandene Lücken frühzeitig aufdecken.
  • Martin/STeam: Wäre es sinnvoll unsere GitLab-Gruppen weiter zu entwickeln?
  • tools/ sind "Externe Tools, die wir nicht selbst pflegen", da sind jetzt seit Jahren keine zum rne-common-interface und den excel-tools (werden die benutzt?) hinzugekommen.
  • Vorschlag: Gruppe für alle (intern + ggf. extern) Tools nutzen. Dann wäre da auch der "Service-Certificate-generator" wieder richtig, und vieles aus infra/ könnte dahin umziehen (fortify-util, installierte-versionen-image, ...)
  • TODO STeam: konkreter Vorschlag per Teams-Channel, weitere Diskussion dann ggf. in folgender Architekturrunde
  • apps/ enhält jetzt doch einige Java-Libraries (die aber auch keine APIs sind)
  • Entscheidung: Gruppe 'libraries/' anlegen. Da passen dann signature-database, logging-utils, parent-pom rein...
  • Entscheidung: Gruppe 'mocks/' anlegen (für ifp-mock, nur-mock, evu-recorder...). 
  • TODO STeam:

372 complete konkreter Vorschlag per Teams-Channel zum Review

  • Ausfallfreie Secret-Rotation (siehe Keycloak); wie sieht es mit den anderen Infrastrukturkomponenten aus?
  • Keycloak: Ausrollen neuer Secrets bisher nicht ausfallfrei
  • prinzipielles Vorgehen:
  • neue Secrets erstellen, alte Secrets weiterverwenden
  • Keycloak: speziell 2. Paar ClientID und ClientSecret erstellen (z.B. portal-ui → portal-ui-b)
  • Apps auf neue Secrets umstellen
  • alte Secrets löschen
  • Enabler (Team Zero):

373 incomplete dedizierter Test der Secret-Rotation bei der Service-2-Service-Authentifizierung auf statischer Umgebung inkl. A/B-Deployment & Doku  

  • PostgreSQL:

374 incomplete Enabler im Backlog von Team STeam

  • Bei der Dokumentation von Secrets im Runbook an ausfallfreie Secret-Rotation denken; Besonderheiten/Probleme in Architekturrunde einbringen

Agenda 07.02.2025

  • Thorsten: Branching für parallelen Betrieb von TTTclassic und TTTneo

  • Zu einem Zeitpunkt X soll ein Branch von SV für TTTclassic erstellt werden. Zeitpunkt X = zu TTTclassic inkompatible Änderungen an den Prozessen von SV für TTTneo

  • TTTclassic: Betrieb des Bestellsystems auf dem letzten funktionierenden Stand auf einer Umgebung. Wartung von Bestellsystem auf diesem Stand hinsichtlich Schwachstellen weiterhin notwendig.

  • TTTneo: Umstellung des Stagings auf TTTneo

  • Offene Fragen:

  • Können die Wartungsaufwände reduziert werden? Z.B. Relevante Architekturänderungen (z.B. PM ↔ SV über Kafka) vor Zeitpunkt X, reine Wartung nur für SV + IFP-Connector, andere Komponenten werden immer mit neuen Versionen und Features versehen.

  • Umstellung auf Kafka zwischen PM und SV (O2CBS-487) sollte vor dem Branchen umgesetzt werden. bei Planung berücksichtigen

  • Welche Umgebung wird für TTTclassic verwendet? Benötigen wir eine neue?

  • ABN2, es sei denn es gibt neue Anfordungern vonseiten C2S

  • Wie gestalten wir das Staging/Deployment von TTTclassic?

  • Idee: Reguläres Deployment auf ABN2 bis auf Steuerung-Vertrieb. Manuelles Deployment für Steuerung-Vertrieb.

  • Martin/STeam: CNP bittet uns weniger Metriken zu erfassen, die Datenmenge führt zu instabilen Grafana-Agents (CNPSUP-4363)

  • persönliche Vermutung: wir haben viele default-Metriken (aus Spring/Micrometer, OpenTelemetry, AppMesh, ...) von denen wir nicht mal wissen ob sie nützlich sind und wie wir sie abschalten könnten

  • wie können wir damit umgehen?

  • Scraping-Intervall auf mindestens 30 sec. setzen

  • Enabler: Anhand eines Service (+ ggf. Steuerung-Vertrieb) prüfen, welche Metriken wir schreiben   (→ das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-588)  

  • Martin/Sebastian/STeam: Einheitliche Benennung Kafkatopics: Wir sollten ggf ein einheitliches Format für die Benennung unserer Kafkatopics einführen. Hier sind wir aktuell recht uneinheitlich. Ggf analog zu https://www.confluent.io/learn/kafka-topic-naming-convention/?

  • Aktuell listet das Runbook die folgenden Topics: https://bestellsystem1.gitpages.tech.rz.db.de/docs/runbook/02-architecture/07_deployment_view.html#chapter-internal-systems

  • Es existieren aber auch andere wie zB  "tbvAbsicherung" oder "versandErgebnis"

  • Der CNP-Validator bemängelt Großbuchstaben in Topics. STeam geht hier auf die CNP zu, das zu ändern das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1484 und CNPSUP-4362 (offizielle Doku von Kafka sieht keine derartige Limitierung vor) => der Validator ist angepasst  

  • TODO für Zero und CIB: Vereinheitlichung der Topic-Namen "tbvAbsicherung" und "versandErgebnis" auf Kleinschreibung mit Bindestrichen

  • TODO Überprüfung der Topic-Namen im Runbook (alle Teams)

  • Frank T. / Henrik Scholl: Laut Richtlinie darf die ABN und PROD Umgebung nur via PAN benutzt werden

  • Laut CNP ist es nur PROD, dass nur per PAN benutzt werden darf

  • Das merkt man ja auch an der Zugriffskonfig – DB Admin User für PROD verpflichtend

  • "Für Editor bzw. Schreibberechtigungen in der CNP-PROD-Umgebung (allgemein in PROD-Umgebungen) dürften nur privilegierte 2er Account-ACAT-Gruppen eingetragen werden (beginnend mit der Zeichenkette gmu). Die Autorisierung von nicht-privilegierten ACAT-Gruppen ist nicht gestattet. (Bitte den Support bei Spezialfällen kontaktieren.)"

  • https://cnp.gitpages.tech.rz.db.de/core/docs/cnp/latest/cnp-q-a-session/acat.html

  • Systel Richtlinie: https://dbsw.sharepoint.com/sites/sw-informationsecuritydbsystel/SitePages/Nav%20(Confluence)/Vorgaben%20in%20Arbeit/Privileged%20Access%20Management.aspx#:~:text=f%C3%BCr&text=pan&text=welche&text=Umgebungen

  • Ist das ein Clash DB InfraGO (geltend für CNP) vs. DB Systel?

  • Enabler: Umstellung Umgebungen auf der ABN-Stage auf PAN-Client (→ das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-589)  

Agenda 27.01.2025

  • Access-Proxy:
  • Infos: https://db-planet.deutschebahn.com/pages/sipsteam/apps/content/application-proxy-mobile-app-gateway
  • Funktioniert für B2B Guests, siehe https://db-planet.deutschebahn.com/pages/b2b-accessmanagement/apps/content/b2b-accessmanagement
  • NuR-Benutzer werden als B2B Guests angelegt → Nutzung des Access-Proxys möglich
  • TTTneo: Durchstich Bestellsystem → TPN über eigenes MSK-Cluster letzte Woche erfolgreich. Allerdings musste MSK-Cluster in primäres Subnetz gestellt werden.
  • Wenn wir das für TPN grundsätzlich über unser MSK-Cluster umsetzen, müssen wir das für alle Umgebungen anpassen, die an TTTneo/TPN angebunden werden. Werden hier Probleme erwartet? Gibt es alternative Vorschläge?
  • TPN kann kurzfristig kein eigenes MSK-Cluster betreiben.
  • Trennung internes/externes MSK-Cluster? Betrachtung Berechtigungen & Backup/Recovery notwendig.
  • Entscheidung: Wahl der Alternative: 1 MSK-Cluster im primären Subnetz mit Einschränkung der IP-Range
  • Schrittweise Umstellung von JDK 17 auf JDK 21 (Corretto)
  • Können die RDS-Instanzen aus dem primären Subnetz genommen werden (zumindest in höheren Umgebungen)?
  • Anmerkung Martin/STeam: wenn wir die Subnetze ändern, dann kann die fachliche Betriebsführung nicht mehr drauf zugreifen (vgl. O2CZERO-4892)
  • Entscheidung: Festlegung der Vorgehensweise im Zusammenhang mit der späteren DevOps-Betriebsführung → dann ausführliche Dokumentation
  • Martin / STeam: Stage von ABN2 ändern?
  • Wenn wir auf ABN2 den Durchstich zu TTTneo herstellen wollen und dafür doch noch Anpassungen erwarten, dann wollen wir vermutlich öfter als im 2 Wochen Release-Zyklus neue Image-Versionen deployen.
  • Wäre es sinnvoll ABN2 dafür im Staging-Prozess anders einzusortieren, auf Ebene von SIT oder IEU?
  • Entscheidung: Abwarten bis das weitere Vorgehen bzgl. TTTneo geklärt ist. Bis dahin keine Änderungen an ABN2.
  • Bing / STeam: PR-LPRV: Anwendungsspezifische Consumer/Producerrechte für Kafkatopics: das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1471
  • Dokumentation der Producer/Consumer im Runbook: https://bestellsystem1.gitpages.tech.rz.db.de/docs/runbook/02-architecture/07_deployment_view.html#_kafka
  • TODO für alle Teams: Prüfung, dass die Dokumentation im Runbook korrekt ist
  • TODO für alle Teams: Übernahme der Konfiguration, KOMBau-Konfig kann als Blaupause verwendet werden (Consumer.yaml, Producer.yaml)
  • Frank L. / Zero: Fehlerbehandlung Validierungsfehler (evtl. auch für andere Fehler: gibt es best Practices - Fehlertopics scheinen mir nicht immer optimal)
  • Schema-Validierung bei Producer und Consumer
  • Nicht-lesbare Nachrichten in DLQ-Topic sammeln, Monitoring auf diesem Topic mit Alert, ggf. Verarbeitung weiterer Nachrichten von diesem Topic stoppen

Agenda 29.11.2024

  • Frank/Martin/STeam: Artifactory-Downtime am 7.12.
  • Problemstellung 
  • CNP-Maßnahmen dazu, Daniel Werdermann: 07.12.2024: Artifactory Update + Downtime
  • Wollen wir das Bestellsystem weiterentwicklen um künftig besser damit umzugehen?
  • für den Betrieb
  • für Dev-Pipelines?
  • Wir hatten schon über ECR als zusätzliche OCI-Quelle gesprochen, doch das nützt uns relativ wenig weil wir auch Datei- und Helm-Repos benötigen. Und für Dev dann auch Maven+NPM.
  • Lösungsfindung:
  • Kopieren der Images nach ECR über entsprechenden Pipeship-Job
  • SL-Ausschluss (in SL-Dokumentation mit aufnehmen): Wenn Artifactory ausfällt, können wir keinen Hotfix erstellen
  • Durchstarten von Nodes beim Ausfall von Artifactory möglich
  • Helm-Charts entweder (wäre zu testen)
  • in S3 über Helm S3-Plugin (Race-Condition bei index.yaml-Editierung)
  • oder in ECR (siehe https://docs.aws.amazon.com/AmazonECR/latest/userguide/push-oci-artifact.html)
  • Enabler:
  • Umgang Nicht-OCI-Artefakte bei Verwendung von ECR (CA-Zertifikaten usw.)
  • Helm-Charts S3 vs ECR
  • ECR in Pipelines einbinden
  • auf Jan bzgl. Access-Proxy für Portal zugehen (längere Patchfristen)
  • Nach Erstklärung → Wiedervorlage in Architekturrunde
  •  DR-Test:
  • Camunda-Backup-Konzept (siehe https://docs.camunda.io/docs/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore/)
  • Team CIB: Backup-Vorgehen testen und dokumentieren → Enabler für PI 36
  • DB-Schnitt:
  • am Ende vom DR-Test liefen 2 DB-Cluster parallel → Migration im laufenden Betrieb wäre notwendig
  • DB-Schnitt doch anders wählen?
  • zu beachten:

DB Gold: 99,91% Verfügbarkeit im Jahresmittel, RTO: 2 Stunden Erwartete Datenbank-Größe (AVT): ca. 2 TB

  • Zugriff auf die Datenbank nur von PAN aus - dort maximale Storage-Size: 50 GB
  • UKA-Ausfall-Zeit-Ziel pro Jahr: <12 Minuten
  • ADR ausarbeiten → + Architekturrunde
  • DB-Instanztyp:
  • Multi-AZ RDS DB-Cluster empfindlich für deaktivierte KMS-Keys
  • Risikoabwägung: Instanztyp beibehalten oder Alternativen nochmal in Betracht ziehen?
  • ADR bzgl. DB-Cluster überarbeiten: + Architekturrunde
  • Norbert: Wo sollen wir Alles dokumentieren? (Confluence, Runbook, GIT)
  • Testprotokolle: Weiterhin in Confluence
  • Wiederanlaufpläne: im Runbook

Agenda 15.11.2024

  • DR-Test-Dokumentation: https://arija-confluence.jaas.service.deutschebahn.com/pages/viewpage.action?pageId=386382061
  • Martin/STeam: Unsere Anwendungen haben sehr unterschiedliche Datenbank-Einstellungen in den application.yml-Dateien (spring.flyway, spring.jpa, spring.datasource). Können/wollen wir das mal vereinheitlichen?
  • Timeout-Werte und sonstige relevante DB-Parameter möglichst vereinheitlichen und im Configuration-Management-Abschnitt dokumentieren
  • /   / Konfiguration in Teamanwendungen betrachten und Abweichungen von Default-Werten begründen
  • Wiedervorlage in nächster Architekturrunde
  • STeam: Archivieren von bestellsystem-deployment-helm
  • Wird von Team 404 noch verwendet
  • Kann noch nicht archiviert werden
  • Empfehlung: Überschreiben der Werte in der values.yml
  • ZAP-Test wird von AT/Review-Umgebung über ci-files auf andere Umgebung umgestellt. Team STeam stellt neue Version von ci-files zur Verfügung (Zeitpunkt abhängig von DR-Test-Umfang).
  • CI & TTK prüfen im health-Check ob Partnerdaten vorhanden sind, dies führt zu Problemen im neuen Kubernetes-Job zum Befüllen der Daten in der KB (Team ZERO)
  • Health-Check unabhängig von vorhandenen Partnerdaten → Smoketest prüft Validität der Partnerdaten nach dem Deployment
  • Alternativ: Einspielen der Partnerdaten via Sidecar
  • Weiteres Tracking des Themas in CI/CD-Runde
  • Diego/Team 404: WebSSO für E2E-Umgebungen: Das Portal unterstützt Keycloak und WebSSO als Login-Maske, aber WebSSO wird momentan nirgendwo verwendet. Sollen wir für (einige) E2E-Umgebungen nicht WebSSO einsetzen? WebSSO kann nicht automatisch getestet werden, aber für Umgebungen mit ausschließlichen manuellen Tests kann es Sinn machen, WebSSO als Login-Maske zu konfigurieren.
  • Prüfung, ob ABN1 oder ABN2 an WebSSO angebunden werden kann

Agenda 01.11.2024

  • Flyway: Entscheidung für Umsetzungsvariante

  • Enscheidung: Variante 4 per Default, Variante 1 bei Bedarf (wie z.B. SV)

  • Flyway-Bibliotheken müssen aus Images entfernt werden

  • Bei lokaler Entwicklung ggf. mit Maven-Profilen arbeiten

  • CNB: wird beibehalten mit Ausnahme von SV und zukünftig ggf. Projekten mit Bedarf an Multi-Modul/-Image-Umsetzung.

  • Systemtests laufen maßgeblich auf Base-Umgebungen. Änderungen an Systemtests führen zu einem MR. dessen Pipeline die Tests auf IEU ausführt

  • Pipeline-Id + ENVIRONMENT-Wert anpassen/überschreiben

  • & stimmen sich bilateral ab

  • Diego: Wie gehen wir mit der Token-Rotation für den Azure-AD-Token um, den die PM für die Verbindung mit NuR verwendet? Momentan muss der Token nach 1 Jahr ersetzt werden.

  • Im Entwicklungshandbuch zu dokumentieren

  • Martin/STeam: Wann wollen wir nochmal PostgreSQL updaten? Und wie oft wollen wir das vor dem Live-Gang noch machen? → geklärt?

  • ein Update auf v16 wäre sinnvoll, wollen wir das machen und wann? Liegt in PI34S5: das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1318

  • ab Ende 2024 könnten wir auch auf v17 gehen: das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1319

  • Background: PostgreSQL released jährlich im September/Oktober und unterstützt major Versionen für 5 Jahre, der AWS-RDS-Support für Versionen läuft immer ein paar Monate nach. Generell ist es wünschenswert jetzt im Dev-Stadium eine möglichst neue Version zu benutzen, damit im Live-Betrieb möglichst viel Flexibilität und Zeit bis zu einem Zwangs-Update bleibt.

  • STeam: ZAP Scans in Build-Pipeline oder anderem Kontext?

  • In Enabler das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1325 wurde ein Trigger-Job in bestellsystem-deployment umgesetzt. Der Trigger-Job triggert die Gitlab-Repo owasp-zap-scanner um die Zap-API-Scans und Zap-Baseline-Scans auszuführen. Bsp. Pipeline: https://git.tech.rz.db.de/bestellsystem1/infra/bestellsystem-deployment/-/pipelines/39649981

  • Zur Abstimmung: Gegen welche Umgebung (nach welchem Deployment) soll der Trigger-Job angestoßen werden. Wäre IEU an der Stelle passend? Info: die Zap-Scans dauert es ca. 30 Min

  • Entscheidung:

  • Tests auf Umgebung IEU

  • Einschränkung der Tests nur bei Änderungen von Services mit Zugriff aus dem Internet: Common Interface, Portal-Middleware, Stammdaten-Bereitstellung

  • zukünftige Alternative für Whitesource?

Agenda 11.10.2024

  • Lösungsansatz für AT/Review-Deployment in Bezug auf der Umstellung auf Helmfile abstimmen: Alternative Lösung und aktuelle Nutzung der AT/Review-Umgebung findet man in das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1324
  • Nutzung der Umgebungen: 
  • Nutzung der AT-/Review-Umgebung maßgeblich für ZAP-Scans → kann auf Base-Umgebung stattfinden (sinnvoll: Durchführung in bsz-abn-Umgebungen)
  • Team 404: Nutzung für Cypress-Tests → kann auf Base-Umgebung stattfinden
  • Team CIB: Nutzung für KITs → Deployment bereits separat umgesetzt
  • Varianten
  • Variante 1: Beibehaltung der AT/Review-Umgebungen
  • Replizierung von Helmfiles in die jeweiligen Projekte notwendig
  • Durch die Projektteams umzusetzen
  • Variante 2: Verwendung der Base-AT-Umgebung für Cypress- und KI-Tests
  • Zentrale Verwaltung der Deployment-Konfiguration in bestellsystem-deployment
  • "Basiskonfiguration" wird von STeam erstellt
  • Aufwand vergleichbar zu Variante 1
  • Entscheidung:
  • Umstellung auf Variante 2
  • Vorgehen wird in CI/CD-Runde detailliert
  • Vereinheitlichung (KITs von SV) nachrangig zu Umstellung von z.B. Team 404 Cypress-Tests
  • Flyway
  • Umsetzungsvarianten:
  • Variante 1 (siehe SV): separates Maven-Modul + separates Container-Image, Images werden via Dockerfile erstellt
  • Ablauf
  • Beim Erstellen der Images im Buildprozess wird auf Dockerfile zurückgegriffen. Dabei wir direkt ein separates Flywayscripts-Image für SV gebaut. Siehe Diagramm.
  • Beim Helm-Deployment wird ein Kubernetes-Job ausgeführt, der das Image startet. Dadurch wird automatisch die Migration durchgeführt. Anschließend wird der Container wieder beendet. Siehe Diagramm.
  • Vorteile/Nachteile:
  • Vorteile:
  • Application Image enthält keine unbenötigten Dateien (Flyway-Skripte)
  • Flywayscripts-Image wird parallel zu Application-Image gebaut
  • Nachteile:
  • Umbau des Buildprozesses in allen Projekten notwendig (siehe Umstellung CNB → Dockerfile)
  • Updates/Wartung alles Images muss durch das jeweilige Projektteam sichergestellt werden
  • Variante 2: Image dynamisch erstellten und Flyway-Migrationsskripte aus Applikations-Image auslesen
  • Ablauf
  • In der CI/CD-Pipeline werden nach dem Erstellen des OCI Images der Application die Flyway-Skripte aus dem Image als Artefakte herausgeschrieben. Im Folgeschritt wird dynamisch ein Flywayskripte-Image gebaut (siehe Diagramm); kann ggf. parallelisiert werden.
  • Die Ausführung kann wie in Variante 1 erfolgen.
  • Vorteile/Nachteile
  • Vorteile:
  • Funktioniert auch mit CNB → Anpassungen maßgeblich in CI/CD-Pipeline
  • Nachteile:
  • Erhöht weiter die Logik/Komplexität der Pipeline
  • Variante 3: Kombination aus CNB für Applikation + Dockerfile für Flywayscripts-Image
  • Ablauf
  • In jedem Projekt mit Flywayskripten wird ein Dockerfile ergänzt für das Erstellen eines Flywayscripts-Images. Der Buildprozess wird so angepasst, dass er zusätzlich zum Application Image ein Flywayscripts-Image bauen kann (unter Verwendung des Dockerfiles)
  • Die Ausführung kann wie in Variante 1 erfolgen.
  • Vorteile/Nachteile
  • Vorteile
  • Application Image enthält keine unbenötigten Dateien (Flyway-Skripte)
  • Nachteile
  • Updates/Wartung des Flywayscript-Images muss durch das jeweilige Projektteam sichergestellt werden
  • Zusätzliche Logik in Pipeline bzgl. Entscheidung: CNB, Dockerbuild oder Kombination aus CNB + Docker
  • Martin: Wissen wir eigentlich dass wir zwingend ein eigenes Image für die Flyway-Scripte brauchen? sonst schlage ich vor Variante 4: Der Build bleibt so wie jetzt, wir schreiben nur einen eigenen Flyway-Setup-Job
  • Ablauf
  • Wir bauen die Anwendung wie bisher
  • Beim Deployment starten wir einen Flyway-Job und mounten die Scripte aus unserem Application Image
  • Vorteile/Nachteile
  • Vorteile
  • Keine Änderung am Build-Prozess nötig
  • Keine zusätzlichen Images zu pflegen und abzusichern (unter der Annahme dass die Open Source Flyway Images okaye Qualität haben)
  • Nachteile
  • Application Image enthält die Flyway-Skripte, die könnte man als unbenötigten Dateien sehen
  • Entscheidung:
  • Annahme Minimal Image: Keine Flyway-Bibliotheken. Flyway-Migrations-Skripte (*.sql) können enthalten sein.
  • Entscheidung zwischen Varianten 3 oder 4. Team Zero und Team 404 besprechen das nochmal im Team.
  • Deployment-Job vs. Init-Container zu klären
  • Extra Termin für Thema
  • CNB (Fortsetzung)
  • Weiteres Vorgehen abhängig von Entscheidung zu Flyway
  • Wollen/Brauchen wir eine einheitliche Lösung im Bestellsystem oder ist es ok, wenn einzelne Projekte bei Bedarf vom "Standard" abweichen (Bsp. aktuell: SV)?
  • Entscheidung: tbd

Agenda 27.09.2024

  • CI-Files in den Projekten auf Version 3.6.0 aktualisieren (helmfile + C8) bis heute EOB
  • CNB: behindernde Einschränkungen von CNB bzgl. Multi-Modul-Projekten und Multi-Image-Projekten; (wie) lässt sich das mit CNB lösen? Was ist die Alternative?
  • target-Verzeichnis in build_application_image_heroku hartkodiert
  • Stellen: 
  • https://git.tech.rz.db.de/bestellsystem1/infra/ci-files/-/blob/master/dist/git/customize-job-build_application_image_heroku.yaml?ref_type=heads#L533
  • https://git.tech.rz.db.de/bestellsystem1/infra/ci-files/-/blob/master/dist/git/customize-job-build_application_image_heroku.yaml?ref_type=heads#L534
  • https://git.tech.rz.db.de/bestellsystem1/infra/ci-files/-/blob/master/dist/git/customize-job-build_application_image_heroku.yaml?ref_type=heads#L773
  • Für Projekte konfigurierbar machen?
  • Job kann pro Ausführung nur 1 Image bauen. Werden mehrere Images benötigt, mehrmalige Ausführung notwendig → negative Auswirkung auf Performance in der Pipeline
  • Test-Report aus dem Build wird verworfen → zusätzliche Logik in Pipeline für Testauswertung notwendig
  • Job-Komplexität: build_application_image_heroku hat ca. 900 Zeilen, Build-Job in SV: 40 Zeilen + 180 Zeilen in 5 Dockerfiles
  • Image-Größe: mit CNB > 500 MB, nach Umstellung auf Dockerfile ~300 MB
  • Abgesehen vom Umstellungsaufwand: Mit welchen Nachteilen müssten wir leben, wenn wir auf CNB verzichten?
  • SV-Variante des Image-Bauens nachvollziehen und in STeam diskutieren
  • Wiedervorlage in Architekturrunde am 11.10.
  • End of support für AWS AppMesh am 30.09.2026 im Zusammenhang mit das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CCIB-6343
  • Ticket O2CCIB-6343 zurückstellen, bis eine Entscheidung über das weitere Vorgehen getroffen wurde. Danach einplanen.
  • Review von ADR-67, https://git.tech.rz.db.de/bestellsystem1/docs/runbook/-/blob/feat/O2CZERO-4414-adr-anbindung-stationsportal/02-architecture/103-adrs/0067-datenbereitstellung-stationsportal.adoc?ref_type=heads
  • Frank (aus CI/CD-Runde): Prod und Dev Repos für Apis (renovate erstellt aktuell MRs für alles)
  • Ziel für alle Projekte: Renovate berücksichtigt nur "getaggte" Versionen von APIs 
  • Gewünscht ist: nur die "getagged" Versionen  sollen released werden. => also Benutzen des ADR58-Release-Workflows auch für APIs und Libraries => O2CSYS-1210
  • Einfache Variante: Eine CI/CD-Pipeline, Ziel-Repository ist abhängig von Tag (→ Prod) oder "Nicht Tag" (→ Dev)
  • nochmal in STeam abstimmen
  • Frank L./Team Zero: Talo-Logging nur für Cockpit? das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CZERO-2221
  • Neue Variante von Netcool/Cockpit verwenden: nur definierte Alarme an Netcool senden, nicht mehr das komplette Log; Talo-Logging damit nicht mehr notwendig
  • stellt Links zur Dokumentation zur Verfügung
  • Wiedervorlage in Architekturrunde am 11.10.
  • STeam/Michael: Kafka-ui generell (intern) deployen? Hilft beim prüfen der Funktionalität von MSK
  • Kafka-UI steht auf dem Dev-Cluster bereit. Was ist mit generell gemeint?
  • In ABN und PROD müssen die Zugriffsrechte minimal sein (Least-Privilege-Prinzip) → keine Schreib- oder Löschrechte
  • Bereitstellung aktuell über Port-Forwarding; Zurverfügungstellung ohne Port-Forwarding nur mit entsprechender Authentifizierung (z.B. Anbindung an Keycloak)
  • Klärung mit Michael, Umsetzungskonzept

Agenda 06.09.2024

  • Festlegung von Trust Boundaries → Teil der Bedrohungsanalyse mit Security Engineers Anfang Oktober
  • PI 33: Produktionsumgebung: Jeder Services läuft mit einem eigenen Datenbank-Cluster? (siehe auch 8.4.2024)
  • ADR-65. Aufteilung der Datenbank-Instanzen das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-493 
  • eigene DB für SV + IFP-Connector
  • Status ändern auf Akzeptiert
  • ADR 66 - Nutzung von helmfile das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-505
  • Thema in PI 34 einplanen
  • Team-Enabler für Umstellung erstellt ; jedes Team soll min 1 Service umstellen
  • Feedback zu ADR wird noch gegeben (von Team STeam)
  • Frank L./Team Zero: Besprechung des ADR Datenbereitstellung für das Stationsportal https://git.tech.rz.db.de/bestellsystem1/docs/runbook/-/blob/feat/O2CZERO-4414-adr-anbindung-stationsportal/02-architecture/103-adrs/0067-datenbereitstellung-stationsportal.adoc?ref_type=heads  WICHTIG - noch vor PI-Planning 34
  • Keine Logik in SV zur "Filterung" von Nachrichten für externe Systeme (Nachrichtenstatus)
  • Konverter sollten alle Nachrichten aus dem AV-Topic lesen und Filterung selbst vornehmen
  • Datenstruktur für Stationsportal (für aktuelles Vertragsdaten-Dritte-Topic) wird im Laufe von PI 34 geklärt (und im ADR nachdokumentiert)
  • passt ADR an

Agenda 09.08.2024

  • Ankündigung von STeam: Zusammenlegung der DEV-Datenbanken sowie Zusammenlegung der Datenbanken  EVU-Test und EVU-E2E (ADR-59)
  • Umstellungsdetails:
  • Umsetzung: PI 33 O2CBS - S4 - O2CSYS, das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1123
  • Nur Daten von Keycloak werden mitgenommen
  • Downtime für Umschwenken von IEU/SIT/E2E wird in Teams-Kanal angekündigt
  • Wie ist der Kommunikationskanal über Downtime für Umschwenken von EVU-Test/EVU-E2E? Keine Daten werden mitgenommen außer KeyCloak!
  • Abstimmung bzgl. E2E und EVU*-Umgebungen mit TTT-Koordinatoren notwendig!
  • Keine Umstellung von SIT, E2E, EVU-Test und EVU-E2E bis 4.9. (Zeitpunkt Entscheidung Go-Live 2025)
  • SV-Datenbank wird nach Camunda-8-Umstellung sowieso gelöscht
  • Info: Update von CA-Cert durch Amazon am 22.8. (Hintergrund/Links in O2CSYS-871 und O2CSYS-1068)
  • Einbindung Netzgrafik in das Bestellportal - Fortsetzung
  • Frontend über Angular-Bibliothek
  • Abhängigkeit durch Angular-Version
  • Datenaustausch (relevante Netzdaten) über Kafka
  • Backend
  • berechnet Netzgrafiken - teilweise anhand von Benutzerfiltern; dauert teilweise 3-4 Minuten (ressourcenlastig)
  • Vorschläge zur Umsetzungsvarianten von KuK:
  • Bibliothek zur Einbindung in eine BS-eigene Komponente
  • Netzlotse wird als Docker Image zur Verfügung gestellt und in das Bestellsystem-Deployment eingebunden
  • Konsequenzen der KuK-Vorschläge: Betrieb "fremder" Komponenten im Bestellsystem mit sämtlichen Konsequenzen
  • Alternative: Betrieb des Netzlotsen durch KuK
  • Zugriff über synchrone Schnittstelle auf Netzlotse (durch z.B. Portal-Middleware)
  • KuK müsste auch SL Gold anbieten
  • Variante: Netzlotse bei KuK betreiben und als optionales Feature behandeln; vorberechnete Netzgrafiken zwischenspeichern; wenn nicht verfügbar keine Filteroption
  • Feature-Ticket ergänzen
  • Aus Security-Assessment: Code-Review Enforcement in Gitlab?
  • Gegen Enforcement spricht die schnelle Fehlerbehebung im Falle eines Notfalls
  • Kein Enforcement in Gitlab um Fehlerbehebungen nicht zu behindern
  • Code-Reviews sind bereits Bestandteil der DoD
  • Rückfrage bei Security Engineers bzgl. Formulierung in DoD
  • Neue Umgebungen: Was ist der Prozess / was sind die Zuständigkeiten des Deployments und der Konfiguration (und des Monitorings) für das deployment der bsz-Apps? Hintergrund: PREPROD ist noch nicht vollständig mit allen bsz-Apps bespielt worden. Insbesondere die Konfiguration der Apps untereinander ist von Interesse! Wunsch: Vorgehen für ABN1/ABN2/PROD planen.
  • Smoketest:
  • Je 1 Bestellung über beide Eingangskanäle (CI und Portal-UI) auslösen und prüfen, ob sie in den entsprechenden Kafka-Topics (→ IFP) ankommen
  • Bei Produktion: Abstimmung mit TTT notwendig
  • Abstimmung mit und  
  • Gemeines Review der Umgebungskonfiguration mit allen Teams pro Umgebung und bei Bedarf
  • Dokumentation der Umgebungen im Runbook

Agenda 12.07.2024

  • Einbindung Netzgrafik in das Bestellportal
  • C2S Capability: das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eC2SLS-2090
  • Netzgrafik Beispiel: https://netzlotse-frontend-kuk-iat.cnp-test.comp.db.de/netzgrafik
  • DB Backup & Recovery: Störfälle, Wiederherstellung, Konsequenzen
  • Kein DB-Split, da es bei Wiederherstellung die Komplexität deutlich erhöht
  • Eingänge von SV sollten auf Kafka basieren
  • Kafka-Backup separat zu betrachten
  • RocksDB in Camunda 8 berücksichtigen!

Agenda 17.05.2024

  • Aktueller Stand Systemtests
  • Aufgabe für das kommende Sprint-Planning: Klärung bei 404 und CIB, ob Jan 1-2 Tage bzgl. Selenium-Tests aushilft
  • Erste Ausführung mit dynamischen Umgebungen immer noch häufig fehlerhaft? → zunächst Selenium-Problematik betrachten
  • ART-Enabler für PI 33 vorbereiten  
  • O2CBS-353: Die Systemtests sind in Anlehnung an die KITs von SV refaktoriert
  • Aus PI 33 Planung entfernen
  • Umstellung Architekturdokumentation
  • Architekturdokumentation ins Runbook übernehmen, bisheriges Repository archivieren
  • O2CBS-408: Vorbereitung Produktivsetzung: Ausarbeitung des Runbooks
  • Testdaten für Kundendaten-Bereitstellung (bis 300 Partner über SQL in Datenbank insert): Die SQLs in Helm-Chart oder in Artifactory? siehe ADR 47
  • Falls es eine Pflegeschnittstelle gibt → Testdatenimport über Schnittstelle
  • Daten, die in integrativen Umgebungen aus externen Systemen geladen werden, werden über (Wire-)Mocks zur Verfügung gestellt
  • Neuer ADR + Enabler  

Agenda 19.04.2024

Agenda 8.04.2024

  • Frage von Team Zero: Gibt es eigentlich ein Rechte- und Rollenkonzept für das neue Bestellsystem?
  • Dokumentation für Entwicklungs-/Betriebsrollen
  • Dokumentation technischer Benutzer und Rollen
  • Dokumentation für CI
  • Dokumentation für Portal
  • : Template für Dokumentation + Enabler erstellen
  • Produktionsumgebung: Jeder Services läuft mit einem eigenen Datenbank-Cluster? (Problem in der Metrikerhebung der Stammdatenbereitstellung führt zu systemweiten Problemen)
  • Ein Datenbank-Cluster für alle Services: weniger Wartungsaufwand, konsistenter Datenbankstand über komplettes Bestellsystem
  • Ein Datenbank-Cluster pro Microservice: bessere Isolation (Burst-Balance), überschaubarere Größe bei Backups/Snapshots, individuelle Skalierung
  • Informationen sammeln bzgl. Wartungsaufwänden
  • Arbeitsorganisation im Betrieb berücksichtigen: ein Team für ein DB-Cluster zuständig? Oder arbeiten mehrere Teams an einem DB-Cluster?
  • Last- und Performancetests hinsichtlich Datenskalierung auswerten
  • Datenmigration bei ggf. notwendigen Cluster-Strukturänderungen berücksichtigen!
  • : Wiedervorlage in PI 33

Agenda 22.03.2024

  • Klärung, ob bestellsystem-parent-pom in der Form weiterbestehen sollte
  • Enge Abhängigkeiten führen zu manuellem Anpassungs- und Testaufwand
  • Zentrale Stelle zum Aktualisieren von Abhängigkeiten (z.B. für APIs und bei Schwachstellen)
  • Camunda in SV "bremst" Aktualisierung von bestellsystem-parent-pom
  • Vorschlag: PoC in einem IP-Sprint
  • Thema wird in CI/CD-Runde mit aufgenommen ( : in Agenda eintragen)
  • Aus Problem Solving: Versionsnummern von Releases noch nicht gut von Snapshots zu unterscheiden
  • Fragestellung: Was ist der Nutzen des Timestamps in der aktuellen Versionsnummer? Wird das irgendwo zwangsläufig benötigt?
  • Vorschlag:
  • Bei Trigger durch Git-Tag: Name des Tags
  • Bei Trigger auf Master-Branch: Basis-Versionsnummer gemäß POM + „-m-PIPELINE_ID-COMMIT-SHA-SHORT“ + „-SNAPSHOT“
  • Bei Trigger auf Nicht-Master-Branch (z.B. "feat/"): Basis-Versionsnummer gemäß POM + „-b-PIPELINE_ID-COMMIT-SHA-SHORT“ + „-SNAPSHOT“
  • Bei "-SNAPSHOT"-Suffix in den Abhängigkeiten kann Create-Release-Tag-Job abbrechen (Prüfung der Abhängigkeiten wäre einzubauen)
  • Weitere Frage:
  • Verwendung von Maven-Release-Plugin? Ggf. besser: Version-Plugin, da Release-Plugin auch Git-Operationen vorsieht; außerdem muss NPM-Projekt (Portal UI) berücksichtigt werden
  • Separater Termin ( : einladen)
  • ACAT: Wir müssen wohl die ACAT Gruppen neu definieren...
  • Warum? Wir haben für das WRITING nur gmu Gruppen, welche einen Admin Account brauchen → separater Termin ( )
  • Betreibervorgaben werden nochmal geprüft ( )
  • Martin/STeam: hat unser Keycloak eigentlich noch irgendwelche Verbindungen zu Nachbarsystemen (mit Systel-TLS-Zertifikaten)?
  • in der Vergangenheit benutzten wir den eBRS-AD, das ist lange deaktiviert, oder? → Systel-TLS-Zertifikate können entfernt werden
  • wir würden dann gerne unser keycloak-Login-Theme und das custom-CA-Cert-Setup aus dem Deployment entfernen, das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1018
  • erst nach Umstellung auf WebSSO in EVU-Testumgebungen umsetzen

Agenda 8.03.2024

  • DoD: Abnahme der Story in integrierter Umgebung vs. ADR 58
  • Entscheidung:
  • IEU Deployment in Testing-Pipeline aufnehmen (unabhängig vom E2E-Stand) → Abnahme kann weiterhin auf IEU stattfinden
  • erfolgreiches IEU-Deployment ist nicht notwendig für erfolgreichen Abschluss der Pipeline
  • Systemtests werden auf IEU nicht erneut ausgeführt bei Trigger durch Testing-Pipeline
  • das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1020
  • Abhängigkeiten zwischen Projekten beim Deployment
  • zwischenzeitlich über manuelle Anpassung in bestellsystem-deployment.
  • Lösung über Multi-Artefakt-Projekte.
  • Neuer Enabler für STeam: PoC für Portal-UI + Portal-Middleware das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-1043
  • das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CBS-338
  • Aufgabenteilung zwischen Teams Zero und CIB
  • Ideen bzgl. API-Umsetzung 
  • Serialisierungsmechanismus (vor Deserialisierung auf Server-Seite bzw. nach Serialisierung auf Client-Seite Byte-Stream verwenden) erweitern (REST + Kafka); ggf. über Aspekte
  • Einheitlich konfigurierter ObjectMapper von Jackson
  • Ideen bzgl. Datenbank
  • Felder/Entitäten über Annotations inkludieren/exkludieren
  • Relevante Felder konkatenieren und aus Ergebnis die Signatur erstellen; Reihenfolge der Felder muss beim Speichern der Metadaten zur Signatur berücksichtigt werden → beim Auslesen wird in Metainformationen gespeicherte Reihenfolge zur Validierung gespeichert
  • Bei Assoziationen zu anderen Tabellen Grenze bei Fremdschlüsseln ziehen (assoziierte Entität wird nicht signiert/validiert)
  • Konzept → ADR

Agenda 23.02.2024

  • klären, wie Kafka in den base-at-Umgebungen zukünftig aufgesetzt wird
  •  → Frage: Wer löscht die Kafka-Topics in base-at ? (siehe Agenda 2.2.) 
  • das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-977
  • Entscheidung: Variante 3 - eigene Kafka-Cluster pro Umgebung / Verwendung von MSK auf den statischen Umgebungen (IEU, SIT, ...)
  • Martin/STeam: wir hatten beim PI-Planning die Anregung mitgenommen den Workflow unserer Security-Scanner in der Pipeline zu überarbeiten, das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-838
  • jetzt haben wir ein Enabler-Ticket mit vielen Gedanken aus dem PIP, aber seitdem keine Stakeholder die irgendwelche Anforderungen formulieren und konkretisieren
  • Frage hier in die Runde: was wollen wir ändern?
  • Ticket in PI32 neu betrachten (nach weiteren Tests mit DefectDojo)
  • Entscheidung: Security-Scanner sollen per Default nur noch auf Master-Branch laufen
  • Folgende Security-Scanner nur in Master-Branch: Fortify, Whitesource, trivy, OWASP ZAP
  • neues Ticket für STeam in PI31 das I.NVI IT Lifecycle Management Toolissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolutionkey,summary,type,created,updated,due,assignee,reporter,priority,status,resolutiond1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-987 anstelle von O2CSYS-838 (verschoben nach PI 32)
  • Martin/STeam: wollen wir auch für die Libraries und APIs die geplanten neuen Release-Prepare-Jobs übernehmen? das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CSYS-896
  • bei Libraries natürlich ohne Testing- und Staging-Pipelines und Deployment
  • passende Funktion die wir nutzen können: nur bei Git Tag Upload ins Prod-Repo, GitLab-Release mit Changelog, bei Bedarf auch Jira-Lösungsversion
  • Entscheidung: Kein akuter Handlungsbedarf. Neubetrachtung bei Diskussion über Refactoring von gemeinsam verwendeten JAR-Dateien/Bibliotheken
  • MSK Sizing
  • erste Maßnahme: Speicherplatz erhöhen (30 GB), perspektivisch größeren Wert wählen als RDS
  • → Monitoring der Volumeauslastung prüfen
  • → Retention-Property prüfen
  • → Auto-Scaling-Konfiguration prüfen ( )
  • → Gehen Nachrichten beim Hochskalieren des Speichers verloren? ( )

Agenda 9.02.2024

  • DevOps: Synergien mit C2S möglich und gewünscht?
  • Vorstellung: Virtuelle ART-übergreifende Teams zur Optimierung der Bereitschaftszeit in der Betriebsführung
  • ART-übergreifende fachliche Betriebsführung sinnvoll
  • technische Betriebsführung als ART-eigenes virtuelles Team
  • Michael/STeam: Multireplicafähigkeit von Bestellsystem-Service Stack in Namespaces bsz-ieu/bsz-sit/bsz-e2e etc. - Was wäre noch zu tun um alle mind. 2x auszuführen? 
  • Portal-Middleware in bsz-sit (Grund: BBZ + Metrik, BBZ soll durch NuR abgelöst werden, ggf. alternativ Metrik aus-/umbauen bzw. Test im system-integration-test deaktivieren)
  • taftap-tdm-konverter → noch in Entwicklung + nicht eingebunden in Tests → wird multireplicafähig
  • e2e Namespace → kann hochskaliert werden
  • stammdaten-bereitstellung → Ticket für Multireplicafähigkeit: das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CZERO-3391

Agenda 2.02.2024

  • Klärung notwendig: Partnerkonfiguration im CI / TTK (Team-Zero)
  • Partnerkonfiguration in CI; keine erneute Zertifikatsprüfung in TTK
  • Klärung mit KomBau, ob Zertifikate weitergeleitet werden müssen  
  • Enabler zur Umstellung der Partnerkonfiguration von Yaml auf ein dauerhaft gut wartbares Konfigurationskonzept
  • Enabler zur Prüfung des kompletten Subjects (nicht nur CN)
  • Frage: Wer löscht die Kafka-Topics in base-at ?
  • Muss Kafka-Server dafür gestoppt werden? (https://stackoverflow.com/questions/33537950/how-can-i-delete-a-topic-in-apache-kafka/33538299#33538299)
  • prüft bis zur nächsten Architekturrunde, was zum Löschen von Topics notwendig ist (Standalone-Kafka + MSK)
  • Technische Dokumentation: Wo und Wie? (Team Zero)
  • Strukturiere Ablage von Dokumentation von Microservices + ggf. Betriebshandbuch  
  • Martin/STeam: Benennung neuer Services
  • wir wünschen uns dass unsere Services bzw. Komponenten präfixfreie Namen bekommen. Weil wir besonders in den Helm-Charts viel mit Text-Präfixen und Suffixen arbeiten, befürchten wir sonst Kollisionen.
  • Ein kompletter Service-Name sollte nicht Präfix eines anderen Service-Namens sein
  • und können wir uns im Bestellsystem auf eine Schreibweise von "konnektor" oder "connector" einigen? Anscheinend sind die ADR 57 (Kombau) Enablertickets da nicht einheitlich.
  • Beachtung einheitlicher Schreibweise
  • Git-Tags:
  • Format release-vX.Y.Z führt zu Problemen in den Pipelines → Vorschlag: Versionsnummern ohne Präfix verwenden X.Y.Z
  • Umsetzung ohne Präfix; bei Problemen erneut betrachten
  • Bing/STeam: CNP-MSK bei Base-Umgebung: wollte mit Euch kurz diskutieren, ob CNP-MSK (oder Bestellsystem-Kafka) in Base-Umgebung insbesondere bei System-Tests verwendet werden soll.
  • Wunsch wäre CNP-MSK zu nutzen
  • Abhängigkeit zum Thema "Löschen von Topics" (siehe oben)
  • Besprechung in CI/CD-Runde  

Agenda 19.01.2024

  • Dringend: Umgang mit Versandergebnis nach der Trennung CI / TTK
  • Entscheidung: Versandergebnis über eigenes Kafka-Topic von CI → TTK bzw. CI → KomBau
  • Daniel/CIB: Konzept zu Kompatibilitätstests https://git.tech.rz.db.de/bestellsystem1/docs/architektur/-/merge_requests/220 für das I.NVI IT Lifecycle Management Toold1143f0d-33c0-3f1c-b44b-7720150f306eO2CCIB-4746 vorstellen
  • ELK Stack (ELK ähnliches Stack) als KombauMock
  • stattdessen Kafka-Consumer in System Tests einbinden
  • EVU-Test-Umgebung: Nachrichten an KomBau verbleiben in Kafka-Topic; können mithilfe Kafka UI betrachtet werden
  • Camunda 8: Anforderungen an CNP (z.B. OpenSearch)
  • Security-Requirements-Prüfung: Annette, ggf. Diego, Jan, Bing+1, Frank oder Norbert