SlideShare ist ein Scribd-Unternehmen logo
2
Am meisten gelesen
10
Am meisten gelesen
18
Am meisten gelesen
1
Patrick Bönzli, Jonas Rüttimann, Thomas Bomatter
BATbern53, 21.6.2024
Wieso in jeder
Zugfahrt der SBB ein
Stück MongoDB
drinsteckt
2
Was ist eine Document Database?
Eine document database ist
eine Datenbank, welche
Informationen in Dokumenten
speichert.
3
SQL vs. Document Database
eine Frage der Effizienz.
Keine Frage der Philosophie,
4
Effizienz durch Identifkation von Stärken
SQL
Document
Databases
Normalisierte Tabellen
Strong consistency
Flexibility models,
nesting and evolution
Complex transactions
and queries
Documents
Rapid development,
horizontal scalability
Device sync,
text search
Custom extensions
Natural
Strengths
Derived
Strengths
Ecosystem
Strengths
5
SBB setzt heute auf MongoDB
MongoDB hat sich bei der SBB
durchgesetzt aufgrund:
- Maturität der Technologie
- Grosses Open-Source Ökosystem
- Gute Beratungsleistungen und Support
Event Streaming benötigt Event Persistierung
6
Microservice
Document DB
Kafka
Kafka
Random Access
Kafka
11’388 Züge auf dem Netz pro Tag
7
30 Prognosemeldungen pro Sekunde (max.) 6 GB an Prognosemeldungen pro Tag
Multiplikation der Last
8
Zugfahrtdaten-Service
MongoDB
Zug-
Fahrplan
Prognose-Zeit
Ist-Zeit
Zug-Fahrplan mit Ist-
und Prognose-Zeiten
Zwei Ansichten auf dieselben Daten
9
Soll: 10:00
Prog: 10:04 +4
Soll: 9:15
Prog: 9:14 -1
Soll: 9:00
Prog: 9:01 +1
Soll: 8:00
Ist: 8:12 +12
Prog
Soll: 8:00
Prog: 8:15 +15
Soll: 9:00
Prog: 9:08 +8
Soll: 10:00
Prog: 10:07 +7
Pain Points bei der App Entwicklung
10
– Wie übermittelt man die Daten zwischen App und Server?
– Wie hält man die Daten up-to-date auf der App?
– Wie ermöglicht man das Arbeiten wenn das Gerät mal
offline ist?
Normaler Ansatz:
– REST APIs
– Polling / Push Notifcations / Timers
– Komplexer code für offline Änderungen,
Synchronisation und Konfliktlösung
SBB hat über 100 interne mobile Apps
MongoDB mit Atlas Device Sync
11
– Lokale Datenbank auf dem Gerät
– Sync Service im Hintergrund
Resultat:
– Keine REST APIs mehr
– Echtzeit Synchronisation
– Offlinefähigkeit
– Konfliktlösung
Gleisspiegel
12
– Verwaltung von Zügen und Wagen auf Abstell-
und Rangiergleisen
– Planung vom nächsten Einsatz
– Ersatzwagen bei Defekten finden
– Web & Mobile App wird benötigt
Scope:
– 37 Standorte, 1035 Benutzer (675 Mobile)
13
Demo
AppBakery
Mobile:
– Sync-SDK braucht ein Schema
– Datenzugriff Regeln werden nur Serverseitig
angewendet
– Verschachtelte Elemente (Embedded Objects) in
Dokumenten müssen nullable sein
Web:
– Listeners stoppen wenn das Gerät in den
Ruhezustand geht oder kein Internet mehr hat
Beide:
– Buiness Logik muss mehrfach implementiert werden
14
– Einfaches Setup
– Echtzeit-Sync funktioniert extrem zuverlässig
– Alles kann offline gemacht werden ohne weiteren
Code zu schreiben
– Synchronisation kann mit Subscription-Sets einfach
konfiguriert werden
– Built-in Authentication für diverse Verfahren
Vor & Nachteile (Lessons learned)
Erkenntnisse nach Einführung MongoDB Atlas
15
Ablösung In-Memory-DB
Machbar mit zahlreichen Stellhebeln:
Skalierung des Clusters, Redundanz in
den Daten, Caching, Change Streams,
usw.
Ablösung einer Relationalen DB
Event als Document persistieren ohne
relationales Mapping vereinfacht die Entwicklung.
Herausforderung: Welche Entität ist als
Document optimal?
Nutzung der Plattform-as-a-Service
DB-Cluster anlegen, Skalierung,
Datenvisualisierung, Monitoring, Alerts,
Backups, usw. im Self-Service.
Verfügbarkeit und Support out-of-the-box.
Integration in die SBB-Welt mit Potential.
Entwickler Ramp Up
Einstieg in Document DB erstaunlich
einfach. Viele Konzepte sind gegenüber
relationalen DBs jedoch anders und
müssen gelernt werden: DB-Schema,
Migrationstool, Indexierung, Skalierung,
Time-to-Live, Aggregation Pipeline, usw.
Rezept für One-Pot MongoDB
Enterprise Pasta
16
MongoDB Atlas
Integration von MongoDB PaaS in SBB
17
• Custom provisioning via IaC (custom AD-Groups, permissions, backup-settings)
• SBB (HCBöV) compliant backups (immutable, versioned)
• DB-Endpoint via VPC (integrated peering)
• Billing (per project, per team, per organisation, per stage, ...)
• SSO-Integration (on organisation level)
• Meta-Data (bsp Ownership, Applikation, Team, ...)
• Preventing vendor lock-in (bsp application services, charts, triggers, ...)
18
Merci.
Patrick Bönzli Jonas Rüttimann Thomas Bomatter

Weitere ähnliche Inhalte

PDF
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
PPTX
Alle reden über Microservices - Wie haben wir es bei LeanIX gemacht @ EA Conn...
PDF
OSDC 2013 | Configuration Management with Verbosy by Eric Lippmann
PDF
Jug nbg containerplattform dcos
PPTX
skilllocation Foliensatz zu Microsoft Azure
PDF
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
PDF
Cloud Computing für die Verarbeitung von Metadaten
PPTX
Azure SQL Database vs. Azure SQL Data Warehouse
Event-Streaming in Echtzeit: Der MongoDB-Kafka-Connector in Action!
Alle reden über Microservices - Wie haben wir es bei LeanIX gemacht @ EA Conn...
OSDC 2013 | Configuration Management with Verbosy by Eric Lippmann
Jug nbg containerplattform dcos
skilllocation Foliensatz zu Microsoft Azure
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Cloud Computing für die Verarbeitung von Metadaten
Azure SQL Database vs. Azure SQL Data Warehouse

Ähnlich wie BATbern53 SBB Wieso in jeder Zugfahrt der SBB ein Stück MongoDB drinsteckt (20)

PDF
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
PDF
BATbern56 RAG in Produktion bei der Mobiliar
PDF
So hilft ein Enterprise Service Bus, Ordnung in Schnittstellen und Daten zu b...
PPT
Skalierung & Performance
PDF
MEAN SCS in der Cloud
PDF
Big Data Konnektivität
PPTX
BizSpark goes Cloud
PDF
Architektur und Automation als Enabler für DevOps
PDF
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
PDF
Data Is The New Oil
PDF
Cloud Connectivity - Herausforderungen und Loesungen
PPTX
Do´s and Dont´s mit Oracle RDS
PDF
Oracle Database 12c Release 2
PDF
Überblick zu Oracle Database 12c Release 2
PDF
BATbern53 ELCA Analyticsdatenhaltung in der Cloud
PDF
Product Update: Infopark Cloud Express - Thomas Witt
PDF
Roadshow Oracle Database 12c: News & Features
PDF
Überblick Power BI Tools
PDF
he Future of SharePoint is Now – Tipps für On-Premise, Cloud oder Hybride Mig...
PDF
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Anwender-Case Karl Storz GmbH & Co. KG auf OpenText Basis
BATbern56 RAG in Produktion bei der Mobiliar
So hilft ein Enterprise Service Bus, Ordnung in Schnittstellen und Daten zu b...
Skalierung & Performance
MEAN SCS in der Cloud
Big Data Konnektivität
BizSpark goes Cloud
Architektur und Automation als Enabler für DevOps
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Data Is The New Oil
Cloud Connectivity - Herausforderungen und Loesungen
Do´s and Dont´s mit Oracle RDS
Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
BATbern53 ELCA Analyticsdatenhaltung in der Cloud
Product Update: Infopark Cloud Express - Thomas Witt
Roadshow Oracle Database 12c: News & Features
Überblick Power BI Tools
he Future of SharePoint is Now – Tipps für On-Premise, Cloud oder Hybride Mig...
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Anzeige

