SlideShare ist ein Scribd-Unternehmen logo

Von Managed-Cloud zu GitOps - Multi Client-Cluster Deployments

Johannes Dienst
Johannes Dienst
Johannes DienstSoftwarearchitect / Clean Coder um DB Systel GmbH

Was ist die beste Vorgehensweise um ein Produkt im Konzernumfeld für mehrere Mandanten auszurollen? Hoffentlich ein multimandantenfähiges Kaufprodukt einkaufen, das der Vorgabe der Prozesstrennung für Mandanten entspricht. Leider hatten wir in unserem Team kein solches Produkt zur Verfügung und standen vor der Herausforderung für jeden Mandanten einen eigenes System aufsetzen zu müssen. In diesem Vortrag beschreiben wir die drei Entwicklungsstufen unseres Deploymentprozesses hinsichtlich der Server-Infrastruktur in AWS inklusive Trennung der AWS-Accounts in Test- und Produktiv-Umgebungen. Die erste Phase beschreibt dabei den Aufbau einer managed Cloud mit festen Servern. Diese können zwar automatisiert eingerichtet werden, die automatische Skalierbarkeit ist aber unzureichend. Die nächste Iteration beleuchtet den Ansatz des "Infrastructure as Code" über Cloudformation, der für ein dediziertes System sehr gut funktionierte. Probleme bereiteten uns der richtige Git-Flow und die fehlende Unterstützung für eine echte Trennung der Systeme pro AWS-Account. In unserer aktuellen und hoffentlich finalen Iteration sind wir auf einen konsequenten GitOps-Ansatz gewechselt. Wir beschreiben, wie wir mit diesem Vorgehen seit Monaten stabile Infrastuktur-Deployments über Gitlab in Produktion bringen, welche Herausforderungen zu lösen waren im Hinblick auf Configuration as Code und dem richtigen Git-Flow. Auch die Erleichterung hinsichtlich der Einhaltung verschiedener Konzernvorgaben, beispielsweise der ISO 20000 an Release- und Changemanagement, darf hierbei nicht fehlen.

Von Managed-Cloud zu GitOps - Multi Client-Cluster Deployments

1 von 24
Downloaden Sie, um offline zu lesen
Von Managed Cloud zu GitOps
Multi Client-Cluster Deployments
DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas
Digitalpartner der
Deutschen Bahn
DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 2
DB Content Hub
DB Systel GmbH | Johannes Dienst | @JohannesDienst | Jan Kohlhaas 3
‒ Content as a Service (CaaS)
‒ Headless CMS
‒ Gehosted in der Cloud
‒ You build it, you run it!
DB Content Hub
DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 4
Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
Anforderung: Physisch separierte Kundencluster
DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 5
Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
Requirement: ISO 20000
DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 6

Recomendados

Everything as Code: Pipeline, Infrastructure, Configuration, Documentation
Everything as Code: Pipeline, Infrastructure, Configuration, DocumentationEverything as Code: Pipeline, Infrastructure, Configuration, Documentation
Everything as Code: Pipeline, Infrastructure, Configuration, DocumentationJohannes Dienst
 
Rock Solid Software Architecture with ADRs, arc42 and Microsites
Rock Solid Software Architecture with ADRs, arc42 and MicrositesRock Solid Software Architecture with ADRs, arc42 and Microsites
Rock Solid Software Architecture with ADRs, arc42 and MicrositesJohannes Dienst
 
DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)
DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)
DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)Johannes Dienst
 
Lessons Learned: arc42 in einem echten DevOps Team
Lessons Learned: arc42 in einem echten DevOps TeamLessons Learned: arc42 in einem echten DevOps Team
Lessons Learned: arc42 in einem echten DevOps TeamJohannes Dienst
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Johannes Dienst
 
Effizient arbeiten mit Architecture Decision Records (ADR)
Effizient arbeiten mit Architecture Decision Records (ADR)Effizient arbeiten mit Architecture Decision Records (ADR)
Effizient arbeiten mit Architecture Decision Records (ADR)Johannes Dienst
 
