In Entwicklung Letztes Updateated:
Teilen:
Jira-Software ist das Projektmanagement-Tool Nr. 1, das von agilen Teams zum Planen, Verfolgen, Freigeben und Unterstützen großartiger Software verwendet wird.

Mono-Repo und Multi-Repo sind zwei Hauptsträngeategies zum Hosten und Verwalten von Code über Git. Wir besprechen sowohl die Strategies und ihre Vor- und Nachteile im Detail.

Einleitung

Die meisten modernen Projekte werden auf Git verwaltet und gehostet. Git ist zum Standard geworden platFormular zur verteilten Quellcodeverwaltung, Versionskontrolleund Zusammenarbeit von überall auf der Welt. Git ist schnell und effizient. Es gibt zwei Hauptansätze zum Hosten und Verwalten Ihres Git-Codes:

  • Mono-Repo
  • Multi-Repository

Bevor wir uns mit diesen Ansätzen befassen, wollen wir verstehen, wie Repo funktioniert.

Was sind Repos?

Ein Repository (Repo) enthält alle Ordner und Dateien Ihres Projekts. Es enthält auch Informationen zu Benutzern, Personen und Computern.

Die Repository-Daten sind versioniert. Ein Repository kann einer Einzelperson oder einer Gruppe von Teammitgliedern gehören.

Git ist ein Repository. Es kann öffentlich oder privat seinate, oder internal. GitHub ist ein Hosting-Service des Git-Repositorys und hat eine Benutzeroberfläche.

Git bietet Versionskontroll- und Code-Sharing-Funktionen. Der Unterschied zu Git besteht jedoch darin, dass Entwickler, wenn sie einige Änderungen an ihren Dateien vornehmen möchten, das gesamte Repository auf ihr lokales System kopieren können. Selbst wenn ein Entwickler keinen Schreibzugriff auf ein bestimmtes Projekt hat, kann er daher den Inhalt kopierenally und ändern Sie sie (Forking genannt).

Wenn der Entwickler außerdem loc teilen möchteally Wenn Sie Änderungen vorgenommen haben, können Sie eine „Pull-Anfrage“ an den Eigentümer des Projekts senden.

Ein Projekt kann einen einzelnen Dienst haben. Wenn Ihr Projekt hat mehrere workflows, Sie können Create mehrere Dienste für jeden Workflow. Die meisten Entwickler bevorzugen die Aufteilung größerer Projekte in kleinere unabhängige Dienste mit einer oder mehreren Funktionen. Jeder Dienst kann verschiedene Geschäftsprobleme lösen. Mit der Popularität von serverlose Frameworks, Benutzer können auf Funktionen als Dienste zugreifen.

Sobald Sie Create Wenn Sie diese Funktionen als Dienste nutzen und bereitstellen, besteht der nächste Schritt darin, sie zu strukturieren und eine Versionskontrolle durchzuführen – Sie können alle Ihre Dienste in einem Repository (Mono-Repo) haben – oder ein separates Repository habenate Repository für jeden Dienst, den Sie haben (Multi-Repo)!

Mono-Repo Multi-Repo

Was ist ein Mono-Repo?

Bei einem Mono-Repo-Ansatz können Sie alle Ihre Dienste in einem einzigen (Mono-)Repository aufbewahren. Sie können weiterhin jeden Dienst unabhängig bereitstellen und verwalten. Die Dienste können gemeinsame Bibliotheken und Code gemeinsam nutzen.

Unternehmen wie Facebook, Google usw Dropbox - Mono-Repo.

Vorteile von Mono-Repo

Der Mono-Repo-Ansatz hat viele Vorteile:

  • Ein einziger Ort zum Speichern des gesamten Projektcodes, auf den alle im Team zugreifen können
  • Einfache Wiederverwendung und gemeinsame Nutzung von Code sowie Zusammenarbeitate mit dem Team
  • Einfach zu verstehen impact Ihrer Änderung am gesamten Projekt
  • Beste Option für Code-Refactoring und große Codeänderungen
  • Teammitglieder können sich einen Gesamtüberblick über das gesamte Projekt verschaffen
  • Abhängigkeiten einfach verwalten

Nachteile von Mono-Repo

Natürlich hat Mono-Repo einige Nachteile, der größte ist die Leistung. Wenn Ihr Projekt grows und jeden zweiten Tag kommen weitere Dateien hinzu, das Auschecken, Pullen und andere Vorgänge können langsamer werden und die Dateisuche kann länger dauern.

Auch, wenn Sie viel einstellen unabhängige Auftragnehmer für Ihr Projekt ist es möglicherweise nicht so sicher, ihnen Zugriff auf die gesamte Codebasis zu gewähren.

Darüber hinaus ist es schwierig, Continuous Deployments (CD) zu implementieren, da viele Benutzer ihre Änderungen einchecken können und Ihr Continuous Integration (CI)-System möglicherweise mehrere Neuerstellungen durchführen muss.

Große Unternehmen, die Mono-Repos verwenden, verfügen über angepasste Tools, um die Skalierungsprobleme zu bewältigen. Facebook verwendet beispielsweise ein benutzerdefiniertes Dateisystem und eine Quellcodeverwaltung.

