Modulares Design fördern

Last reviewed 2024-12-06 UTC

Dieses Prinzip im Bereich der Leistungsoptimierung des Google Cloud -Architektur-Frameworks enthält Empfehlungen, die Ihnen dabei helfen, ein modulares Design zu fördern. Modulare Komponenten und klare Oberflächen ermöglichen eine flexible Skalierung, unabhängige Updates und eine zukünftige Komponententrennung.

Grundsatzübersicht

Informieren Sie sich über die Abhängigkeiten zwischen den Anwendungs- und Systemkomponenten, um ein skalierbares System zu entwerfen.

Modulares Design ermöglicht Flexibilität und Ausfallsicherheit, unabhängig davon, ob ursprünglich eine monolithische oder eine Mikrodienstarchitektur bereitgestellt wurde. Wenn Sie das System in klar definierte, unabhängige Module mit klaren Schnittstellen unterteilen, können Sie einzelne Komponenten skalieren, um bestimmte Anforderungen zu erfüllen.

Die gezielte Skalierung kann die Ressourcennutzung optimieren und die Kosten auf folgende Weise senken:

  • Stellt jeder Komponente nur die erforderlichen Ressourcen zur Verfügung und weist weniger anspruchsvollen Komponenten weniger Ressourcen zu.
  • In Zeiten mit hohem Traffic werden zusätzliche Ressourcen hinzugefügt, um die Nutzerfreundlichkeit aufrechtzuerhalten.
  • Entfernt nicht ausgelastete Ressourcen, ohne die Leistung zu beeinträchtigen.

Modularität verbessert auch die Wartbarkeit. Kleinere, eigenständige Einheiten sind leichter zu verstehen, zu debuggen und zu aktualisieren, was zu schnelleren Entwicklungszyklen und geringeren Risiken führen kann.

Modularität bietet zwar erhebliche Vorteile, Sie müssen aber die potenziellen Leistungseinbußen berücksichtigen. Die erhöhte Kommunikation zwischen den Modulen kann zu Latenz und Overhead führen. Streben Sie nach einem Gleichgewicht zwischen Modularität und Leistung. Ein stark modulares Design ist möglicherweise nicht universell geeignet. Wenn die Leistung entscheidend ist, kann ein engeres Zusammenspiel sinnvoll sein. Das Systemdesign ist ein iterativer Prozess, bei dem Sie Ihr modulares Design kontinuierlich überprüfen und optimieren.

Empfehlungen

Beachten Sie die Empfehlungen in den folgenden Abschnitten, um modulare Designs zu fördern.

Lose Kopplung beim Design berücksichtigen

Entwerfen Sie eine lose gekoppelte Architektur. Mit unabhängigen Komponenten mit minimalen Abhängigkeiten können Sie skalierbare und robuste Anwendungen erstellen. Bei der Planung der Grenzen für Ihre Dienste müssen Sie die Verfügbarkeits- und Skalierbarkeitsanforderungen berücksichtigen. Wenn eine Komponente beispielsweise Anforderungen hat, die sich von denen Ihrer anderen Komponenten unterscheiden, können Sie sie als eigenständigen Dienst entwerfen. Implementieren Sie einen Plan für glatte Fehler bei weniger wichtigen Unterprozessen oder Diensten, die sich nicht auf die Reaktionszeit der primären Dienste auswirken.

Entwicklung an Parallelität und Nebenläufigkeit orientieren

Entwerfen Sie Ihre Anwendung so, dass sie mehrere Aufgaben gleichzeitig unterstützt, z. B. die Verarbeitung mehrerer Nutzeranfragen oder die Ausführung von Hintergrundjobs, während Nutzer mit Ihrem System interagieren. Große Aufgaben in kleinere Teile aufteilen, die gleichzeitig von mehreren Dienstinstanzen verarbeitet werden können. Mit der Aufgabenparallelität können Sie Funktionen wie die automatische Skalierung verwenden, um die Ressourcenzuweisung in Produkten wie den folgenden zu erhöhen:

Modularität für flexible Ressourcenzuweisung ausbalancieren

Achten Sie nach Möglichkeit darauf, dass jede Komponente für bestimmte Vorgänge nur die erforderlichen Ressourcen (z. B. Arbeitsspeicher, Speicherplatz und Rechenleistung) verwendet. Eine zu hohe Ressourcenzuweisung kann zu unnötigen Kosten führen, während eine zu geringe Ressourcenzuweisung die Leistung beeinträchtigen kann.

Gut definierte Oberflächen verwenden

Sorgen Sie dafür, dass modulare Komponenten über klare, standardisierte Schnittstellen (z. B. APIs und Nachrichtenwarteschlangen) effektiv kommunizieren, um den Overhead durch Übersetzungsschichten oder durch unnötigen Traffic zu reduzieren.

Zustandslose Modelle verwenden

Ein zustandsloses Modell kann dazu beitragen, dass Sie jede Anfrage oder Interaktion mit dem Dienst unabhängig von vorherigen Anfragen verarbeiten können. Dieses Modell erleichtert die Skalierbarkeit und Wiederherstellbarkeit, da der Dienst erweitert, verkleinert oder neu gestartet werden kann, ohne dass Daten verloren gehen, die für laufende Anfragen oder Prozesse erforderlich sind.

Komplementäre Technologien auswählen

Wählen Sie Technologien aus, die das modulare Design ergänzen. Prüfen Sie Programmiersprachen, Frameworks und Datenbanken auf ihre Modularität.

Weitere Informationen finden Sie in den folgenden Ressourcen: