Best Practices für die Entwicklung von Anwendungen

Dieser Leitfaden enthält Best Practices zum Entwerfen und Definieren Ihrer Anwendungen in App Hub. Ein effektives Anwendungsdesign ist entscheidend, um die Vorteile von anwendungszentrierten Google Cloud-Lösungen voll auszuschöpfen. Es bietet mehr Transparenz, Governance und betriebliche Effizienz.

Grundprinzipien des Anwendungsdesigns

Wenn Sie die folgenden Grundsätze beachten, können Sie robuste, wartungsfreundliche Anwendungen erstellen, die auf Ihre Geschäftsziele abgestimmt sind und den Wert von App Hub maximieren:

  • Geschäftsfunktionen abbilden:Definieren Sie App Hub-Anwendungen anhand von Geschäftsfunktionen oder End-to-End-Workflows und nicht nur anhand von technischen Ebenen oder einzelnen Mikrodiensten. Eine Anwendung sollte einen separaten Wertstrom für das Unternehmen darstellen.

  • Klare Inhaberschaft festlegen:Weisen Sie jeder Anwendung klare Properties und Attribute zu, um die Auffindbarkeit und Governance zu unterstützen. Insbesondere durch das Hinzufügen von Anwendungsinhabern wird die Verantwortlichkeit gefördert und die Kommunikation optimiert.

  • Anwendungsgrenzen berücksichtigen:Definieren Sie Grenzen, die für Betrieb, Monitoring und Governance sinnvoll sind. Ressourcen innerhalb einer Anwendung sollten idealerweise einen gemeinsamen Betriebslebenszyklus und eine gemeinsame Wirkungsdomäne haben, um die Verwaltung zu vereinfachen und das Betriebsrisiko zu verringern.

    Wenn Sie die Grenzen Ihrer Anwendung für betriebliche Zwecke festlegen, ist es wichtig zu verstehen, wie Google Cloud Observability die Datenerhebung und -darstellung strukturiert. Während sich App Hub auf Anwendungsgrenzen konzentriert, werden in Google Cloud Observability Bereiche verwendet, um zu definieren, welche Telemetriedaten projektübergreifend sichtbar und analysierbar sind. Die Konfiguration dieser Observability-Bereiche hat eine bestimmte Beziehung zu Ihrem Hostprojekt oder Verwaltungsprojekt. Dadurch wird festgelegt, wie Sie Telemetriedaten aus verschiedenen Projekten zusammenfassen und ansehen können. Weitere Informationen zum Konfigurieren dieser Bereiche für eine einheitliche Ansicht finden Sie unter Beobachtbarkeitsbereiche konfigurieren.

  • Anpassung an die Entwicklung:Entwerfen Sie Ihre Anwendungen so, dass sie zukünftigen Änderungen und dem Wachstum Ihrer Architektur gerecht werden.

  • Iterativ optimieren:Überprüfen und passen Sie Ihre Anwendungen regelmäßig an, um Änderungen in der Struktur, den Teams und den geschäftlichen Prioritäten Ihrer Organisation zu berücksichtigen.

Was als Anwendung definiert werden sollte

Es ist wichtig zu wissen, was eine Anwendung in App Hub ist, um die Funktionen zur Anwendungsverwaltung effektiv inGoogle Cloudzu integrieren. In einer Anwendung werden Dienste und Arbeitslasten gruppiert, die gemeinsam eine bestimmte Geschäftsfunktion bereitstellen. Weitere Informationen zu den Kernkonzepten von Anwendungen, Diensten und Arbeitslasten in App Hub finden Sie unter Konzepte und Datenmodell.

Die folgenden Fragen können Ihnen helfen, die geeignete Grenze für Ihre App Hub-Anwendungen zu bestimmen:

  • Welchen Nutzer- oder Geschäftswert bietet diese Sammlung von Ressourcen?
  • Haben diese Komponenten einen gemeinsamen Betriebslebenszyklus?
  • Gibt es einen klaren, einheitlichen Inhaber für diese Ressourcen?
  • Ermöglicht diese Gruppierung eine effektive Überwachung und Fehlerbehebung?

Beispiel: OpenTelemetry-Demoarchitektur