Mehr von BATbern (20)

PDF
BATbern56 TrainVision – ein ehrlicher Erfahrungsbericht vom Prototyp bis zur ...
PDF
BATbern56 Vom Experiment zur Wirkung – Die KI-Initiative im ISC-EJPD
PDF
BATbern56 Die Architektur der intelligenten Zukunft: Vom Code zum kooperative...
PDF
BATbern56 GenAI beim Bund: Wie das BAFU komplexe Anfragen meistert!
PDF
BATbern56 ariolilaw Rechtskonformer Einsatz von GenAI
PPTX
BATbern55 Bridging the Gap from Telco to Techco with Agile Architecture
PPTX
BATbern55 How can TWINT be agile in an inert ecosystem?
PPTX
BATbern55 Agile Architektur und Transformation @Postfinance
PDF
BATbern54 Build & Run on the same platform, embracing Platform Engineering & ...
PDF
BATbern54 Plattform-Engineering für digitale Versicherungsprodukte: «Joint Ap...
PDF
BATbern54 Plattform-Engineering für digitale Versicherungsprodukte: Erfahrung...
PDF
BATbern53 Post Data persistence in the business-critical and event driven env...
PPTX
BATbern53 BKW Easy Migration through Clean Architecture
PDF
BATbern53 ETHZ Rethinking Cluster State Management for Lightweight Function a...
PDF
BATBern53 - EPFL - Blue Brain and related technical challenges
PDF
BATbern53 Die Mobiliar Bring die Algorithmen zu den Daten – nicht umgekehrt
PDF
BATber53 AWS Modernize your applications with purpose-built AWS databases
PDF
BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
PDF
BATbern52 Swisscom's Journey into Data Mesh
PDF
BATbern52 SBB zu Data Products und Knacknüsse
BATbern56 TrainVision – ein ehrlicher Erfahrungsbericht vom Prototyp bis zur ...
BATbern56 Vom Experiment zur Wirkung – Die KI-Initiative im ISC-EJPD
BATbern56 Die Architektur der intelligenten Zukunft: Vom Code zum kooperative...
BATbern56 GenAI beim Bund: Wie das BAFU komplexe Anfragen meistert!
BATbern56 ariolilaw Rechtskonformer Einsatz von GenAI
BATbern55 Bridging the Gap from Telco to Techco with Agile Architecture
BATbern55 How can TWINT be agile in an inert ecosystem?
BATbern55 Agile Architektur und Transformation @Postfinance
BATbern54 Build & Run on the same platform, embracing Platform Engineering & ...
BATbern54 Plattform-Engineering für digitale Versicherungsprodukte: «Joint Ap...
BATbern54 Plattform-Engineering für digitale Versicherungsprodukte: Erfahrung...
BATbern53 Post Data persistence in the business-critical and event driven env...
BATbern53 BKW Easy Migration through Clean Architecture
BATbern53 ETHZ Rethinking Cluster State Management for Lightweight Function a...
BATBern53 - EPFL - Blue Brain and related technical challenges
BATbern53 Die Mobiliar Bring die Algorithmen zu den Daten – nicht umgekehrt
BATber53 AWS Modernize your applications with purpose-built AWS databases
BATbern52 Moderation Berner Architekten Treffen zu Data Mesh
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 SBB zu Data Products und Knacknüsse
Anzeige

