Best Practices für die Anwendungsverwaltung

Dieser Leitfaden enthält Best Practices zum Entwerfen, Definieren und Verwalten Ihrer App Hub-Anwendungen in anwendungszentrierten Google Cloud mithilfe von App Hub und Application Design Center. Wenn Sie diese Best Practices befolgen, können Sie funktionsfähige, verwaltbare und effiziente Anwendungen erstellen, die Ihren Geschäftszielen entsprechen.

Grundprinzipien der Anwendungsverwaltung

Wenn Sie die folgenden Grundprinzipien einhalten, können Sie den Wert maximieren, den Sie durch die anwendungszentrierte Verwaltung Ihrer Google Cloud Infrastruktur erzielen:

  • Klare Grenzen definieren:Legen Sie die Grenze für die Anwendungsverwaltung so fest, dass sie für Ihre Abläufe, die Überwachung, die Governance und die Fehlerbehebung logisch ist. Außerdem sollten Ressourcen innerhalb dieser Grenze, die Sie als Anwendungskomponenten verwenden, idealerweise einen gemeinsamen Betriebslebenszyklus oder Geschäftswert haben, um die Verwaltung zu vereinfachen und das Risiko zu verringern.

    Aus betrieblicher Sicht ist es wichtig, den Unterschied zwischen einer Anwendungsverwaltungsgrenze und Beobachtbarkeitsbereichen zu verstehen.

    • Die Verwaltungsgrenze für Anwendungen definiert die Sammlung von Projekten, die die Google Cloud Ressourcen enthalten, mit denen Sie Anwendungen entwerfen, erstellen und verwalten können, wie unter Wichtige Konzepte beschrieben.
    • Mit Observability-Bereichen in Google Cloud Observability können Sie Telemetriedaten aus mehreren Projekten zusammen ansehen.

    Ihre Log-, Messwert- und Trace-Bereiche sollten Daten aus denselben Projekten enthalten, die in Ihrem Anwendungsverwaltungsbereich enthalten sind. Weitere Informationen zu Bereichen für Beobachtbarkeit finden Sie unter Bereiche für Beobachtbarkeit konfigurieren.

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

  • Eindeutige Eigentumsrechte und Metadaten festlegen:Weisen Sie jeder Anwendung eindeutige Attribute zu, damit Teams sie in App Hub effektiv finden, verstehen und verwalten können. Diese Attribute unterstützen die Auffindbarkeit und Governance. Auffindbarkeit bedeutet, dass relevante Teams wie Entwickler und Bediener Anwendungen finden können. Durch Governance wird klar definiert, wer für die einzelnen Anwendungen verantwortlich ist.

    Im App Hub können Sie wichtige Attribute wie die folgenden definieren:

    • Umgebung:Die Phase im Lebenszyklus der Anwendung, z. B. Produktion, Staging, Test oder Entwicklung. Mit diesem Attribut können Teams Komponenten nach ihrer Bereitstellungsphase filtern und verwalten.
    • Wichtigkeit:Die geschäftliche Bedeutung der Anwendung und ihrer Komponenten, z. B. ob sie geschäftskritisch sind. Dieses Attribut kann die Prioritäten für Monitoring und Reaktion auf Vorfälle beeinflussen.
    • Inhaber:Kontaktdaten der verschiedenen Teams, die für die Anwendung verantwortlich sind. Dies fördert die Verantwortlichkeit, optimiert die Kommunikation und verdeutlicht die Zuständigkeiten.

    Das Application Design Center unterstützt diese Attribute und enthält auch Standort- und Konfigurationsdetails für Anwendungskomponenten. Die konsistente Anwendung dieser Attribute und Details ist für die Erkennung, Governance und Berichterstellung von entscheidender Bedeutung.

  • Auf Weiterentwicklung ausgelegt:Mit dem Application Design Center können Sie wiederverwendbare Vorlagen für Ihre Anwendungen erstellen. Wenn Sie die zugrunde liegende Vorlage aktualisieren, können Sie diese Änderungen durch erneutes Bereitstellen von Anwendungen anwenden. So können Sie die Nachfrage decken, neue Funktionen einführen oder Architekturänderungen vornehmen, um zukünftiges Wachstum und sich entwickelnde Infrastrukturanforderungen zu berücksichtigen.

  • Anwendungsmodelle iterieren und optimieren:Überprüfen und passen Sie Ihre Anwendungsdefinitionen regelmäßig an, um Änderungen in der Struktur, den Geschäftsprioritäten und der technischen Architektur Ihrer Organisation zu berücksichtigen. Cloud Hub bietet zentrale Ansichten der verfügbaren Updates für Anwendungen, die über Vorlagen aus dem Application Design Center bereitgestellt werden. So können Sie Ihre Anwendungsdefinitionen überprüfen und anpassen, um diesen sich entwickelnden Anforderungen gerecht zu werden.

