Globale Referenzarchitekturmuster

Neben „Kein GRA-Muster“ gibt es vier Arten von GRA-Mustern.

5 Icons von GRA-Mustern: keine GRA, Split, Bulk, Separate und Monorepo.

Kein GRA-Muster

Ein Symbol, das „kein GRA“ darstellt

Wenn kein GRA-Muster verwendet wird, ist jede Adobe Commerce-Instanz eine eindeutige Anwendung. Es gibt keine Wiederverwendung von Code, es sei denn, Code wird manuell von einer Instanz in eine andere verschoben. Diese Kopien weichen immer voneinander ab. Der Aufwand um sicherzustellen, dass jede Instanz dieselben Änderungen hat, aber dennoch wie erwartet funktioniert, kann überwältigend werden. In diesem Szenario benötigen drei Instanzen den dreifachen Wartungsaufwand einer Instanz.

Ein Diagramm mit 3 Geschäften, wobei jeder eine Kopie des ersten ist, wobei eine einzigartige Entwicklung in allen 3 Kopien stattfindet.

Das aufgeteilte Git-GRA-Muster

Ein Symbol, das das „geteilte“ GRAA-Muster darstellt

Dieses Muster besteht aus Git-Repositorys für die Entwicklung und einem Git-Repository pro Instanz. Jede Datei in der Instanz wird in einem der Entwicklungs-Repositorys verwaltet. Sie kommen als Zopf zusammen und bilden die ganze GRA. Jede Codezeile ist nur in einem einzigen Entwicklungs-Repository vorhanden und wird mithilfe der Fleding-Technik auf den Instanzen installiert, was zu einer Wiederverwendung von Code führt.

Ein Diagramm, das zeigt, wo Code in einem aufgeteilten GRA-Muster gespeichert ist

Das GRA-Muster für Massenpakete

Ein Symbol für das „Massen“-GRA-Muster

Die Adobe Commerce-Kern- und Drittanbietermodule werden direkt über Composer-Repositorys installiert. Git-Repositorys können als Composer-Repositorys verwendet werden. Bei diesem Muster wird die gesamte gemeinsam genutzte GRA-Codebasis in einem oder mehreren Git-Repositorys gehostet und über Composer installiert. Das Hauptmerkmal ist, dass mehrere Module, Sprachpakete oder Themen in einem einzigen Composer-Paket gehostet werden, was die Entwicklung vereinfacht.

Ein Diagramm, das zeigt, wo Code in einem Massen-Package-GRA-Muster gespeichert wird

Die separaten Pakete GRAD-Muster

Ein Symbol, das das GRA-Muster „Separate Packages“ darstellt

Jedes Adobe Commerce-Modul, Sprachpaket oder Design wird als separates Composer-Paket installiert. Jede Anpassung verfügt über ein eigenes Git-Repository. Dies bedeutet ultimative Flexibilität bei der Komposition der Instanzen und verfügt über eine zuverlässige Composer-Abhängigkeitsverwaltung. Zur Leistungsoptimierung werden alle Pakete in einem einzigen privaten Composer-Repository gespiegelt.

Ein Diagramm, das zeigt, wo Code in einem separaten Paket-GRA-Muster gespeichert wird

Das monorepo GRA-Muster

Ein Symbol für das „monorepo“-GRA-Muster

Die gesamte Entwicklung erfolgt in einem einzigen Code-Repository. Durch die Automatisierung werden Pakete für neue Versionen generiert und in einem Composer-Repository veröffentlicht. Das Muster kombiniert den geringen Entwicklungs-Overhead des Massenpaketansatzes mit der Flexibilität des separaten Paketansatzes. Das monorepo-Muster ist auch ideal für automatisierte Funktionstests.

Ein Diagramm, das zeigt, wo Code in einem monorepo-GRA-Muster gespeichert wird

Auswählen eines GRA-Musters

Die Wahl für ein GRA-Muster wird getroffen, indem die Projektkomplexität, der Bedarf an Flexibilität und die Anpassungsfähigkeit des Entwicklungsteams bewertet werden.

Teams mit wenig Adobe Commerce-Erfahrung beginnen am besten einfach. Wenn das Projekt jedoch aufgrund seiner Eigenschaften ein komplexeres GRA-Muster erfordert, gehen Sie keine Kompromisse ein.

Allgemeine Projektmerkmale in Bezug auf jedes Muster:

  1. Kein GRA-Muster: Einzelne Instanz von Adobe Commerce ohne Erweiterungspläne. Mehrere Instanzen von Adobe Commerce mit minimaler Gemeinsamkeit zwischen ihnen.

  2. Git-GRA-Muster aufteilen: Teams, die Composer wegen ihrer Anpassungen vermeiden möchten, in den meisten Fällen ist das Muster für Massenpakete ein bevorzugtes Muster für Git-Aufspaltung.

  3. Massen-Paket-GRA-Muster: Anpassungs-Code-Basis mit hoher Interdependenz. Instanzen haben alle sehr ähnliche Kombinationen benutzerdefinierter Pakete. Keine häufige Promotion oder Herabstufung einzelner Pakete. Teams mit wenig Erfahrung im Code-Management und Bedarf an Einfachheit.

  4. Separate packages GRA pattern: Flexible Verwaltung des Veröffentlichungsumfangs erforderlich. In den nächsten fünf Jahren werden 50 oder weniger individuelle Pakete erwartet. Potenziell globale und regionale Ebenen des gemeinsamen Codes. Keine Pläne für die Migration zu einem Monorepo-Muster. Das Team ist technisch versiert und hält sich strikt an den Prozess.

  5. Monorepo GRA Muster: Alle Eigenschaften der separaten Pakete GRA Muster. In den nächsten 5 Jahren werden mehr als 50 Pakete erwartet. Notwendigkeit umfassender automatisierter Tests. Unterstützung für temporäre Umgebungen. Komplexe Code-Basis für Unternehmen, die skaliert werden muss, ohne die Wartungskosten zu gleichen Kosten zu skalieren.