Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Inner Source@DB: Eine Geschichte über Open-Source-Praktiken im DB Konzern

Inner Source@DB: Eine Geschichte über Open-Source-Praktiken im DB Konzern

Vortrag auf der JAX 2024

Entdecken Sie mit mir die Welt von Inner Source bei der Deutschen Bahn (DB) während meines Vortrags. Ich werde mit einem Rückblick auf die Geschichte von Inner Source bei der DB beginnen und dabei die einzigartigen Herausforderungen beleuchten, auf die wir gestoßen sind, sowie die Lösungsansätze, die wir entwickelt haben. Erfahren Sie, wie die Gründung eines Thementeams in unserer Architekturgilde dazu beigetragen hat, die Verbreitung von Inner Source zu fördern und Hindernisse zu überwinden.

Ich werde den Nutzen von Inner Source für das Unternehmen und die Softwareentwicklung erläutern und den Unterschied zwischen "Community-maintained" und "Team-maintained" Inner Source erklären. Dabei zeige ich auf, warum eine zentrale Plattform für die Entstehung von Community-maintained Inner-Source-Projekten unerlässlich ist und welche Eigenschaften wir dieser Plattform gegeben haben.

Abschließend werde ich enthüllen, wie Inner Source eine Brücke zu Open Source schlägt und einige konkrete Inner-Source-Projekte vorstellen. Seien Sie gespannt und lassen Sie sich inspirieren, wie Inner Source die Zukunft der Softwareentwicklung bei der Deutschen Bahn vorantreibt!

Carsten Hoffmann

April 23, 2024
Tweet

More Decks by Carsten Hoffmann

Other Decks in Programming