BATbern53 SBB Wieso in jeder Zugfahrt der SBB ein Stück MongoDB drinsteckt

  • 1. 1 Patrick Bönzli, Jonas Rüttimann, Thomas Bomatter BATbern53, 21.6.2024 Wieso in jeder Zugfahrt der SBB ein Stück MongoDB drinsteckt
  • 2. 2 Was ist eine Document Database? Eine document database ist eine Datenbank, welche Informationen in Dokumenten speichert.
  • 3. 3 SQL vs. Document Database eine Frage der Effizienz. Keine Frage der Philosophie,
  • 4. 4 Effizienz durch Identifkation von Stärken SQL Document Databases Normalisierte Tabellen Strong consistency Flexibility models, nesting and evolution Complex transactions and queries Documents Rapid development, horizontal scalability Device sync, text search Custom extensions Natural Strengths Derived Strengths Ecosystem Strengths
  • 5. 5 SBB setzt heute auf MongoDB MongoDB hat sich bei der SBB durchgesetzt aufgrund: - Maturität der Technologie - Grosses Open-Source Ökosystem - Gute Beratungsleistungen und Support
  • 6. Event Streaming benötigt Event Persistierung 6 Microservice Document DB Kafka Kafka Random Access Kafka
  • 7. 11’388 Züge auf dem Netz pro Tag 7 30 Prognosemeldungen pro Sekunde (max.) 6 GB an Prognosemeldungen pro Tag
  • 9. Zwei Ansichten auf dieselben Daten 9 Soll: 10:00 Prog: 10:04 +4 Soll: 9:15 Prog: 9:14 -1 Soll: 9:00 Prog: 9:01 +1 Soll: 8:00 Ist: 8:12 +12 Prog Soll: 8:00 Prog: 8:15 +15 Soll: 9:00 Prog: 9:08 +8 Soll: 10:00 Prog: 10:07 +7
  • 10. Pain Points bei der App Entwicklung 10 – Wie übermittelt man die Daten zwischen App und Server? – Wie hält man die Daten up-to-date auf der App? – Wie ermöglicht man das Arbeiten wenn das Gerät mal offline ist? Normaler Ansatz: – REST APIs – Polling / Push Notifcations / Timers – Komplexer code für offline Änderungen, Synchronisation und Konfliktlösung SBB hat über 100 interne mobile Apps
  • 11. MongoDB mit Atlas Device Sync 11 – Lokale Datenbank auf dem Gerät – Sync Service im Hintergrund Resultat: – Keine REST APIs mehr – Echtzeit Synchronisation – Offlinefähigkeit – Konfliktlösung
  • 12. Gleisspiegel 12 – Verwaltung von Zügen und Wagen auf Abstell- und Rangiergleisen – Planung vom nächsten Einsatz – Ersatzwagen bei Defekten finden – Web & Mobile App wird benötigt Scope: – 37 Standorte, 1035 Benutzer (675 Mobile)
  • 14. Mobile: – Sync-SDK braucht ein Schema – Datenzugriff Regeln werden nur Serverseitig angewendet – Verschachtelte Elemente (Embedded Objects) in Dokumenten müssen nullable sein Web: – Listeners stoppen wenn das Gerät in den Ruhezustand geht oder kein Internet mehr hat Beide: – Buiness Logik muss mehrfach implementiert werden 14 – Einfaches Setup – Echtzeit-Sync funktioniert extrem zuverlässig – Alles kann offline gemacht werden ohne weiteren Code zu schreiben – Synchronisation kann mit Subscription-Sets einfach konfiguriert werden – Built-in Authentication für diverse Verfahren Vor & Nachteile (Lessons learned)
  • 15. Erkenntnisse nach Einführung MongoDB Atlas 15 Ablösung In-Memory-DB Machbar mit zahlreichen Stellhebeln: Skalierung des Clusters, Redundanz in den Daten, Caching, Change Streams, usw. Ablösung einer Relationalen DB Event als Document persistieren ohne relationales Mapping vereinfacht die Entwicklung. Herausforderung: Welche Entität ist als Document optimal? Nutzung der Plattform-as-a-Service DB-Cluster anlegen, Skalierung, Datenvisualisierung, Monitoring, Alerts, Backups, usw. im Self-Service. Verfügbarkeit und Support out-of-the-box. Integration in die SBB-Welt mit Potential. Entwickler Ramp Up Einstieg in Document DB erstaunlich einfach. Viele Konzepte sind gegenüber relationalen DBs jedoch anders und müssen gelernt werden: DB-Schema, Migrationstool, Indexierung, Skalierung, Time-to-Live, Aggregation Pipeline, usw.
  • 16. Rezept für One-Pot MongoDB Enterprise Pasta 16 MongoDB Atlas
  • 17. Integration von MongoDB PaaS in SBB 17 • Custom provisioning via IaC (custom AD-Groups, permissions, backup-settings) • SBB (HCBöV) compliant backups (immutable, versioned) • DB-Endpoint via VPC (integrated peering) • Billing (per project, per team, per organisation, per stage, ...) • SSO-Integration (on organisation level) • Meta-Data (bsp Ownership, Applikation, Team, ...) • Preventing vendor lock-in (bsp application services, charts, triggers, ...)
  • 18. 18 Merci. Patrick Bönzli Jonas Rüttimann Thomas Bomatter