Empfehlungen für Datenmodelle

Wenn Sie wissen, wie Sie Ihre realen Systeme als Anwendungen, Dienste und Arbeitslasten im Framework von App Hub modellieren, können Sie die Funktionen zur Anwendungsverwaltung in Ihrer Google Cloud-Umgebung effektiv nutzen.

Beim Definieren Ihrer Anwendungen ist es wichtig, die Grundprinzipien der Anwendungsverwaltung anzuwenden, z. B. Attribute zu verwenden, um klare Eigentumsverhältnisse und Metadaten festzulegen.

Wenn Sie Ihre Anwendungskomponenten mit diesem Framework modellieren möchten, sollten Sie die folgenden Beispiele für empfohlene Anwendungsfälle berücksichtigen.

Beispiel: Auf Mikrodiensten basierende Anwendung

Ein E-Commerce-System, wie es in der OpenTelemetry-Demo für einen Onlineshop beschrieben wird, ist ein Beispiel für eine auf Mikrodiensten basierende Anwendung. Wir empfehlen, dieses System als eine einzelne Anwendung zu modellieren. Dieser Ansatz bietet eine einheitliche Sicht auf die gesamte Geschäftsfunktion, von der Produktsuche bis zur Kaufabwicklung. Betrachten Sie beispielsweise das folgende Modell für vorhandene Ressourcen, die in Google Cloudausgeführt werden:

  • Anwendung:Erstellen oder definieren Sie eine einzelne Anwendung in App Hub, z. B. mit dem Namen my-ecommerce-site. Diese Anwendung stellt den gesamten Onlineshop als eine einzelne, verwaltbare Einheit dar. Registrieren Sie die folgenden Ressourcen für die Anwendung, um eine logische Gruppierung von Komponenten zu erstellen, die gemeinsam die Geschäftsfunktion Ihres Onlineshops bereitstellen:

    • Mikrodienste als Arbeitslasten:Registrieren Sie die einzelnen Mikrodienste, aus denen das E‑Commerce-System besteht, z. B. Ad, Cart und Checkout, als Arbeitslasten in der Anwendung. Dies sind die Rechenressourcen mit dem Binärcode, die einen diskreten Teil der Geschäftslogik ausführen und als Google Kubernetes Engine-Deployments (GKE) ausgeführt werden.
    • Netzwerkendpunkte als Dienste:Registrieren Sie die Netzwerkendpunkte für diese Microservices, z. B. ihre Load-Balancer, als Dienste der Anwendung. Sie stellen die Onlineshop-Funktionen für Clients bereit.

Vermeiden Sie es, jeden Mikrodienst als eigene Anwendung zu registrieren. Bei diesem Ansatz wird der geschäftliche Kontext fragmentiert und es ist schwierig, einen umfassenden Überblick über den Zustand und die Leistung Ihres Onlineshops zu erhalten.

Wenn Sie alle Mikrodienste in einer einzigen Anwendung gruppieren, profitieren Sie von den folgenden Vorteilen:

  • Umfassende Übersicht:Sie können den Status und die Leistung des gesamten E-Commerce-Kaufprozesses, von der Anzeigenfunktion bis zur Kassenfunktion, in einer einzigen, einheitlichen Ansicht im Blick behalten.
  • Klarer geschäftlicher Kontext:Die Anwendung richtet die Infrastruktur an der geschäftlichen Funktion aus, die sie erfüllt, nämlich dem Onlineshop. So lassen sich der Zustand und die Kosten der Anwendung leichter nachvollziehen.
  • Vereinfachte Fehlerbehebung:Wenn ein Problem auftritt, können Sie die Abhängigkeiten zwischen den verschiedenen Mikrodiensten in der Anwendung sehen, was die Ursachenanalyse beschleunigt.

Beispiel: Dreistufige Webanwendung

Eine dreistufige Webanwendung ist ein Architekturmuster, bei dem eine Anwendung in eine Frontend-, eine Backend- und eine Datenbankebene unterteilt wird. In diesem Anwendungsfall wird gezeigt, wie eine vollständige Geschäftsfunktion als einzelne Anwendung modelliert wird, anstatt jede Ebene als isolierte Komponente zu behandeln.