Was ist ein Multi-Repo?

Bei einem Multi-Repository-Ansatz gibt es mehrere Repositorys, die mehrere Bibliotheken und Dienste eines Projekts hosten. Wenn sich ein Dienst ändert, müssen Entwickler nur diesen Dienst und nicht das gesamte Projekt neu erstellen. Einzelpersonen und Teams können an ihren spezifischen Diensten arbeiten und erhalten nur Zugriff auf die erforderlichen Dienste.

Unternehmen wie Netflix und Amazon nutzen Multi-Repos.

Vorteile von Multi-Repo

Die Zahl der Unternehmen, die Multi-Repo einführen, ist aus folgenden Gründen weitaus höher als diejenigen, die sich für Mono-Repo entscheiden:

  • Jeder Dienst und jede Bibliothek haben ihre eigene Versionierung
  • Code-Checkouts und -Pulls sind klein und getrenntateDaher gibt es auch bei der Projektgröße keine Leistungsprobleme grows
  • Teams können unabhängig arbeiten und müssen nicht auf die gesamte Codebasis zugreifen
  • Schnellere Entwicklung und Flexibilität
  • Jeder Dienst kann separat freigegeben werdenateSie verfügen über einen eigenen Bereitstellungszyklus und erleichtern so die Implementierung von CI und CD
  • Bessere Zugriffskontrolle – nicht alle Teams müssen vollen Zugriff auf alle Bibliotheken haben – können aber bei Bedarf Lesezugriff erhalten

Nachteile von Multi-Repo

  • Die Abhängigkeiten und Bibliotheken, die dienst- und projektübergreifend verwendet werden, müssen regelmäßig sein synced, um das l zu bekommenatest-Version
  • Fördert irgendwann eine isolierte Kultur, die zu Duplikaten führtate Code und einzelne Teams versuchen es resolve das gleiche Problem
  • Jedes Team kann für seinen Code unterschiedliche Best Practices befolgen, was zu Schwierigkeiten bei der Befolgung gemeinsamer Best Practices führt

Unterschiede zwischen Mono und Multi Repo

Fassen wir noch einmal zusammenate Die Unterschiede zwischen Mono-Repo und Multi-Repo:

Mono-Repo Multi-Repository
Der gesamte Code aller Projekte einer Organisation befindet sich in einem zentralen Repository Jeder Dienst und jedes Projekt verfügt über eine separateate  Quelle
Teams können zusammenarbeitenate und zusammenarbeiten; Sie können die Änderungen des anderen sehen Teams können autonom arbeiten; individuelle Änderungen wirken sich nicht auf Änderungen anderer Teams oder Projekte aus
Jede Person erhält Zugriff auf die gesamte Projektstruktur Administratoren können die Zugriffssteuerung auf das Projekt oder den Dienst beschränken, auf das der Entwickler Zugriff benötigt
Bei gleichbleibender Projektgröße kann es zu Problemen bei der Skalierung kommen growIng. Gute Leistung aufgrund des begrenzten Codes und der kleineren Diensteinheiten
Schwierig zu implementieren Continuous Deployment (CD) und Continuous Integration (CI) Entwickler können CD und CI leicht erreichen, da sie Dienste unabhängig erstellen können
Entwickler können Bibliotheken, APIs und anderen allgemeinen Code während der Aktualisierung problemlos freigebenated im zentralen Repository Alle Änderungen an Bibliotheken und anderem allgemeinen Code sollten regelmäßig erfolgenally synced, um Probleme zu vermeiden later

Schlussfolgerung

Sowohl Mono-Repo als auch Multi-Repo sind gleichally Welche Version beliebter ist und welche besser ist, hängt von der Größe Ihres Projekts, den Projektanforderungen und dem Grad der Versionierung und Zugriffskontrolle ab, die Sie benötigen.

Mono-Repo bevorzugt Konsistenz, während Multi-Repo auf Entkopplung setzt. In einem Mono-Repo kann das gesamte Team die von einer Person vorgenommenen Änderungen sehen, im Multi-Repo-CreatorateGetrennt davonate Repo für jedes Team, das nur Zugriff auf die erforderlichen Dienste hat. Wenn Sie für Ihre Projekte eine Kombination aus Mono-Repo und Multi-Repo verwenden möchten, können Sie sich dafür entscheiden Ziel, ein Tool zum Verwalten mehrerer Projekte und Bibliotheken.

Dies könnte Sie auch interessieren Kostenlose Ressourcen zum Erlernen von Git.

Teilen:
  • Ramya Shankar
    Autor
    Von meiner Kindheit bis heute hörte meine Liebe zum Schreiben nie auf, sondern wurde dank der Möglichkeiten, die sich mir boten, von Tag zu Tag besser! Ich begann mit einfachen Blogeinträgen, die ich allein durch die Beobachtung meiner Umgebung schrieb, und fing dann an …

Danke an unsere Sponsoren

Weitere großartige Lektüre zum Thema Entwicklung

Treiben Sie Ihr Geschäft an

Einige der Tools und Services, die Ihrem Unternehmen helfen grow.