Die OpenTelemetry-Demoarchitektur stellt ein E-Commerce-System mit Mikrodiensten wie Ad, Cart und Checkout dar. Beachten Sie die folgenden Empfehlungen, um diese Anwendung in App Hub optimal zu definieren:

  • Bilden Sie das gesamte E-Commerce-System als eine App Hub-Anwendung ab, z. B. my-ecommerce-site:

    • Die Compute-Instanzen der einzelnen Mikrodienste, z. B. Google Kubernetes Engine-Bereitstellungen (GKE), werden den App Hub-Arbeitslasten zugeordnet.
    • Die Netzwerkendpunkte, z. B. Load-Balancing-gRPC-/HTTP-Schnittstellen, werden App Hub-Diensten zugeordnet.
  • Registrieren Sie nicht jeden Mikrodienst wie Ad, Cart und Checkout als eigene App Hub-Anwendung. Bei diesem Ansatz wird der geschäftliche Kontext fragmentiert.

Weitere Informationen zu Infrastrukturressourcen, die von App Hub als Dienste und Arbeitslasten unterstützt werden, finden Sie unter Von App Hub unterstützte Ressourcen.

Designstrategien

Mit den folgenden Designstrategien können Sie dafür sorgen, dass Ihre App Hub-Einrichtung skalierbar, verwaltbar und an Ihre betrieblichen Abläufe angepasst ist.

Zwischen globalen und regionalen Anwendungen wählen

Bei der Entwicklung Ihrer App Hub-Anwendungen müssen Sie entscheiden, ob Sie sie als global oder regional definieren möchten. Diese Auswahl wirkt sich auf die Ressourcen, die einbezogen werden können, die Datenverarbeitung, die Latenz, die Kosten und die Compliance aus:

  • Globale Anwendungen eignen sich am besten für Dienste und Arbeitslasten, die von Natur aus auf mehrere Google Cloud Regionen verteilt sind oder auf globale Ressourcen wie einen globalen Application Load Balancer angewiesen sind.
  • Regionale Anwendungen werden empfohlen, wenn sich alle Anwendungskomponenten in einer einzigen Google Cloud Region befinden. Diese Vorgehensweise ist in der Regel die beste, wenn Ihre Architektur sie zulässt.

Die folgende Liste mit Best Practices kann Ihnen bei der Entscheidung zwischen globalen und regionalen Anwendungen helfen:

  • Regionale Anwendungen priorisieren:Entwerfen Sie Ihre Anwendungen nach Möglichkeit als regional, um Vorteile wie geringere Latenz, potenzielle Kosteneinsparungen beim interregionalen Netzwerk-Traffic, Einhaltung der Anforderungen an die Datenlokalität und die inhärente Kompatibilität mit regionsspezifischenGoogle Cloud -Funktionen und Fehlerbereichen zu nutzen.
  • Globale Anwendungen strategisch einsetzen:Wählen Sie globale Anwendungen nur aus, wenn Ihre Systemkomponenten notwendigerweise über Regionen verteilt sind oder globale Google Cloud Dienste umfassen.
  • Systeme mit mehreren Regionen aufteilen:Wenn Sie Ressourcen in mehreren Regionen haben, die keine einheitliche globale Funktion bilden, sollten Sie separate regionale Anwendungen für die Ressourcen in jeder Region definieren. So werden die Vorteile der Regionalisierung für jede Bereitstellung maximiert.

Einen detaillierten Vergleich und eine ausführliche Beschreibung der Auswirkungen dieser Entscheidung finden Sie unter Globale und regionale Anwendungen.

Umgebungen als separate Anwendungen definieren

Sie können verschiedene Bereitstellungsumgebungen als separate App Hub-Anwendungen darstellen. Dieser Ansatz bietet eine starke Isolation in Bezug auf Sicherheit, Berechtigungen und Betriebsrisiko und verhindert unbeabsichtigte Auswirkungen auf verschiedene Umgebungen.

Sie können Ihre Anwendungen beispielsweise als my-app-dev, my-app-staging und my-app-prod für Entwicklungs-, Staging- und Produktionsumgebungen strukturieren.

Sie können zwar das Attribut Environment in einer einzelnen Anwendung verwenden, um Ressourcen zu taggen, aber durch die Trennung von Umgebungen in separate Anwendungen werden präzise Grenzen für Zugriffssteuerung, Richtliniendurchsetzung und Monitoring geschaffen. Sie müssen das Attribut Environment weiterhin konsistent für die Ressourcen in diesen umgebungsspezifischen Anwendungen verwenden, um detaillierte Informationen anzugeben und Rollen genauer zu definieren. Weitere Informationen zu diesem und anderen Attributen finden Sie unter Attribute für die Governance verwenden.