DevOps im Konzern: Autonomie vs Betriebssicherheit
DevOps im Konzern: Autonomie vs BetriebssicherheitDevOps im Konzern: Autonomie vs Betriebssicherheit
DevOps im Konzern: Autonomie vs BetriebssicherheitJohannes Dienst
 
Dev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdfDev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdfCarolinaMatthies
 

Más contenido relacionado

Ähnlich wie Von Managed-Cloud zu GitOps - Multi Client-Cluster Deployments

Griechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne SoftwareentwicklungGriechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne SoftwareentwicklungJohannes Dienst
 
Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsCollaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsBelsoft
 
Entwicklungsrückblick über die letzten 12 Monate Goobi workflow
Entwicklungsrückblick über die letzten 12 Monate Goobi workflowEntwicklungsrückblick über die letzten 12 Monate Goobi workflow
Entwicklungsrückblick über die letzten 12 Monate Goobi workflowintranda GmbH
 
Ist das Softwarearchitektur oder kann das weg?
Ist das Softwarearchitektur oder kann das weg?Ist das Softwarearchitektur oder kann das weg?
Ist das Softwarearchitektur oder kann das weg?Johannes Dienst
 
TFS Release Management Deep Dive
TFS Release Management Deep DiveTFS Release Management Deep Dive
TFS Release Management Deep DiveNico Orschel
 
Get ready for SharePoint 2016
Get ready for SharePoint 2016Get ready for SharePoint 2016
Get ready for SharePoint 2016Next Iteration
 
DNUG2013-Vortrag-Notes9-Featurevergleich
DNUG2013-Vortrag-Notes9-FeaturevergleichDNUG2013-Vortrag-Notes9-Featurevergleich
DNUG2013-Vortrag-Notes9-FeaturevergleichRalph Belfiore
 
Developer Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-AnwendungenDeveloper Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-AnwendungenRobin Sedlaczek
 
Neofonie Unternehmenspräsentation
Neofonie UnternehmenspräsentationNeofonie Unternehmenspräsentation
Neofonie UnternehmenspräsentationJan Maller
 
Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - AnwendungsmodernisierungDev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - AnwendungsmodernisierungDevDay Dresden
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 
Cloud Databases, Developer Week Nuernberg 2014
Cloud Databases, Developer Week Nuernberg 2014Cloud Databases, Developer Week Nuernberg 2014
Cloud Databases, Developer Week Nuernberg 2014Romeo Kienzler
 

Ähnlich wie Von Managed-Cloud zu GitOps - Multi Client-Cluster Deployments (12)

Griechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne SoftwareentwicklungGriechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne Softwareentwicklung
 
Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsCollaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - Apps
 
Entwicklungsrückblick über die letzten 12 Monate Goobi workflow
Entwicklungsrückblick über die letzten 12 Monate Goobi workflowEntwicklungsrückblick über die letzten 12 Monate Goobi workflow
Entwicklungsrückblick über die letzten 12 Monate Goobi workflow
 
Ist das Softwarearchitektur oder kann das weg?
Ist das Softwarearchitektur oder kann das weg?Ist das Softwarearchitektur oder kann das weg?
Ist das Softwarearchitektur oder kann das weg?
 
TFS Release Management Deep Dive
TFS Release Management Deep DiveTFS Release Management Deep Dive
TFS Release Management Deep Dive
 
Get ready for SharePoint 2016
Get ready for SharePoint 2016Get ready for SharePoint 2016
Get ready for SharePoint 2016
 
DNUG2013-Vortrag-Notes9-Featurevergleich
DNUG2013-Vortrag-Notes9-FeaturevergleichDNUG2013-Vortrag-Notes9-Featurevergleich
DNUG2013-Vortrag-Notes9-Featurevergleich
 
Developer Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-AnwendungenDeveloper Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-Anwendungen
 
Neofonie Unternehmenspräsentation
Neofonie UnternehmenspräsentationNeofonie Unternehmenspräsentation
Neofonie Unternehmenspräsentation
 
Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - AnwendungsmodernisierungDev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
Cloud Databases, Developer Week Nuernberg 2014
Cloud Databases, Developer Week Nuernberg 2014Cloud Databases, Developer Week Nuernberg 2014
Cloud Databases, Developer Week Nuernberg 2014
 

Mehr von Johannes Dienst

Developer Relations Metrics - A Humble Guide
Developer Relations Metrics - A Humble GuideDeveloper Relations Metrics - A Humble Guide
Developer Relations Metrics - A Humble GuideJohannes Dienst
 
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdf
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdfReal Cross-Platform Workflow UI Automation_JohannesDienst.pdf
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdfJohannes Dienst
 
The Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI AutomationThe Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI AutomationJohannes Dienst
 
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)Johannes Dienst
 
Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersJohannes Dienst
 
Lessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamLessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamJohannes Dienst
 
Work efficiently with Architecture Decision Records
Work efficiently with Architecture Decision RecordsWork efficiently with Architecture Decision Records
Work efficiently with Architecture Decision RecordsJohannes Dienst
 
The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?Johannes Dienst
 
Spock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft MutationstestenSpock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft MutationstestenJohannes Dienst
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Johannes Dienst
 
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen UmfeldPride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen UmfeldJohannes Dienst
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Johannes Dienst
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Johannes Dienst
 
Und wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PITUnd wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PITJohannes Dienst
 
Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!Johannes Dienst
 
Clean Code ist doch einfach... Qualität ist schwierig!
Clean Code ist doch einfach... Qualität ist schwierig!Clean Code ist doch einfach... Qualität ist schwierig!
Clean Code ist doch einfach... Qualität ist schwierig!Johannes Dienst
 

Mehr von Johannes Dienst (16)

Developer Relations Metrics - A Humble Guide
Developer Relations Metrics - A Humble GuideDeveloper Relations Metrics - A Humble Guide
Developer Relations Metrics - A Humble Guide
 
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdf
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdfReal Cross-Platform Workflow UI Automation_JohannesDienst.pdf
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdf
 
The Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI AutomationThe Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI Automation
 
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
 
Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client Clusters
 
Lessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamLessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps Team
 
Work efficiently with Architecture Decision Records
Work efficiently with Architecture Decision RecordsWork efficiently with Architecture Decision Records
Work efficiently with Architecture Decision Records
 
The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?
 
Spock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft MutationstestenSpock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
 
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen UmfeldPride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
 
Und wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PITUnd wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PIT
 
Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!
 
Clean Code ist doch einfach... Qualität ist schwierig!
Clean Code ist doch einfach... Qualität ist schwierig!Clean Code ist doch einfach... Qualität ist schwierig!
Clean Code ist doch einfach... Qualität ist schwierig!
 