Transcript

  1. Inner Source @ DB Eine Geschichte über Open-Source-Praktiken im DB

    Konzern Carsten Hoffmann @ JAX | DB Systel GmbH | 25. April 2024
  2. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 2 Comic: Courtesy Victoria Drake Source: https://victoria.dev/blog/how-to-choose-and-care-for-a-secure-open-source-project/
  3. DB Softwareentwicklung in Zahlen Lines of Code >450 M aktive

    Git Repositories in zentraler GitLab-Instanz >50.000 User in GitLab >10.000 ~22% Inner-Source-Anteil der Git-Projekte GitLab-Gruppen >13.000 Carsten Hoffmann @ JAX | DB Systel GmbH | 25. April 2024
  4. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 4 Historie Inner Source@DB 1999 2002 2006 2011 2016 2021 Erstes Inner-Source- Projekt zur Einführung von Java Start der Komponentenbibliothek KOLT in CVS Management gibt Anweisung DB Systel interne Projekte als Inner Source zu veröffentlichen Sechswöchiger Inner Source Workshop GitLab und Artifactory als Repositories für Inner-Source-Projekte ausgewählt Gründung des Thementeams Inner Source in der Architekturgilde der DB Systel GmbH 2017 Ich stoße dazu
  5. Inner Source — WARUM? Carsten Hoffmann @ JAX | DB

    Systel GmbH | 25. April 2024 Kultur der Zusammenarbeit Kostenreduktion Höhere Qualität Transparenz 5
  6. Inner Source — HINDERNISSE Carsten Hoffmann @ JAX | DB

    Systel GmbH | 25. April 2024 Getrennte Wirtschaftsunternehmen CI-Infrastruktur kostet Geld Trägheit und Unsicherheit 6
  7. Inner Source — HINDERNISSE Carsten Hoffmann @ JAX | DB

    Systel GmbH | 25. April 2024 Getrennte Wirtschaftsunternehmen CI-Infrastruktur kostet Geld Trägheit und Unsicherheit 7
  8. Problem: Getrennte Wirtschaftsunternehmen Lösung: Eine eigene Softwarelizenz Carsten Hoffmann @

    JAX | DB Systel GmbH | 25. April 2024 DB Inner Source Lizenz (DBISL) 8
  9. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 10 Problem: Getrennte Wirtschaftsunternehmen Lösung: Eine eigene Softwarelizenz DB Inner Source Lizenz (DBISL) Die DBISL ist Open-Source: github.com/dbsystel Nutzung im Konzern ohne Einschränkungen Quellcode ist für alle verfügbar Veränderungen möglich Weitergabe erlaubt 4 Freiheiten von Open-Source
  10. Inner Source — HINDERNISSE Carsten Hoffmann @ JAX | DB

    Systel GmbH | 25. April 2024 Getrennte Wirtschaftsunternehmen CI-Infrastruktur kostet Geld Trägheit und Unsicherheit 11
  11. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 12 Community-maintained vs. Team-maintained Inner Source Team Produkt Library (Inner Source) owns owns uses Maintainer Library (Inner Source) maintain Die Maintainer können unterschiedlichen Teams angehören
  12. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 13 Community-maintained vs. Team-maintained Inner Source Team Produkt Library (Inner Source) owns owns uses Maintainer Library (Inner Source) maintain Die Maintainer können unterschiedlichen Teams angehören uses
  13. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 14 Community-maintained vs. Team-maintained Inner Source Community- maintained Team- maintained Unabhängigkeit vom Produktlebenszyklus ✅ Unabhängig von der organisatorischen Entwicklung eines Teams ✅ Einfache Einbindung von Kollaborator:innen ✅ kein Commitment eines gesamten Teams nötig ✅ Finanzierung klar ✅ Infrastruktur und Tooling vorhanden ✅
  14. Problem: CI-Infrastruktur kostet Geld Lösung: Der InnerSourceHub Carsten Hoffmann @

    JAX | DB Systel GmbH | 25. April 2024 15 InnerSourceHub als Plattform für Inner- Source-Projekte • Zentrale GitLab Gruppen für Community- Maintained Inner-Source-Projekte • Kostenlose CI-Pipelines und Artefakt- Repositories (zentral finanziert) • Einfaches Setup • Das Thementeam InnerSource ist Maintainer des Hubs • Teams-Kanal als zentrale Anlaufstelle
  15. Inner Source — HINDERNISSE Carsten Hoffmann @ JAX | DB

    Systel GmbH | 25. April 2024 Getrennte Wirtschaftsunternehmen CI-Infrastruktur kostet Geld Trägheit und Unsicherheit 16
  16. Problem: Trägheit und Unsicherheit Lösung: Ein Architekturprinzip Carsten Hoffmann @

    JAX | DB Systel GmbH | 25. April 2024 Neue Repositories stellen wir innerhalb der DB lesend für interne Mitarbeitende zur Verfügung 18
  17. Inner Source — HINDERNISSE Carsten Hoffmann @ JAX | DB

    Systel GmbH | 25. April 2024 Getrennte Wirtschaftsunternehmen CI-Infrastruktur kostet Geld Trägheit und Unsicherheit 19
  18. Warum nicht gleich Open Source? Carsten Hoffmann @ JAX |

    DB Systel GmbH | 25. April 2024 Aspekte, die gegen die unmittelbare Veröffentlichung als Open-Source-Projekt sprechen • Unsicherheit der Entwickler:innen • Geschäftsgeheimnisse • Abhängigkeit zu interner Infrastruktur 20
  19. Inner Source als Brücke zu Open Source Carsten Hoffmann @

    JAX | DB Systel GmbH | 25. April 2024 Ist ein Projekt erst einmal Inner Source, kann es sich leichter zu einem Open-Source-Projekt entwickeln • Beispiel: Borg (Google) • Beispiel: DB UI DB UI auf GitHub: https://github.com/db-ui
  20. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 22 DB UI auf GitHub: https://github.com/db-ui
  21. Beispiele Carsten Hoffmann @ JAX | DB Systel GmbH |

    25. April 2024 Ein Einblick in unsere Inner Source Projekte 23
  22. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 24 Beispiel: DB Container Lib Community Maintained Das Projekt • Sammlung von Dockerfiles • Gebaut für den produktiven Betrieb • Große Vielfalt an Distributionen und Tools • Renovate als fleißigster Mitarbeiter Inner Source Patterns • Große Menge an Nutzern • Diverse Community an Maintainern • Anpassung an DB Compliance • Eigener Teamskanal für die Kommunikation in der Community ü Kostenreduktion ü Kultur der Zusammenarbeit ü Höhere Qualität
  23. Das Projekt • Modulare GitLab CI Pipelines • ~ 200

    Module • Plattformteam • Supportmodell Carsten Hoffmann @ JAX | DB Systel GmbH | 25. April 2024 26 Beispiel: Pipeship Team Maintained Inner Source Patterns • Bugfixing und Features direkt durch die nutzenden Teams • Issues sind transparent • Contribution Guidelines • Heavy Contributor zur DB Container Lib ü Höhere Qualität ü Kultur der Zusammenarbeit
  24. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 27 Beispiel: k8s-setup Community Maintained Das Projekt • Infrastructure as Code (helmfile) • Setup für Kubernetes Namespace • Abhängigkeiten zu anderen DB internen Tools und Regelwerken • Zweiteilig (Basis und ForkMe-Projekt) • Wird als Tool von unseren DevOps- Coaches eingesetzt Inner Source Patterns • Forks dienen als Beispiel für den eigenen Fork • Forks sind dank DBISL wieder Inner Source • Nutzer beteiligen sich durch Issues und Merge Requests ü Kostenreduktion ü Kultur der Zusammenarbeit
  25. Carsten Hoffmann @ JAX | DB Systel GmbH | 25.

    April 2024 28 Beispiel: Microsite der Architekturgilde Das Projekt • Docs-as-Code • Verbindliche Regelwerke und unverbindliche Empfehlungen • Basiert auf Doctoolchain (danke Ralf!) Inner Source Patterns • Änderungen sind transparent in der Commithistorie nachvollziehbar • Betroffene Teams können Formulierungsverbesserungen direkt selbst per MergeRequest vorschlagen • SLA für die Reaktion auf Issues und MRs (max. 1 Woche) ü Transparenz ü Kultur der Zusammenarbeit Team Maintained
  26. Und nun? Carsten Hoffmann @ JAX | DB Systel GmbH

    | 25. April 2024 InnerSource Commons 29 innersourcecommons.org
  27. Kontakt Carsten Hoffmann Architekturschaffendes DevOps-Teammitglied Mitglied im Thementeam Inner Source

    DB Systel GmbH [email protected] @[email protected] www.linkedin.com/in/morl99 Slides und mehr im Blog: techstories.dbsystel.de