Grundprinzipien des Systemdesigns

Last reviewed 2023-08-05 UTC

In diesem Dokument im Google Cloud-Architektur-Framework werden die Grundprinzipien des Systemdesigns beschrieben. Ein robustes Systemdesign ist sicher, zuverlässig, skalierbar und unabhängig. Sie können iterative und umkehrbare Änderungen vornehmen, ohne das System zu stören, potenzielle Risiken zu minimieren und die betriebliche Effizienz zu verbessern. Damit Sie ein robustes Systemdesign erreichen können, sollten Sie vier Grundprinzipien folgen.

Alles dokumentieren

Wenn Sie mit dem Verschieben Ihrer Arbeitslasten in die Cloud oder mit dem Erstellen Ihrer Anwendungen beginnen, ist das Fehlen einer Dokumentation des Systems ein Hauptblock. Die Dokumentation ist besonders wichtig, um die Architektur Ihrer aktuellen Bereitstellungen korrekt zu visualisieren.

Eine ordnungsgemäß dokumentierte Cloud-Architektur legt eine gemeinsame Sprache und Standards fest, die es funktionsübergreifenden Teams ermöglichen, effektiv zu kommunizieren und zusammenzuarbeiten. Außerdem finden Sie hier die Informationen, die zur Ermittlung und Steuerung zukünftiger Designentscheidungen erforderlich sind. Die Dokumentation sollte unter Berücksichtigung Ihrer Anwendungsfälle geschrieben werden, um Kontext für die Designentscheidungen zu bieten.

Im Laufe der Zeit werden sich Ihre Designentscheidungen weiterentwickeln und ändern. Der Änderungsverlauf liefert die Kontextinformationen, die Ihre Teams benötigen, um Initiativen abzustimmen, Duplikate zu vermeiden und Leistungsänderungen im Zeitverlauf effektiv zu messen. Änderungslogs sind besonders nützlich, wenn Sie einen neuen Cloud-Architekten einrichten, der mit Ihrem aktuellen Systemdesign, Ihrer Strategie oder Ihrem Verlauf noch nicht vertraut ist.

Design vereinfachen und vollständig verwaltete Dienste nutzen

Einfachheit ist für das Systemdesign von entscheidender Bedeutung. Wenn Ihre Architektur zu komplex ist, um sie zu verstehen, ist es schwierig, das Design zu implementieren und im Laufe der Zeit zu verwalten. Verwenden Sie nach Möglichkeit vollständig verwaltete Dienste, um die Risiken, den Zeit- und Arbeitsaufwand für die Verwaltung und Wartung von Basissystemen zu minimieren.

Wenn Sie Ihre Arbeitslasten bereits in der Produktion laufen lassen, sollten Sie mit verwalteten Diensten testen, wie sie Ihnen helfen können, die betriebliche Komplexität zu verringern. Wenn Sie neue Arbeitslasten entwickeln, fangen Sie einfach an, erstellen Sie ein minimales Viable Product (MVP) und widerstehen Sie dem Drang zum Over-Engineering. Sie können außergewöhnliche Anwendungsfälle identifizieren, Ihre Systeme iterieren und im Laufe der Zeit verbessern.

Architektur entkoppeln

Entkoppeln ist eine Technik, die zum Trennen Ihrer Anwendungen und Dienstkomponenten in kleinere Komponenten verwendet wird, die unabhängig voneinander ausgeführt werden können. Sie können beispielsweise ein monolithisches Anwendungspaket in separate Dienstkomponenten aufteilen. In einer entkoppelten Architektur kann eine Anwendung ihre Funktionen unabhängig von den verschiedenen Abhängigkeiten ausführen.

Eine entkoppelte Architektur bietet Ihnen mehr Flexibilität bei den folgenden Aufgaben:

  • Unabhängige Upgrades anwenden.
  • Bestimmte Sicherheitskontrollen durchsetzen.
  • Zuverlässigkeitsziele für jedes Subsystem festlegen.
  • Zustand überwachen.
  • Granulare Leistung und Kostenparameter steuern.

Sie können bereits früh in Ihrer Designphase entkoppeln oder sie als Teil Ihrer Systemupgrades integrieren, wenn Sie skalieren.

Zustandslose Architektur verwenden

Eine zustandslose Architektur kann sowohl die Zuverlässigkeit als auch die Skalierbarkeit Ihrer Anwendungen erhöhen.

Zustandsorientierte Anwendungen benötigen verschiedene Abhängigkeiten, um Aufgaben wie lokal zwischengespeicherte Daten auszuführen. Zustandsorientierte Anwendungen erfordern oft zusätzliche Mechanismen, um den Fortschritt zu erfassen und ordnungsgemäß neu zu starten. Zustandslose Anwendungen können Aufgaben ohne signifikante lokale Abhängigkeiten ausführen, indem sie freigegebenen Speicher oder im Cache gespeicherte Dienste verwenden. Eine zustandslose Architektur ermöglicht es Ihnen, Anwendungen mit minimalen Boot-Abhängigkeiten schnell zu skalieren. Die Anwendungen können soliden Neustarts standhalten, eine geringere Ausfallzeit aufweisen und eine bessere Leistung für Endnutzer bieten.

In der Kategorie "Systemdesign" werden Empfehlungen beschrieben, mit denen Sie Ihre Anwendungen zustandslos machen oder cloudnative Features verwenden können, um den Erfassungsstatus der Maschinen für Ihre zustandsorientierten Anwendungen zu verbessern.

Nächste Schritte