Von Managed-Cloud zu GitOps - Multi Client-Cluster Deployments

  • 1. Von Managed Cloud zu GitOps Multi Client-Cluster Deployments DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas
  • 2. Digitalpartner der Deutschen Bahn DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 2
  • 3. DB Content Hub DB Systel GmbH | Johannes Dienst | @JohannesDienst | Jan Kohlhaas 3 ‒ Content as a Service (CaaS) ‒ Headless CMS ‒ Gehosted in der Cloud ‒ You build it, you run it!
  • 4. DB Content Hub DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 4 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 5. Anforderung: Physisch separierte Kundencluster DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 5 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 6. Requirement: ISO 20000 DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 6
  • 7. Anforderung: ISO 20000 DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 7 ‒Changemanagement ‒Releasemanagement ISO/IEC 2000-1 Service management system requirements
  • 8. Changemanagement DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 8 Request for change Change planen Change freigeben Change implementieren Review Change Abschliessen
  • 9. Releasemanagement DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 9 Releasenotes Freigabe Test Rollout Technischer Abnahmetest Fachliche Prüfung
  • 10. Vision: Die Infrastruktur DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 10 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 11. Erste Iteration: Ansible -> Managed Cloud DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 11 Free Software Foundation - [1], FAL, https://commons.wikimedia.org/w/index.php?curid=53428398 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 12. Erste Iteration: Pain Points DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 12 Free Software Foundation - [1], FAL, https://commons.wikimedia.org/w/index.php?curid=53428398 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com ‒Schnell für einen Kunden ‒Compliance & Security ‒Wahrheit nicht im Repository
  • 13. Zweite Iteration: Cloudformation Monorepository + Gitlab Pipeline DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 13 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 14. Zweite Iteration: Vorteile und Pain Points DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 14 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com ‒Schwierig zu warten ‒Kundenkonfigurationen nebeneinander ‒Aussteuerung über Pipelines ‒Compliance und Security
  • 15. Dritte Iteration: Terraform und GitOps DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 15 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 16. Dritte Iteration: Terraform und GitOps DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 16 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 17. Dritte Iteration: Vorteile DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 17 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com ‒ Updates auf Einzelkomponenten einfach: MR in Kundenrepository ‒ Kundenkonfigurationen sauber getrennt ‒ Autarke Cluster (Stacks) ‒ Kundenrepository enthält nur Konfiguration (Automatisierung) ‒ Potenziell beliebig viele Stacks
  • 18. Dritte Iteration: Unterschiedliche Umgebungen DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 18 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 19. Dritte Iteration: Terraform und Gitops DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 19
  • 20. Dritte Iteration: Einbindung Monitoring GitOps DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 20 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 21. Wrap Up DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 21 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
  • 22. Wrap Up - Advantages DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 22 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com ‒Einfaches anlegen neuer Kunden ‒Rolling Updates auf Knopfdruck ‒Anbindung an Monitoring ‒Compliance und Security Updates
  • 23. Wrap Up - Herausforderungen DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 23 Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com ‒Viele Git-Repositories ‒Komplexes Zusammenspiel Ausblick ‒Zentrales Management-Tool (Spot) ‒Aggregation der wichtigsten Informationen
  • 24. DB Systel GmbH | Johannes Dienst @JohannesDienst | Jan Kohlhaas 24 Welche zwei Fragen sind noch offen? Johannes.Dienst@deutschebahn.com @JohannesDienst Jan.J.Kohlhaas@deutschebahn.com

