So hat Siemens mit GitLab eine Open-Source-DevOps-Kultur geschaffen
Möchtest du sehen, was GitLab Ultimate für dein Team tun kann?
Siemens nutzt GitLab, um die Effizienz der Entwickler(innen) und die Zufriedenheit der Kund(inn)en zu steigern
Das Unternehmen hat dank GitLab SCM, CI/CD und DevOps die Zusammenarbeit und den organisatorischen Workflow transformiert.
Globaler Innovationspionier
Siemens wurde 1847 als „Hinterhof-Maschinenwerkstatt“ in Berlin gegründet. Die Siemens AG mit Sitz in Berlin und München ist ein globaler Technologieriese, der seit über 170 Jahren für technische Exzellenz, Innovation, Qualität, Zuverlässigkeit und Internationalität steht. Das weltweit tätige Unternehmen ist auf intelligente Infrastruktur für Unternehmen, dezentrale Energiesysteme und Automatisierung und Digitalisierung in der Prozess- und Fertigungsindustrie spezialisiert.
Siemens bringt die digitale und die physische Welt zusammen, um den Kund(inn)en und der Gesellschaft zu helfen. Mit Mobility, einem führenden Anbieter von intelligenten Mobilitätslösungen für den Schienen- und Straßenverkehr prägt Siemens den Weltmarkt des Personen- und Güterverkehrs mit. Über die Mehrheitsbeteiligung am börsennotierten Unternehmen Siemens Healthineers ist Siemens zudem ein weltweit führender Anbieter von Medizintechnik und digitalen Gesundheitsdiensten.
Darüber hinaus hält Siemens eine Minderheitsbeteiligung an Siemens Energy, einem weltweit führenden Unternehmen für Stromübertragung und -erzeugung, das seit 28. September 2020 an der Börse notiert ist. Im Geschäftsjahr 2019, das am 30. September 2019 endete, erzielte die Siemens Group einen Umsatz von 58,5 Milliarden € und einen Gewinn von 5,6 Milliarden €. Das Unternehmen beschäftigte mit Stichtag 30. September 2019 in seinen weltweiten Niederlassungen rund 295.000 Mitarbeitende.
Großes Unternehmen mit großem Bedarf
Siemens beschäftigt über 20.000 Entwickler(inne)n, die auf verschiedene Unternehmen verteilt sind und in verschiedenen Bereichen hauptsächlich für Business-to-Business-Initiativen tätig sind. Laut Fabio Huser, Softwarearchitekt, sah die Herausforderung so aus: „Wie bauen wir eine DevOps-Kultur in dieser wirklich verteilten, föderalistischen Unternehmensstruktur auf?“
Siemens benötigte eine DevOps-Plattform, die Zusammenarbeit, Transparenz und eine ordentliche Codeverwaltung ermöglichte, um sein Ziel zu erreichen: eine Community für die Mitarbeitenden auf der ganzen Welt aufzubauen und eine Single Source of Truth für den Code zu haben. Damit ein Tool erfolgreich sein kann, mussten die Entwickler(innen) bei Siemens kollaborativ denken, mit der Fullstack-Entwicklung vertraut werden, Erfahrungen als Open-Source-Mitwirkende haben und eine skalierbare Platzform nutzen, die verwendet werden kann, um auf sich selbst aufzubauen. Bei der Vision eines verbesserten Workflows wünschte man sich die Möglichkeit, gemeinsam an Code zu arbeiten und diesen innerhalb von Minuten zu teilen, die Markteinführungszeit zu verkürzen, den Mitarbeitenden die Möglichkeit zu geben, für ihren eigenen Code verantwortlich zu sein und die technischen Grundlagen für zukünftige Geschäftsmodelle zu bieten.
Erste Schritte mit Open Source
Ein kleines Team von Siemens führte GitLab 2013 ein, um bei der Entwicklung Linux-basierter eingebetteter Geräte zusammenzuarbeiten und eine Versionskontrolle zu haben. Im Sinne eines typischen Grassroots-Ansatzes weitete das Team die Plattform dann auf das ganze Unternehmen aus und skalierte sie auf über 40.000 Benutzer(innen). Die DevOps-Plattform war nun ein Ort, an dem verschiedene Teams am gleichen Projekt zusammenarbeiten, Code innerhalb von Minuten teilen und ganz einfach auf der ganzen Welt zusammenarbeiten konnten.
„Die Open-Source-Welt entwickelt jede Woche neue Tools. Aber letztendlich versuchen wir wirklich, das Ganze wie ein menschliches Problem zu lösen. Wir wollen zusammenarbeiten, und welches Tool man dafür nutzt, ist schließlich nur Nebensache“, sagte Huser. „Dank GitLab haben wir ein Tool gefunden, das diese Ideologie ermöglicht. Es geht um die Menschen dahinter. Will man diese Idee beibehalten und auch den Gemeinschaftssinn innerhalb von Siemens leben lassen, muss man wirklich eine solche Community aufbauen.“
2015 verlagerte das code.siemens.com-Team seinen Fokus auf CI/CD mit DevOps, wobei der spezifische Workflow-Style im Unternehmen anfangs „Junkyard Computing“ (Schrottplatz-Programmierung) genannt wurde, um Integrations-Builds für Open-Source-Komponenten zu ermöglichen. „Dank der einfachen Bedienung des GitLab-Runner kann man neue Maschinen in wenigen Minuten einrichten“, so Huser. „Wenn du alte Maschinen herumliegen hast und du gut genug in Bezug auf das Netzwerk aufgestellt bist, kannst du buchstäblich in einer Minute neue Runner und neue Funktionen einrichten. Das ist ziemlich kosteneffizient.“
Code, Zusammenarbeit und Community
Heute hat code.siemens.com seine IT-Infrastruktur auf AWS. Das „Junkyard Computing“ hat ausgedient, da code.siemens.com ein vollständig etablierter Service mit einer großen internen Entwickler(innen)-Community ist, der von der IT-Organisation von Siemens bereitgestellt wird.
Die Infrastruktur entwickelte sich zu einem äußerst fein abgestimmten, ausgefeilten Setup mit zahlreichen EC2-Instanzen, die alle als Infrastructure as Code verwaltet werden. Auch SaaS-Lösungen wie S3, RDS, ElastiCache, EFS und ELB werden verwendet, da diese durch standardmäßige Open-Source-Lösungen ersetzt werden können, um den Anbieterzwang zu minimieren. GitLab wird auf AWS gehostet, das auch Services wie CI-Runner, Überwachung, Protokollierung, Absturzberichte und mehr von GitLab unterstützt. Siemens hat seit der Einführung von GitLab mehr als 38 Millionen CI-Builds erstellt. „Wenn du zu Siemens gehörst, hast du verschiedene Repositories, mit denen du zusammenarbeiten kannst. Wir bemühen uns sehr, eine Open-Source-Kultur einzuführen, und bisher waren wir wirklich erfolgreich. Mit CI/CD haben wir jeden Monat 1,5 Millionen Builds. Die ganze Kultur hat sich völlig verändert“, sagte Huser.
Mit GitLab spart Siemens sowohl Zeit als auch Geld, da keine lokalen Patches mehr gepflegt oder Fixes manuell aktualisiert werden müssen. Das code.siemens.com-Team verfolgt einen „Upstream-First“-Workflow. „Wir verzichten auf Patches. Wir stellen nur Upstream-Versionen bereit, sonst nichts. Wenn wir neue Funktionen haben möchten, tragen wir sie in GitLab bei. Wir patchen unsere Instanz nicht“, erzählt Roger Meier, Principal Key Expert und Service Owner von code.siemens.com von Siemens IT. „Sobald sie upstream zusammengeführt werden, stellen wir die nächste Version bereit. So liefern wir jeden Monat. Wir führen etwa vier Produktionsbereitstellungen pro Monat durch.“
Die Plattform code.siemens.com wird von einem Team aus nur acht Mitarbeitenden in vier Ländern auf äußerst agile Weise verwaltet. Alle Teammitglieder stehen voll hinter der Open-Source-Arbeitsweise. Sie coachen, unterstützen und leiten die interne Entwickler(innen)-Community und verwalten zusätzlich die gesamte Infrastruktur und Anwendung. Sie verwenden GitLab täglich, um alle ihre Aktivitäten zu verwalten. Alle Teammitglieder tragen zu mehreren Open-Source-Projekten bei und/oder pflegen diese und bieten dabei einen zuverlässigen Service für die weitere Entwickler(innen)-Community von Siemens, um die Zufriedenheit der Entwickler(innen) zu steigern.
Die Zusammenarbeit erfolgt im gesamten Unternehmen mit über 40.000 GitLab-Benutzer(inne)n – und der Möglichkeit, dass es noch mehr werden. GitLab hilft Siemens, die Skalierbarkeit intern und bei Entwicklungsmöglichkeiten von Kund(innen) zu gewährleisten. „Unsere Kund(inn)en und unsere Entwickler(innen) wollen einfach einen zuverlässigen Service, der ständig verfügbar ist“, fügte Meier hinzu.
Die Siemens-Teams tragen mit über 150 zusammengeführten MRs in GitLab erheblich zu GitLab bei. Darüber hinaus sind Huser und Meier GitLab Heroes und wurden als GitLab MVPs ausgewählt. Die Teams nutzen nicht nur die DevOps-Plattform, sondern sind auch stolz darauf, so kompetent zu sein, dass sie kein Support-Team von GitLab benötigen. „Von Anfang an haben wir über alle unsere Ideen gesprochen und unsere Roadmap für alle Mitarbeitenden im Unternehmen sichtbar gemacht. Miteinander reden ist der Schlüssel. Natürlich muss man sich auf seine Kund(inn)en konzentrieren: für Entwickler(innen), von Entwickler(inne)n“, sagte Meier.
Alle Informationen und Personen, die an der Fallstudie beteiligt waren, waren zum Zeitpunkt der Veröffentlichung korrekt.