Schnips: Hier ist unser Tech-Stack
9.1.2023
Co-Autor: Norina Brun
Bei Digitec Galaxus entwickeln wir unsere Onlineshops und unser ERP-System selbst. Unser Tech-Radar zeigt, mit welchen Techniken, Werkzeugen, Plattformen und Programmiersprachen wir das tun und welche möglicherweise bald zum Einsatz kommen.
Unsere Kundinnen und Kunden kennen die Shops digitec.ch und galaxus.ch. Für unsere Crews in der Softwareentwicklung stellen die Shops aber «nur» die Spitze des Eisbergs dar. Unter dem Wasser verbirgt sich ein breites technisches Fundament, das wir kontinuierlich an neue Umstände anpassen. So haben wir beispielsweise Apache Kafka eingeführt, um die immer grösser werdenden Datenmengen einfacher verteilen zu können und wechselten von ASP.NET MVC auf den React Stack, um die Ladezeiten der Onlinshops zu verringern. Bei Digitec Galaxus entwickeln wir aber auch unser ERP-System selbst. Während die drei Gründer bei der Firmengründung 2001 das System noch selbst entwickelt haben, ist mittlerweile das Product Development mit rund 300 Mitarbeitenden dafür zuständig.
Seit 2017 hilft uns der Tech-Radar dabei, unsere breite Technologie-Landschaft im Überblick zu behalten und dient unseren Teams als wichtiger Wegweiser. Orientiert haben wir uns am Tech-Radar von Thoughtworks; wir verwenden demnach auch ihr Framework. Die Tech-Firma Thoughtworks nennt die Punkte auf dem Radar «interessante Dinge» und hat sie «Blips» getauft. Marvel-Fans kommt der Begriff bekannt vor. Die Zeitspanne zwischen dem Schnippen von Thanos, das die Hälfte der Lebewesen im Universum auslöschte, bis Hulk sie wiederherstellte wird als Blip bezeichnet.
Die Ringe Trial, Hold, Adopt und Specific stellen unterschiedliche Lebenszyklen der Blips in unseren Arbeitsprozessen und unserer Systemlandschaft dar. Sie haben folgende Bedeutung:
Trial
Blips, die in kleinem Massstab getestet werden, um zu beurteilen, ob sie «übernommen» werden können. In der Regel werden sie von ein bis zwei Teams eingesetzt und getestet. Unsere Software Engineers können also davon ausgehen, dass intern zumindest erste Erfahrungswerte mit diesem Blip vorhanden sind.
Ein Beispiel dafür ist Blazor, mit dem wir ein Proof-of-Concept gemacht haben und das wir Anfang 2023 planen in unserer Logistik einzusetzen um schnellere Benutzeroberflächen bereitzustellen.
Hold
Das sind Blips, die wir in Zukunft nicht mehr verwenden wollen. Wir setzen sie zwar noch ein, für neue Projekte sollen sie aber vermieden werden.
Aktuell steht Grafana auf hold, da wir neu unsere Metriken mit Datadog sammeln und es deshalb durch Datadog-Dashboards ablösen möchten.
Adopt
Darunter verstehen wir Blips, die weit verbreitet sind bei uns. Teams können bei Fragen und Problemen auf breites Know-how innerhalb der Firma zählen. Viele dieser Blips werden von unseren Plattformteams betrieben und weiterentwickelt. Die dazugehörige Infrastruktur können wir (mehr oder weniger) auf Knopfdruck bereitstellen.
Wir setzen beispielsweise schon lange auf Continuous Deployment. Das heisst, dass wir Änderungen am Code automatisch in Produktion deployen. Ausserdem halten wir viel von Pair- und Mob-Programming, das alle Teams bei Bedarf einsetzen.
Specific
Das sind Blips, deren Stärken wir für spezifische Einsatzszenarien in wenigen Teams verwenden. In der Breite kommen diese Blips aber nicht zum Einsatz.
Ein prominentes Beispiel hier ist Elasticsearch, das vor allem für unsere Suche im Onlineshop zum Einsatz kommt.
Kreis vs. Dreieck
Jedes Blip wird entweder als Dreieck oder Kreis dargestellt. Dreiecks-Blips haben seit der letzten Aktualisierung des Tech-Radars den Ring gewechselt. Sie sind also in einen anderen Lebenszyklus übergegangen oder sind neu auf dem Radar. Kreis-Blips haben ihre Position nicht geändert.
Diese Programmiersprachen sind im Einsatz
Bis heute setzen wir stark auf .NET: Rund 80% des Codes unserer rund 60 operativen Dienste ist in C# geschrieben und praktisch alle laufen in Microsoft Azure. Sie unterstützen unsere Einkäufer, Logistikerinnen und Crews in den Filialen bei ihrer Arbeit und betreiben unsere Onlineshops. C# wird von Microsoft in hohem Tempo ständig weiterentwickelt und öffnet sich der Open-Source-Gemeinschaft. Das stimmt uns auch für die Zukunft positiv. Wir bleiben am Ball und planen aktuell den Umstieg aller Systeme auf C# 11 und .NET 7.
Der zweitgrösste «Player» der Programmiersprachen in unserem Tech-Stack ist TypeScript mit einem Anteil von knapp 8%. Er kommt im Frontend unserer Onlineshops zum Einsatz. Auch weitere Programmiersprachen wie GoLang oder PHP sind im Einsatz, fristen aber ein Nischendasein.
(Fast) nichts schlägt Azure
Solange es kein gutes Gegenargument gibt, betreiben wir einen Dienst in Azure. Eine Ausnahme ist dabei unsere Datenplattform. Sie läuft in der Google Cloud. Hauptsächlich weil uns Google dort BigQuery Features bietet, die wir in anderen Clouds nicht gefunden haben. Mit der Datenplattform erstellen wir Analysen, um strategische Entscheidungen zu fällen und um unsere Machine-Learning-Modelle, die in verschiedensten Szenarien zum Einsatz kommen, zu trainieren. Hier setzen wir grösstenteils Python ein, weil es in diesem Bereich weit verbreitet ist und entsprechend viel Open-Source-Tooling vorhanden ist.
Daneben nutzen wir eine Vielzahl an Tools, Frameworks und Cloud-Services. Durch unsere agile und experimentierfreudige Arbeitsweise kommen regelmässig neue hinzu oder vorhandene werden entfernt.
Der Tech-Radar lebt
Einmal pro Quartal aktualisiert Team Q - ein Enabling Team gemäss dem Konzept der Team Topologies - unseren Tech-Radar. Wir suchen übrigens Verstärkung, hier geht's zu unserer offenen Stelle.
Welche Blips sollten wir uns unbedingt anschauen? Welche setzt ihr bei euch ein und habt damit gute Erfahrungen gemacht? Schreibt eure Fragen und Inputs zum Tech-Radar oder unserem Tech-Stack in die Kommentare.
Nicolas Lefebvre
Lead Software Architect
Nicolas.Lefebvre@digitecgalaxus.chAls erster Vollzeit-Entwickler schon etwas länger bei Digitec Galaxus war ich unter anderem Teamleiter von Goldfinger und Bender! und Leiter der Architekturgilde (das A-Team).
Mittlerweile bin ich zusammen mit unseren Domain Architects nur noch Hüter des Elfenbeinturms. Als Enabling Team treiben wir die Soll-Architektur voran, arbeiten während der Umsetzung eng mit den Entwicklerteams zusammen und bilden das Architektur-Review-Board.
Wegen meiner unvorstellbaren Buildbreaks und piratischen Haifisch-Deploys am Freitagnachmittag nennen sie mich auch 🅷🅰🅲🅺🅴🆁🅼🅰🅽.
Tech
Folge Themen und erhalte Updates zu deinen Interessen