Hinweis der Redaktion

  1. Johannes + Jan
  2. Johannes
  3. Jan Base Setup: Headless CMS, generisches Datenmodell Global Content as a Service im Konzern bereitstellen Infrastruktur einer Clusters: Linux-Server, Zentrale Datenbank (RDS), Redis-Cache, Netzwerkspeicher (EFS) Zentrale API, einheitliche Abfragen, erleichterter Zugang zu Daten Kontrolle der Requests, des Traffics, zentrale WAF
  4. Jan Anforderungen an das Produkt: Automatisiertes Deployment beliebig vieler Kundencluster parallel Datenschutz -> Daten müssen physisch strikt voneinander getrennt sein, es darf kein Zugriff von einem auf der anderen Cluster möglich sein Zentrale API übernimmt das Routing per API-Key auf die Kundencluster im Hintergrund Hauptziel im Deployment: Neue Cluster und Updates für bestehende Kundencluster automatisch ausrollen können
  5. Johannes Nachvollziehbarkeit -> TODO Haben wir dazu eine interessante Story?
  6. Johannes Beispiele was da drunter fällt -> Request for Change (MR) Release Notes Testing Planning Changes -> Centralized Tool
  7. Johannes Beispiele was da drunter fällt -> Request for Change (MR) Release Notes Testing Planning Changes -> Centralized Tool Motivation: - Change Fail Rate > KPI > Wie gut ist die Qualität in den einzelnen Bereichen Firmen- / Konzernweit
  8. Johannes Beispiele was da drunter fällt -> Request for Change (MR) Release Notes Testing Planning Changes -> Centralized Tool
  9. Johannes Oben: LoadBalancer Mitte: EC2 / Server Unten: RDS, Redis-Cache, EFS Erzählen: Vorher: Routing Kundencluster Zum LB Zum Cluster / EC2 Hintergrundsysteme: Datenbank, EFS, Cache Automatische Einbindung des Servers / EC2 ins Kundennetzwerk, Einbindung der Services / Datenbank etc. automatisiert per Script / Terraform
  10. Johannes * First customer * Convenient and fast * Compliance is a problem -> What is deployed is not always declared in repository
  11. Johannes * First customer * Convenient and fast Compliance is a problem -> What is deployed is not always declared in repository Story: Plugin wurde selbst kompiliert auf Entwicklerrechner und dann deployed. Änderung aber nicht zurückgespielt.
  12. Johannes Advantages: Compliance easier to achieve because configuration and infrastructure is automatically verifiable over Code Pipeline deploys more reliable Disadvantages: Monorepository -> Chance of changing customer configuration of wrong customer Hard to maintain Deployment has to manual or pipeline very complex
  13. Johannes Advantages: Compliance easier to achieve because configuration and infrastructure is automatically verifiable over Code Pipeline deploys more reliable Disadvantages: Monorepository -> Chance of changing customer configuration of wrong customer Hard to maintain -> Änderungen wurden über Branches gemanaged, aber wie sieht das mit mehreren Umgebungen in unterschiedlichen Accounts aus? Deployment has to be manual or pipeline very complex
  14. Jan Finaler Ansatz: Repository pro asset (Docker, Plugin / Extensions, AMI, Infrastructure), Gitlab-Repository pro Kunden mit Konfigurationsmöglichkeiten Automatisches anlegen, einrichten und vorkonfigurieren von neuen Kundenrepositories Updates der assets (Docker, Plugin / Extensions, AMI, Infrastructure): Automatisch akzeptierte Merge Requests im Kundenrepo Stellt sicher, dass immer die neuesten (abgenommenen) Versionen der Assets im Kundencluster deplyoed werden
  15. Jan Am „Release-Day“: Auführen der Kundenpipeline deployed alle Assets mit einem Klick Branchbasiert: Unterschiedliche Branches bauen unterschiedliche Umgebungen in der AWS auf Infrastruktur-Pipeline wird per Gitlab-API ausgeführt Übergeben werden alle relevanten Konfigurationen per Gitlab-API-Variablen an Terraform wie z.B. die Versionen der Docker-Container, der zu ladenden Plugins etc. Alle benötigten Secrets werden von Terraform erstellt und im AWS Secretsmanager abgelegt und verwaltet Finale Infrastruktur: Cluster aus Linux-Servern, zentrale Datenbank RDS, zentraler Redis-Cache, zentrales Netzwerk-Filesystem EFS Automatisierte Einbindung ins Monitoring
  16. Jan
  17. Jan Assets durchlaufen verschiedene Stadien: Feature-Branch, Development, Main, Production Gitflow-Ansatz Neue Versionen in den Release-Branches triggern Merge Requests im Kundenrepo im entsprechenden Branch Release-Branches repräsentieren Umgebungen / Kunden-Cluster in der AWS Gitlab-Releases für jedes Asset erleichtert den Überblick TODO: Aktuell auf 3 Umgebungen / Branches begrenzt: > Ziel: n Umgebungen dynamisch aufbauen
  18. Jan Exzessive Nutzung von Child-Pipelines / Downstreams Trigger per API und per Child-Pipelines Notes: - Validierung erklären - Terraform-State im Plan-Schritt: Differenz auf neuem plan und state - Rolling-Update mit Autoscaling-Groups
  19. Jan Monitoring-Stack wird mit selben Ansatz aufgebaut / geupdated (Gitflow, Terraform etc.) Kundencluster werden automatisch ins Monitoring eingebunden Grafana-Dashboards werden automatisch ausgerollt, müssen aber Stand jetzt noch manuell angelegt werden
  20. Johannes Several Clusters -> Data Security Request for Change Add stages to fulfill process requirements -> Testing, Informing customers
  21. Johannes + Jan im Wechsel * Script for creating a new customer * Rolling updates where possible * Sidecars automatically installed. Tagging for monitoring over customer configuration repository * Compliance checks in pipeline possible * Security updates automatically merged into customer repository
  22. Johannes + Jan im Wechsel