An Teamstrukturen anpassen

Richten Sie die Anwendungsabgrenzungen an den Teams aus, die für die Entwicklung und den Betrieb der Anwendungen verantwortlich sind. So können Sie die Inhaberschaft und Kommunikation vereinfachen, da das Anwendungsmodell in App Hub die Struktur Ihrer Organisation widerspiegelt.

Attribute für die Governance verwenden

Wenden Sie Attribute einheitlich auf alle Anwendungsressourcen an, um die Auffindbarkeit zu verbessern und die Governance zu erzwingen. Diese Attribute enthalten umfangreiche Metadaten zum Filtern, für Berichte und zum Anwenden von Richtlinien:

  • Kritikalität:Hilft bei der Priorisierung von Ressourcen für die Überwachung und Reaktion auf Vorfälle.
  • Umgebung:Unterstützt Filterung und umgebungsspezifische Richtlinien.
  • Eigentümer:Sorgen für Transparenz und Verantwortlichkeit.

Legen Sie Organisationsstandards für das Taggen von Ressourcen mit diesen Attributen fest. Weitere Informationen finden Sie unter Support-Auffindbarkeit und ‑Governance.

Anwendungsfälle für die Anwendungsverwaltung identifizieren

Integrieren Sie App Hub in Application Design Center, um einen nahtlosen Anwendungslebenszyklus zu ermöglichen – vom Design bis zum Betrieb:

  • Sie haben bereits Ressourcen, die Sie als Anwendung registrieren möchten:Registrieren Sie vorhandene Google Cloud Ressourcen aus Ihrem Einrichtungsmodell als Anwendung im App Hub, um einheitliche Sichtbarkeit und operative Kontrolle zu erhalten.
  • Sie haben keine vorhandenen Ressourcen, die Sie als Anwendung registrieren können:Verwenden Sie das Application Design Center, um neue Anwendungen zu entwerfen und bereitzustellen. Im Application Design Center werden die bereitgestellten Ressourcen automatisch in App Hub registriert, sodass Ihr Modell das beabsichtigte Design genau widerspiegelt. Application Design Center unterstützt Sie auch bei der Verwaltung von Anwendungsupdates. Wenn sich eine Anwendungsvorlage ändert, können Sie alle Instanzen aktualisieren, die auf der Vorlage basieren. So können Sie dafür sorgen, dass Anwendungsaktualisierungen einheitlich sind.

Ressourcenhierarchie

Die Standard-Google Cloud Ressourcenhierarchie besteht aus Organisations-, Ordner- und Projekt-Ressourcen. App Hub führt eine Anwendungsebene über dieser Hierarchie ein, die auf dem Konzept von app-fähigen Ordnern und Hostprojekten basiert, je nach Einrichtungsmodell.

Wenn Sie wissen, wie Ihr ausgewähltes Einrichtungsmodell in Ihre vorhandene Google CloudRessourcenhierarchie passt, können Sie Governance, Richtliniendurchsetzung und Ressourcensuche effektiv unterstützen. Sehen Sie sich die empfohlenen Strukturen an und planen Sie Ihre Ressourcenhierarchie, wenn Sie Ihr Einrichtungsmodell für die Verwaltung von Anwendungen auswählen.

Kontinuierliche Optimierung

Anwendungsdesigns sind nicht statisch, sondern entwickeln sich in der Regel im Laufe der Zeit weiter. Überprüfen und optimieren Sie Ihre Anwendungen regelmäßig, damit sie weiterhin Ihren geschäftlichen Anforderungen, Teamstrukturen und sich ändernden Architekturen entsprechen.

Wir empfehlen, die Statistiken aus Cloud Hub und Gemini Cloud Assist zu nutzen, um Optimierungsmöglichkeiten zu ermitteln und Ihre Anwendungen entsprechend anzupassen. Außerdem können Sie mit dem Application Design Center den Lebenszyklus Ihrer Anwendungen verwalten. Auf der Seite Bereitstellungen in Cloud Hub werden Anwendungen angezeigt, für die Updates der Application Design Center-Vorlage verfügbar sind, auf der sie basieren. So wird der Aktualisierungsprozess vereinfacht.