Im folgenden Modell werden technische Ebenen einer dreistufigen Webanwendung zugeordnet:

  • Anwendung:Erstellen Sie eine einzelne Anwendung, z. B. my-web-app, die als logischer Container für alle Komponenten Ihrer Webanwendung dient.

  • Dienste:Registrieren Sie die Netzwerkschnittstellen, die Funktionen für andere Ebenen oder für Nutzer als Dienste bereitstellen, z. B.:

    • Der Frontend-Load-Balancer, der Nutzertraffic empfängt.
    • Der interne Load Balancer, der den Traffic zwischen dem Frontend und dem Backend verwaltet.
    • Die Cloud SQL- oder Spanner-Datenbankinstanz, die einen Datenservice für die Backend-Logikebene bereitstellt.
  • Arbeitslasten:Registrieren Sie die Rechenressourcen, auf denen der Code Ihrer Anwendung ausgeführt wird, als Arbeitslasten, z. B.:

    • Die verwalteten Instanzgruppen (Managed Instance Groups, MIGs) oder Google Kubernetes Engine-Bereitstellungen, die die Frontend-Benutzeroberfläche bereitstellen.
    • Die MIGs oder Google Kubernetes Engine-Bereitstellungen, in denen die Backend-Geschäftslogik ausgeführt wird.

Wenn Sie alle drei Stufen in einer einzigen Anwendung zusammenfassen, haben Sie folgende Vorteile:

  • Einheitliche Beobachtbarkeit:Sie können den Zustand und die Leistung der gesamten Anwendung über ein einziges Dashboard in Application Monitoring überwachen, anstatt Daten aus drei separaten Anwendungen zusammenzufügen.
  • Eindeutige Inhaberschaft:Sie können Inhaber für Unternehmen, Entwickler und Betreiber der my-web-app-Anwendung zuweisen und so die Verantwortlichkeit für die gesamte Geschäftsfunktion klären.
  • Vereinfachte Governance:Sie können Richtlinien und Zugriffssteuerungen auf my-web-app-Ebene anwenden und so eine einheitliche Governance auf allen Ebenen unterstützen.

Strategien für Anwendungsdesign und Governance

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

Zwischen globalen und regionalen Anwendungen wählen

Der Standort, den Sie für eine Anwendung auswählen (global oder regional), ist eine grundlegende Entscheidung, die sich auf Datenverarbeitung, Latenz und Compliance auswirkt:

  • Regionale Anwendungen priorisieren:Definieren Sie Ihre Anwendungen nach Möglichkeit als regional. Diese Vorgehensweise bietet Vorteile wie eine geringere Latenz, potenzielle Kosteneinsparungen und die Einhaltung der Anforderungen an den Datenstandort. Regionale Anwendungen werden empfohlen, wenn sich alle Anwendungskomponenten in einer einzigen Google Cloud Region befinden. So wird eine inhärente Kompatibilität mit regionsspezifischen Google Cloud Funktionen und Fehlerbereichen erreicht. Eine Anleitung zum Erstellen hochverfügbarer Systeme finden Sie unter Hochverfügbare Systeme durch Ressourcenredundanz erstellen.
  • Globale Anwendungen strategisch einsetzen:Wählen Sie eine globale Anwendung nur dann aus, wenn die Komponenten Ihres Systems notwendigerweise auf mehrere Regionen verteilt sind oder globale Google Cloud Ressourcen wie einen globalen externen Application Load Balancer 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 Komponenten in jeder Region definieren. So werden die Vorteile der Regionalisierung für jede Bereitstellung maximiert.

Einen detaillierten Vergleich der verschiedenen Bereitstellungsregionen in App Hub finden Sie unter Globale und regionale Anwendungen.

Umgebungen in separate Anwendungen aufteilen

Um die Isolation für Sicherheit, Berechtigungen und Betriebsrisiko zu unterstützen, stellen Sie verschiedene Bereitstellungsumgebungen wie Entwicklung, Staging und Produktion als separate Anwendungen dar. Sie können Ihre Anwendungen beispielsweise als my-app-dev, my-app-staging und my-app-prod strukturieren.

Durch die Trennung von Umgebungen in separate Anwendungen werden präzise Grenzen für die Zugriffssteuerung, die Richtliniendurchsetzung und das Monitoring geschaffen. Wenn Sie in Ihren Anwendungskomponenten Attribute, Konfigurationsdetails und den Standort einheitlich verwenden, wird die Auffindbarkeit verbessert und die Governance durchgesetzt. Diese Attribute enthalten umfangreiche Metadaten für Filterung, Berichterstellung und Richtlinienanwendung. Das Attribut Environment bietet beispielsweise detaillierte Informationen und ressourcenspezifische Steuerung für verschiedene Richtlinien für die Bereitstellungsumgebung. Weitere Informationen zu diesem und anderen Attributen finden Sie unter Properties und Attribute.

