Multirepo vs. Monorepo: Infomaniak teilt seine Erfahrungen bei der Wahl seiner Entwicklungsstrategie mit

1. Von Monorepo zu Multirepo: Die Entwicklung des Webhostings von Infomaniak
Hosting V1: Das einzigartige Hosting-Angebot von Infomaniak
Ende der 1990er-Jahre wurde die Plattform Hosting V1 lanciert. Sie war das erste Hostingangebot von Infomaniak überhaupt.
Die erste Plattform basierte auf einer monolithischen Architektur. Dies bedeutet, dass die gesamte Anwendung als ein einziger Softwareblock entwickelt wird. Diese Architektur war bei ihrer Entstehung Standard in unserer aufstrebenden Branche. Sie war auf die Bedürfnisse des Entwicklungsteams zugeschnitten und eignete sich für unseren seinerzeit niedrigeren Datenverkehr, ermöglichte jedoch gleichzeitig ein angemessenes Entwicklungstempo.
Hosting V2: Das aktuelle Webhosting und WordPress
2013 lancierten wir unser aktuelles Hostingangebot mit der Plattform Hosting V2. Auch diese Plattform basiert auf einer monolithischen API, die allen Infomaniak-Produkten gemein ist.
In dieser Zeit begann der Siegeszug der Microservice-Architektur, obschon wir damals entschieden, diese neue Plattform nicht gleich zu übernehmen. Denn dies hätte massive Weiterentwicklungen unserer Verfahren vorausgesetzt:
Dieser Umschwung kam zu früh, denn damals fehlten waren die Hilfsmittel für die Umsetzung einer solchen Architektur unzureichend. Für ein Team mit der Grösse des Infomaniak-Teams verringerten sie die Komplexität nicht, sondern brachten noch mehr Komplexität mit sich.
2024 zählen wir sechsmal so viele Beschäftigte wie damals, sodass inzwischen ganz neue Perspektiven möglich sind und neue Bedürfnisse spürbar sind.
Hosting V3: Die nächste Hostingplattform von Infomaniak
Die künftige Hostingplattform befindet sich in der Entwicklung und wird auf einer Multi-Microservice-Architektur basieren.
Es handelt sich um eine ehrgeizige und komplexe Übergangsphase, die es ermöglichen wird, die Herausforderungen der Zukunft zu meistern und neue Hostingdienste zu entwickeln. Diese Weiterentwicklung knüpft an alle Bereiche an und betrifft sowohl die Schnittstelle als auch die Cloud-Architektur im Hintergrund.
Wir wollen unsere Fähigkeit bewahren, unsere Ideen rasch in Produkte für unsere Kundinnen und Kunden umzuwandeln. Die neue Architektur bietet das notwendige Tempo, um das Wachstum zu unterstützen und künftige Bedürfnisse vorwegzunehmen. Julien Viard, VP of Engineering bei Infomaniak
2. Umsetzung der Umstellung von Monorepo auf Multirepo
Von der Monorepo-Architektur mit Hosting V2…
Angesichts des Wachstums von Infomaniak, der Entwicklung neuer Produkte und der Erweiterung unserer Teams stösst die ursprünglich für Hosting V1 und Hosting V2 gewählte monolithische Architektur heute an ihre Grenzen. Sie wird unserer Organisationsstruktur und den heutigen Bedürfnissen immer weniger gerecht. Deshalb entwickeln wir die künftige Hosting-Plattform (Hosting V3) mit einer neuen Microservices-Architektur.
Mit der Monorepo-Architektur der Hosting-Plattform V2:
Zusammenfassend lässt sich sagen, dass diese Architektur die Aktualisierung eines Teils der Dienste erschwert, ohne dass sich dies auf die Gesamtheit der Projekte auswirkt. Das wiederum beeinträchtigt die Geschwindigkeit eines Ökosystems, das viele gegenseitige Abhängigkeiten enthält. Die Weiterentwicklung der beiden grossen Monolithen Infomaniak Manager und Infomaniak Legacy ist komplex, da sie sich auf alle unsere Dienste auswirken. Doch nach der laufenden Überarbeitung (Hosting V3) werden wir mehrere Microservices haben, die einfacher zu aktualisieren sein werden.
Eine monolithische Architektur ist vergleichbar mit einem Gebäude: Wird die Heizung ausgetauscht, wirkt sich das auf das gesamte Gebäude aus. Microservices hingegen sind wie Einfamilienhäuser: Wird die Heizung ausgetauscht, bleiben die benachbarten Häuser davon unberührt. Matthieu Mabillard, Team Lead Developer
…zur Multirepo-Architektur mit Hosting V3
Hosting V3 verkörpert eine grundlegende Überarbeitung unserer Architektur. Besonderheiten der neuen Architektur:
Diese Aufteilung in Microservices ermöglicht, Abhängigkeiten zwischen Microservices zu verringern und die technische Schuld in den Griff zu bekommen. Wir haben die volle Kontrolle über die Bereitstellung und den Lebenszyklus unseres Codes – ob der neue Code oder der Legacy Code. Dieser Ansatz ermöglicht uns, ein hybrides Modell einzusetzen, das Tempo und Skalierbarkeit in einem bietet.
Besonders geeignet ist diese Architektur für Umgebungen mit stark verteilter Ausführung. Sie bietet eine hohe Resilienz, eine hohe Redundanz und eine ausgeprägte Anpassungsfähigkeit an Lastschwankungen. Matthieu Mabillard, Team Lead Developer
Von Monorepo zu Multirepo: Gute Vorbereitung der Teams gefragt
Im Rahmen dieser Umstellung setzen wir Massnahmen um, um die Annahme gemeinsamer Standards zwischen den Teams zu fördern und den Austausch zwischen Fachleuten zu intensivieren, und zwar mit:
3. Monorepo oder Multirepo: Strategische Entscheidung für das Unternehmen
Die Methode des Codemanagements hat weitreichende Auswirkungen, die sich nur schwer rückgängig machen lassen. Folglich bedürfen Entscheidungen und Strategien reiflicher Überlegung.
Vorteile des Multirepo-Ansatzes
Im Zusammenhang mit der zukünftigen Hostingplattform ermöglicht der Multirepo-Ansatz den Einsatz neuester Technologien, ohne auf weitere Projekte des Unternehmens warten zu müssen. Auch die Rechteverwaltung ist präziser: Der Zugriff auf die Codebasis wird akkurat kontrolliert, auch beim Lesen. Es ist klar geregelt, wer was tut. Das erleichtert die Übertragung der Verantwortung für einen Microservice von einem Team auf das andere und sogar die Umstrukturierung des DEV-Bereichs.
Die Multirepo-Architektur ermöglicht den Teams, sich stärker zu spezialisieren, indem die Verantwortlichkeiten eindeutig aufgeteilt und jedem Projekt spezifische Technologien zugewiesen werden. Matthieu Mabillard, Team Lead Developer
Die Teams werden eigenständiger: Die Aufteilung der Verantwortlichkeiten erhöht die Effizienz der Teams, die sich auf ihren eigenen Microservice konzentrieren können, da ihr Repository unabhängig von anderen ist. Das bedeutet mehr Unabhängigkeit in Bezug auf:
Auch das Experimentieren mit neuen Projekten ist einfacher: Multirepo beschleunigt die Entwicklung sogenannter Proofs of Concept (POC), die unabhängig von anderen Branchen entstehen können. So kann die Machbarkeit einer Idee rasch validiert werden. Das Tempo ist bei jedem Projekt anders: Jede Abteilung des Hostingteams kann ihren Entwicklungszyklus beschleunigen oder optimieren und ihre eigenen Akzeptanzkriterien festlegen, ohne von den potenziellen Auswirkungen auf andere gebremst zu werden.
Multirepo vereinfacht Open-Source-Beiträge: Der Basiscode wird reduziert, und die Segmentierung der Dienste ermöglicht, bestimmte Teile des Codes zu veröffentlichen und andere nicht, etwa aus Gründen der Sicherheit oder des Schutzes des industriellen (Betriebs-)Geheimnisses.
Dies beschleunigt Entwicklungszyklen: Die Umsetzung erfolgt schneller als bei unseren Monorepo-Projekten. Beim Hosting V3 wird jede Komponente entkoppelt, während der Build des Webmail als Monorepo länger ist.
Das kann auch grossen Einfluss auf die Einstellung haben:
Attraktive Technologiestacks mit angemessener Lernkurve sind ein entscheidender Faktor, um Talente anzuziehen. Niemand begeistert sich für Unternehmen, das die technische Schuld durch Technologien erhöht, die nirgendwo gelehrt werden. Julien Viard, VP of Engineering bei Infomaniak
Die Grenzen eines Multirepo-Ansatzes
Multirepo erfordert mehr Rigorosität, um die Entwicklung eines Microservice mit anderen zu synchronisieren:
4. Monorepo oder Multirepo: Welches ist die richtige Wahl für Ihre Entwicklerteams?
Diese Entscheidung erfordert einen internen Reflexionsprozess zu mehreren Aspekten:
Hier sind weitere Fragen, die bei der richtigen Entscheidung helfen können:
Unter Berücksichtigung der Abstimmung zwischen den Kompetenzen, den Mitteln und der Phase, in der sich Ihr Unternehmen befindet, sollten Sie nun mehr Klarheit bei der Wahl der bestmöglichen Architektur für Ihre Weiterentwicklung haben. Diskutieren Sie mit uns auf X oder Linkedin und beziehen Sie sich auf diesen Artikel.
Infomaniak ist ein Schweizer Unternehmen mit mehr als 250 in der Schweiz tätigen Mitarbeitenden, die knapp zur Hälfte europäische Ausbildungszweige durchlaufen haben. Das Unternehmen setzt sich für die Privatsphäre, die lokale Wirtschaft und den Umweltschutz ein und entwickelt eine Suite von Tools für die Online-Zusammenarbeit sowie Lösungen für Cloud-Hosting, Streaming, Marketing und Veranstaltungen.
Infomaniak verwendet ausschliesslich erneuerbare Energie, baut seine eigenen Rechenzentren und entwickelt seine Lösungen in der Schweiz, ohne Standortverlagerung. Als von der ICANN akkreditierter Registrar werden die Lösungen von Infomaniak von Millionen von Nutzern verwendet. Das Unternehmen treibt unter anderem die Website des belgischen Radios (RTBF) voran und sorgt für das TV- und Radio-Streaming von über 3000 Radio- und Fernsehstationen in Europa.
Sie erhielt 2023 den Schweizer Ethikpreis und den Nachhaltigkeitspreis des Kantons Genf für ihr neues Datenzentrum, das die Energie, die es verbraucht, um 6000 Haushalte das ganze Jahr über zu heizen, vollständig verwerten wird.
Infomaniak Network AG
Technoparkstrasse 3
CH8406 Winterthur
Telefon: +41 22 820 35 40
https://www.infomaniak.com