Slide 1

Slide 1 text

Inner Source @ DB Eine Geschichte über Open-Source-Praktiken im DB Konzern Carsten Hoffmann @ JAX | DB Systel GmbH | 25. April 2024

Slide 2

Slide 2 text

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/

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Problem: Getrennte Wirtschaftsunternehmen Lösung: Eine eigene Softwarelizenz Carsten Hoffmann @ JAX | DB Systel GmbH | 25. April 2024 DB Inner Source Lizenz (DBISL) 8

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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 ✅

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

Und nun? Carsten Hoffmann @ JAX | DB Systel GmbH | 25. April 2024 InnerSource Commons 29 innersourcecommons.org

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

DB Systel Digital. Empowered.