Anwendungsgrenzen an Teamstrukturen anpassen

Stellen Sie Ihre Organisationsstruktur dar, insbesondere die Teams, die für die Entwicklung und den Betrieb von Anwendungen verantwortlich sind, innerhalb Ihrer Grenzen für die Anwendungsverwaltung.

Diese Vorgehensweise vereinfacht die Inhaberschaft und Kommunikation, da das Anwendungsmodell dem Framework entspricht, das Ihr Unternehmen verwendet, um zu definieren, wie Aufgaben aufgeteilt, gruppiert und koordiniert werden, um seine Funktionen zu erfüllen.

Anwendungslebenszyklus

App Hub in Application Design Center einbinden, um den Anwendungslebenszyklus nahtlos zu gestalten:

  • Sie haben bereits Ressourcen, die Sie in einer Anwendung registrieren möchten:Verwenden Sie App Hub, um Ihre vorhandenen Google Cloud Ressourcen als Dienste oder Arbeitslasten in Anwendungen zu registrieren. So erhalten Sie schnell einen einheitlichen Überblick und die operative Kontrolle über Ihre aktuelle Infrastruktur. Optional können Sie später eine Vorlage in Application Design Center aus einer laufenden Anwendung erstellen, um die Architektur für zukünftige Bereitstellungen zu standardisieren.
  • Sie haben keine vorhandenen Ressourcen, die Sie in einer Anwendung registrieren können:Verwenden Sie das Application Design Center, um neue Anwendungen aus verwalteten, wiederverwendbaren Vorlagen zu entwerfen und bereitzustellen. Wenn Sie eine Anwendung aus einer Application Design Center-Vorlage bereitstellen, werden die Komponenten automatisch in App Hub registriert, sodass Ihr Anwendungsmodell das beabsichtigte Design genau widerspiegelt. Das Application Design Center hilft Ihnen auch dabei, einheitliche Anwendungsupdates auf Grundlage von Vorlagenrevisionen zu verwalten. Wenn Sie die Vorlage aktualisieren, können Sie die Anwendung noch einmal bereitstellen, um die Änderungen zu übernehmen. So sorgen Sie für Konsistenz und Governance.

Überlegungen zur Ressourcenhierarchie

Ihre Ressourcenhierarchie in Google Cloud ist die Grundlage für die praktische Anwendungsverwaltung. Sie führen eine Anwendungsverwaltungsebene über dieser Hierarchie ein, indem Sie ein Verwaltungsprojekt konfigurieren, um die Grenzen der Anwendungsverwaltung festzulegen. Eine Übersicht darüber, wie verschiedene Produkte als Teil anwendungszentrierter Google Cloud-Lösungen zusammenarbeiten, finden Sie unter Anwendungszentrierte Google Cloud.

Eine sorgfältige Planung der Google Cloud Ressourcenhierarchie für die Anwendungsverwaltung ist unerlässlich, um logische Gruppierungen zu erstellen. Die Auswahl eines einzelnen Projekts, eines Ordners oder einer Reihe von Projekten zur Definition der Verwaltungsgrenze Ihrer Anwendung hat grundlegende Auswirkungen auf Governance, Richtliniendurchsetzung und Ressourcensuche. Außerdem variiert der anwendungszentrierte Google Cloud-Produktsupport je nachdem, wie Sie diese Anwendungsgrenze definieren.

Informationen zum Festlegen der besten Anwendungsgrenze für Ihre Ressourcenhierarchie und Ihre geschäftlichen Anforderungen sowie zum Produkt-Support für verschiedene Muster der Ressourcenstruktur finden Sie unter Anwendungseinrichtungsmodell 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 zu Ihren Geschäftsfunktionen, Teamstrukturen und sich ändernden Architekturen passen.

Wir empfehlen, die Statistiken aus Cloud Hub und Gemini Cloud Assist zu nutzen, um Optimierungsmöglichkeiten zu ermitteln und Ihre Anwendungen entsprechend anzupassen. Mit dem Application Design Center können Sie architektonische Änderungen modellieren und bereitstellen und den Lebenszyklus Ihrer Anwendungen über Vorlagen verwalten.