Mit Application-centric Google Cloud können Sie Anwendungen in Google Cloudeinheitlich erstellen und verwalten. Wenn Sie die Best Practices für das Anwendungsdesign und die Anwendungsverwaltung in App Hub und Application Design Center befolgen, können Sie betriebsfä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, den Sie durch die anwendungsorientierte Verwaltung Ihrer Google Cloud -Infrastruktur erzielen, maximieren:
Klare Grenzen definieren: Legen Sie die Grenze für die Anwendungsverwaltung so fest, dass sie für Ihre Vorgänge, Ihr Monitoring, Ihre Governance und Ihre 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.
Für betriebliche Zwecke ist es wichtig, den Unterschied zwischen einer Anwendungsverwaltungsgrenze und Beobachtbarkeitsbereichen zu kennen.
- Die Grenze für die Anwendungsverwaltung definiert die Sammlung von Projekten, die die Google Cloud -Ressourcen enthalten, die Sie zum Entwerfen, Erstellen und Verwalten von Anwendungen verwenden 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 Ihrer Anwendungsgrenze enthalten sind. Weitere Informationen zu Bereichen für Beobachtbarkeit finden Sie unter Bereiche für Beobachtbarkeit konfigurieren.
Geschäftliche Funktionen widerspiegeln: Definieren Sie Ihre Anwendungen anhand von Geschäftsfunktionen oder End-to-End-Workflows, nicht nur anhand von technischen Ebenen. Eine Anwendung sollte einen eindeutigen Wertstrom für Ihr Unternehmen darstellen.
Eindeutige Eigentumsrechte und Metadaten festlegen: Weisen Sie jeder Anwendung eindeutige Attribute zu, damit Teams sie im 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 Operatoren Anwendungen finden können. Die Governance definiert klar, 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 anhand 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 Incident Response beeinflussen.
- Inhaber: Kontaktdaten für die verschiedenen Teams, die für die Anwendung verantwortlich sind. Das fördert die Verantwortlichkeit, optimiert die Kommunikation und klärt 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.
Für die Weiterentwicklung entwerfen: Mit dem Application Design Center können Sie wiederverwendbare Vorlagen für Ihre Anwendungen erstellen und so für die Weiterentwicklung entwerfen. 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 ändernde Infrastrukturanforderungen zu berücksichtigen.
Anwendungsmodelle iterieren und verfeinern: Ü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 aus Application Design Center-Vorlagen bereitgestellt wurden. So können Sie Ihre Anwendungsdefinitionen prüfen und an diese sich ändernden Anforderungen anpassen.
Empfehlungen für Datenmodelle
Wenn Sie wissen, wie Sie Ihre realen Systeme als Anwendungen, Dienste und Arbeitslasten im App Hub-Framework 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. die Verwendung von Attributen, um klare Eigentumsverhältnisse und Metadaten festzulegen.
Wenn Sie Ihre Anwendungskomponenten unter Berücksichtigung dieses Frameworks modellieren möchten, sehen Sie sich die folgenden Beispiele für empfohlene Anwendungsfälle an.
Beispiel: Mikrodienstbasierte 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, diese Art von System als einzelne Anwendung zu modellieren. Dieser Ansatz bietet eine ganzheitliche Übersicht der gesamten Geschäftsfunktion, von der Produktentdeckung bis zur Kasse. 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.
my-ecommerce-site. Diese Anwendung stellt den gesamten Onlineshop als eine einzige, verwaltbare Einheit dar. Registrieren Sie die folgenden Ressourcen in der 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. Anzeige, Warenkorb und Kasse, 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-Bereitstellungen (GKE) ausgeführt werden.
- Netzwerkendpunkte als Dienste: Registrieren Sie die Netzwerkendpunkte für diese Mikrodienste, z. B. ihre Load Balancer, als Dienste der Anwendung. Diese stellen die Funktionen des Onlineshops für Clients bereit.
Vermeiden Sie es, jeden Mikrodienst als eigene Anwendung zu registrieren. Dieser Ansatz fragmentiert den Geschäftskontext und erschwert es, einen umfassenden Überblick über den Zustand und die Leistung Ihres Onlineshops zu erhalten.
Wenn Sie alle Mikrodienste in einer einzigen Anwendung gruppieren, bietet das folgende Vorteile:
- Umfassende Transparenz: Sie können den Zustand und die Leistung der gesamten E-Commerce-User Journey, von der Anzeigen- bis zur Bezahlfunktion, in einer einzigen, ganzheitlichen Übersicht überwachen.
- Klarer Geschäftskontext: Die Anwendung richtet die Infrastruktur an der Geschäftsfunktion aus, die sie erfüllt, nämlich dem Onlineshop. Dieser Ansatz erleichtert es, den Zustand und die Kosten der Anwendung zu verstehen.
- Vereinfachte Fehlerbehebung: Wenn ein Problem auftritt, können Sie die Abhängigkeiten zwischen den verschiedenen Mikrodiensten in der Anwendung sehen und so die Ursachenanalyse beschleunigen.
Beispiel: Dreistufige Webanwendung
Eine dreistufige Webanwendung ist ein Architekturmuster, bei dem eine Anwendung in eine Frontend-, eine Backend- und eine Datenbankstufe unterteilt wird. In diesem Anwendungsfall wird gezeigt, wie Sie eine vollständige Geschäftsfunktion als einzelne Anwendung modellieren, anstatt jede Ebene als isolierte Komponente zu behandeln.
Das folgende Modell ordnet technische Ebenen einer dreistufigen Webanwendung zu:
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 Datendienst 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 (MIGs) oder Google Kubernetes Engine-Bereitstellungen, die die Frontend-Benutzeroberfläche bereitstellen.
- Die MIGs oder Google Kubernetes Engine-Deployments, die die Backend-Geschäftslogik ausführen.
Wenn Sie alle drei Ebenen in einer einzigen Anwendung gruppieren, bietet das 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 zusammenführen zu müssen.
- Klare Eigentumsverhältnisse: Sie können der
my-web-app-Anwendung Geschäfts-, Entwickler- und Betreiberinhaber 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, um eine konsistente Governance auf allen Ebenen zu ermöglichen.
Strategien für Anwendungsdesign und Governance
Wenden Sie die folgenden Strategien an, um dafür zu sorgen, dass Ihre App Hub- und Application Design Center-Einrichtung skalierbar, verwaltbar und auf Ihre Betriebsabläufe abgestimmt ist.
Zwischen globalen und regionalen Anwendungen wählen
Die Wahl des Standorts für eine Anwendung, entweder global oder regional, ist eine grundlegende Entscheidung, die sich auf die Datenverarbeitung, die Latenz und die 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 von Anforderungen an den Datenstandort. Regionale Anwendungen werden empfohlen, wenn sich alle Anwendungskomponenten in einer einzelnen Google Cloud -Region befinden. Dadurch ist eine inhärente Kompatibilität mit regionsspezifischen Google Cloud -Features und Fehlerdomains gegeben. Eine Anleitung zum Erstellen hochverfügbarer Systeme finden Sie unter Hochverfügbare Systeme durch Ressourcenredundanz erstellen.
- Globale Anwendungen strategisch einsetzen: Entscheiden Sie sich nur dann für eine globale Anwendung, wenn die Komponenten Ihres Systems zwangsläufig über mehrere Regionen verteilt sind oder globale Google Cloud -Ressourcen wie einen globalen externen Application Load Balancer umfassen.
- Multiregionale Systeme aufteilen: Wenn Sie Ressourcen in mehreren Regionen haben, die keine einzelne zusammenhängende globale Funktion bilden, sollten Sie separate regionale Anwendungen für Komponenten in den jeweiligen Regionen definieren. Bei dieser Vorgehensweise werden die Vorteile der Regionalisierung für jede Bereitstellung maximiert.
Einen detaillierten Vergleich der verschiedenen Bereitstellungsgeografien in App Hub finden Sie unter Globale und regionale Anwendungen.
Umgebungen in separate Anwendungen aufteilen
Um die Isolation für Sicherheit, Berechtigungen und Betriebsrisiken zu unterstützen, sollten Sie verschiedene Bereitstellungsumgebungen wie Entwicklung, Staging und Produktion als separate Anwendungen darstellen. Sie können Ihre Anwendungen beispielsweise als my-app-dev, my-app-staging und my-app-prod strukturieren.
Wenn Sie Umgebungen in separate Anwendungen aufteilen, können Sie genaue Grenzen für die Zugriffssteuerung, die Richtlinienerzwingung und das Monitoring festlegen. Darüber hinaus verbessert die konsistente Verwendung von Attributen, Konfigurationsdetails und Standorten für Ihre Anwendungskomponenten die Auffindbarkeit und sorgt für die Einhaltung von Governance-Richtlinien. Diese Attribute bieten umfangreiche Metadaten für Filter, Berichte und die Anwendung von Richtlinien. Das Attribut Environment bietet beispielsweise detaillierte Informationen und ressourcenspezifische Kontrolle für verschiedene Richtlinien für Bereitstellungsumgebungen. Weitere Informationen zu diesem und anderen Attributen finden Sie unter Properties und Attribute.
Anwendungsverwaltungsgrenzen an Teamstrukturen anpassen
Stellen Sie Ihre Organisationsstruktur, insbesondere die für die Anwendungsentwicklung und den Betrieb zuständigen Teams, innerhalb Ihrer Anwendungsverwaltungsgrenzen dar.
Diese Vorgehensweise vereinfacht die Eigentümerschaft und die Kommunikation, da das Anwendungsmodell das Framework widerspiegelt, mit dem Ihr Unternehmen definiert, wie Aufgaben aufgeteilt, gruppiert und koordiniert werden, um seine Funktionen zu erfüllen.
Anwendungslebenszyklus folgen
Binden Sie App Hub in Application Design Center ein, um einen nahtlosen Anwendungslebenszyklus zu ermöglichen:
- 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. Diese Vorgehensweise bietet schnell eine einheitliche Sichtbarkeit und operative Kontrolle über Ihre aktuelle Infrastruktur. Optional können Sie später in Application Design Center eine Vorlage 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 unterstützt Sie auch bei der Verwaltung konsistenter Anwendungsupdates auf Grundlage von Vorlagenversionen. Wenn Sie die Vorlage aktualisieren, können Sie die Anwendung noch einmal bereitstellen, um die Änderungen zu übernehmen. Das sorgt 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 Anwendung Verwaltungsebene über dieser Hierarchie ein, indem Sie ein Verwaltungsprojekt konfigurieren, um die Grenze für die Anwendungsverwaltung zu definieren. Eine Übersicht darüber, wie verschiedene Produkte im Rahmen von anwendungsorientierten Google Cloud-Lösungen zusammenarbeiten, finden Sie unter Anwendungsorientierte Google Cloud.
Eine sorgfältige Planung Ihrer Google Cloud -Ressourcenhierarchie für die Anwendungsverwaltung ist für die Erstellung logischer Gruppen unerlässlich. Ihre Wahl eines einzelnen Projekts, eines Ordners oder einer Gruppe von Projekten zur Definition der Grenze für die Anwendungsverwaltung hat grundlegende Auswirkungen auf die Governance, die Durchsetzung von Richtlinien und die Ressourcenerkennung. Darüber hinaus variiert der anwendungsorientierte Google Cloud-Produktsupport je nachdem, wie Sie diese Grenze für die Anwendungsverwaltung definieren.
Informationen zum Definieren der besten Grenze für die Anwendungsverwaltung für Ihre Ressourcenhierarchie und Ihre geschäftlichen Anforderungen sowie zum Produktsupport für verschiedene Ressourcenstrukturmuster finden Sie unter Anwendungseinrichtungsmodell auswählen.
Kontinuierliche Optimierung
Anwendungsdesigns sind nicht statisch, sondern entwickeln sich im Laufe der Zeit weiter. Überprüfen und optimieren Sie Ihre Anwendungen regelmäßig, um sicherzustellen, dass sie weiterhin Ihren Geschäftsfunktionen, Teamstrukturen und sich ändernden Architekturen entsprechen.
Wir empfehlen, die Statistiken aus Cloud Hub und Gemini Cloud Assist zu verwenden, um Optimierungsmöglichkeiten zu identifizieren und Ihre Anwendungen entsprechend anzupassen. Mit dem Application Design Center können Sie Architekturänderungen modellieren und bereitstellen und den Lebenszyklus Ihrer Anwendungen über Vorlagen verwalten.