Mehrstufige Anwendung mit Gemini für Google Cloud-Unterstützung erstellen

In dieser Anleitung erfahren Sie, wie Sie Gemini für Google Cloud verwenden, um eine mehrschichtige Webanwendung mit vollständig verwalteten Diensten zu entwerfen, sofern dies möglich ist.

Lernziele

  • Lernen Sie verschiedene Google-Dienste kennen, mit denen Sie Traffic über das öffentliche Internet bereitstellen können.
  • Lernen Sie verschiedene Google-Dienste kennen, mit denen Sie Daten für einen schnelleren Abruf im Cache speichern können.
  • Lernen Sie verschiedene Google-Dienste kennen, mit denen Sie zustandsorientierte Daten beibehalten können.
  • Architektur der Interaktion verschiedener Google-Dienste entwickeln

Verwendete Google Cloud-Produkte

  • Cloud Run: Cloud Run ist eine verwaltete Computing-Plattform, mit der Sie Container direkt in der skalierbaren Google-Infrastruktur ausführen können. Sie können in Cloud Run Code bereitstellen, der in einer beliebigen Programmiersprache geschrieben ist, wenn Sie ein Container-Image damit erstellen können.
  • Cloud Memorystore: Cloud Memorystore ist ein vollständig verwalteter In-Memory-Datenspeicherdienst für Redis und Memcached. Erstellen Sie Anwendungs-Caches, die Datenzugriff in weniger als einer Millisekunde ermöglichen.
  • Cloud SQL: Cloud SQL ist ein Dienst, der vollständig verwaltete relationale Datenbanken in der Cloud bereitstellt. Es bietet MySQL-, PostgreSQL- und SQL Server-Datenbankmodule.

Hinweise

  1. Achten Sie darauf, dass Gemini für Ihr Google Cloud-Nutzerkonto und Ihr Projekt eingerichtet ist.

Informationen zur Webbereitstellung in Google Cloud

Nehmen wir für das folgende Beispiel an, dass Sie ein Architekt sind, der mit Gemini Entscheidungen über einen unternehmensweiten goldenen Weg für Entwickler treffen möchte, die schnell eine Webanwendung in Google Cloud erstellen möchten. Ihr Ziel ist es, mithilfe der Unterstützung von Gemini die verfügbaren Optionen, ihre Eigenschaften und ihre Interoperabilität zu verstehen.

In der Google Cloud Console können Sie mit Gemini chatten, um Hilfe zu erhalten. Im Bereich Gemini geben Sie Aufforderungen ein, bei denen es sich um Fragen oder Anweisungen handelt, die die von Ihnen gewünschte Hilfe beschreiben, und Gemini gibt die Antworten zurück.

Zuerst bitten Sie Gemini um Entscheidungshilfe in Bezug auf die Computing-Stufe, auf der Ihre Webbereitstellung ausgeführt wird. Gehen Sie dazu so vor:

  1. Klicken Sie in der Symbolleiste der Google Cloud Console auf Gemini öffnen.

  2. Geben Sie im Bereich Gemini je nach Anforderungen und Einstellungen die folgende Eingabeaufforderung ein und klicken Sie dann auf „Senden“:

    I am designing a multi-tier web app in Google Cloud. First, I would
    like help on deciding what to use for the compute tier. What are my
    options for running an app to serve traffic over the public internet?
    I would like to prioritize fully-managed services.
    

    Die Antwort von Gemini sollte in etwa so aussehen:

    Es gibt verschiedene Möglichkeiten, eine Anwendung so auszuführen, dass Traffic über das öffentliche Internet in Google Cloud weitergeleitet wird. Sie können Cloud Run, App Engine oder Compute Engine verwenden.
    Cloud Run ist eine vollständig verwaltete serverlose Plattform, mit der Sie zustandslose Container ausführen können, die sich über HTTP-Anfragen aufrufen lassen. App Engine ist eine vollständig verwaltete Plattform, die eine Programmierumgebung zum Entwickeln und Ausführen von Webanwendungen bietet. Compute Engine ist ein VM-Dienst, mit dem Sie virtuelle Maschinen erstellen und verwalten können.
    Bei der Entscheidung, welche Option für Sie am besten geeignet ist, müssen Sie die folgenden Faktoren berücksichtigen:
    Größe und Komplexität der Anwendung
    Umfang des erwarteten Traffics
    Erforderliche Kontrolle über die Anwendung
    Kosten
    Wenn Sie eine kleine, einfache Anwendung haben, die nur wenig Traffic erhalten soll, ist Cloud Run eine gute Option. Wenn Sie eine größere, komplexere Anwendung haben, die sehr viel Traffic erhält, sind App Engine oder Compute Engine möglicherweise die bessere Option. Wenn Sie viel Kontrolle über Ihre Anwendung benötigen, ist Compute Engine eine gute Option. Wenn Sie ein Budget haben, ist Cloud Run eine gute Option.

  3. Da Sie den schnellsten Weg zum Ausführen kleiner Webanwendungen in Ihrer Organisation entwerfen, scheint die Gemini-Beschreibung von Cloud Run Ihren Anforderungen am besten zu entsprechen. Zuerst müssen Sie jedoch einige Merkmale der Plattform überprüfen. Geben Sie den folgenden Prompt ein und klicken Sie dann auf „Senden“:

    Okay, I think I will move forward with Cloud Run. What metric does
    Cloud Run use to perform autoscaling?
    

    Die Antwort von Gemini sollte in etwa so aussehen:

    Cloud Run verwendet die Anzahl der eingehenden Anfragen oder Ereignisse, um das Autoscaling auszuführen. Wenn eine Überarbeitung keinen Traffic empfängt, wird sie standardmäßig auf 0 Instanzen skaliert. Weitere Informationen finden Sie hier: Informationen zum Instanz-Autoscaling.

  4. Mit dem Autoscaling in Cloud Run basierend auf eingehenden Anfragen möchten Sie jetzt nachvollziehen, wie Traffic in die gehosteten Anwendungen eingeht. Geben Sie die folgende Eingabeaufforderung ein:

    How is a Cloud Run application exposed to users over the internet?
    

    Die Antwort von Gemini sollte in etwa so aussehen:

    Cloud Run akzeptiert eingehenden Traffic von den folgenden Quellen:
    Öffentliches Internet: Anfragen werden direkt von öffentlichen Quellen an Ihre Cloud Run-Dienste weitergeleitet. Dabei haben Sie die Möglichkeit, Traffic über einen externen HTTP(S)-Load-Balancer weiterzuleiten.
    Google APIs und Google-Dienste: Anfragen von Google APIs und Google-Diensten werden ohne einen externen HTTP(S)-Load-Balancer an Ihre Cloud Run-Dienste weitergeleitet.
    VPC-Netzwerke: Anfragen von VPC-Netzwerken werden über einen VPC-Connector an Ihre Cloud Run-Dienste weitergeleitet.
    Mit den Einstellungen für eingehenden Traffic können Sie steuern, wie Ihr Cloud Run-Dienst für Nutzer freigegeben wird.

  5. Ein externer, öffentlicher Load-Balancer ist für diese Anwendungsklasse in Ordnung. Gemini soll Ihnen aber dabei helfen zu verstehen, ob die Plattform diese Anwendung nur authentifizierten Nutzern mit den richtigen Berechtigungen zur Verfügung stellen kann. Geben Sie den folgenden Prompt ein:

    Is there an easy mechanism in Cloud Run that allows only
    authenticated users to access an application?
    

    Die Antwort von Gemini sollte in etwa so aussehen:

    Ja. Es gibt einen Mechanismus, mit dem sichergestellt wird, dass nur authentifizierte Nutzer auf eine Cloud Run-Anwendung zugreifen können. Geben Sie dazu bei der Bereitstellung eines Dienstes die Option „no-allow-unAuthenticated“ an. Dies führt dazu, dass Ihr Dienst nicht authentifizierte Anfragen mit der Fehlermeldung „HTTP 403 Forbidden“ ablehnt. Weitere Informationen zu Ihrer Frage finden Sie hier: Öffentlichen (nicht authentifizierten) Zugriff zulassen.

  6. Wenn Sie dies schließlich für Entwickler in Ihrer Organisation einrichten möchten, sollten sie keine Infrastrukturkonfigurationen wie Dockerfiles schreiben.

    We have standardized on using Django as a web framework. Can I deploy
    a Python app to Cloud Run directly from source code? Or do we need to
    implement a way to containerize this ourselves?
    

    Die Antwort von Gemini sollte in etwa so aussehen:

    Ja, Sie können eine Python-Anwendung direkt über den Quellcode in Cloud Run bereitstellen. Sie können das Cloud Run Python-Buildpack zum Erstellen und Bereitstellen Ihrer Python-Anwendung verwenden. Weitere Informationen zu Ihrer Frage finden Sie hier: Aus Quellcode bereitstellen.

Caching in Google Cloud kennenlernen

Nun möchten Sie mit der Auswahl eines Dienstes für die nächste Stufe fortfahren: Caching. Ein häufiger Bedarf Ihres Teams an dieser Ebene führt dazu, dass Gemini aufgefordert wird, Ihnen die Angebote von Google Cloud in diesem Bereich zu erläutern. Führen Sie die folgenden Schritte aus, um Gemini um Unterstützung zu bitten:

  1. Klicken Sie in der Symbolleiste der Google Cloud Console auf Gemini öffnen.

  2. Geben Sie den folgenden Prompt ein und klicken Sie auf „Senden“:

    Okay! Thank you. Now let's move on to the caching tier. How can I
    introduce a caching layer to my web app? I would like to prioritize
    fully-managed services.
    

    Die Antwort von Gemini sollte in etwa so aussehen:

    Es gibt verschiedene Möglichkeiten, eine Caching-Ebene in Ihre Webanwendung einzubinden. Eine Möglichkeit besteht darin, einen vollständig verwalteten Dienst wie Cloud Memorystore zu verwenden. Cloud Memorystore ist ein vollständig verwalteter In-Memory-Datenspeicherdienst für Redis. Sie bietet eine leistungsstarke, skalierbare und zuverlässige Caching-Lösung, mit der Sie die Leistung Ihrer Webanwendung verbessern können. Sie können Cloud Memorystore auch verwenden, um statische Inhalte wie Bilder und JavaScript-Dateien im Cache zu speichern. Weitere Informationen zu Ihrer Frage finden Sie hier: Einführung in Memorystore: Ein vollständig verwalteter In-Memory-Datenspeicherdienst für Redis.

  3. Bevor Sie Cloud Memorystore for Redis verwenden, sollten Sie dafür sorgen, dass die Kommunikation zwischen Cloud Run und Cloud Memorystore privat ist. Geben Sie den folgenden Prompt ein:

    If I were to use Cloud Memorystore, how do I ensure the communication
    between Cloud Run and Cloud Memorystore is private?
    

    Die Antwort von Gemini sollte in etwa so aussehen:

    Damit die Kommunikation zwischen Cloud Run und Cloud Memorystore privat ist, müssen Sie einen Connector für Serverloser VPC-Zugriff erstellen. Dies ermöglicht eine Verbindung zwischen Cloud Run und der VPC, in der sich Ihre Memorystore-Instanz befindet. Weitere Informationen zu Ihrer Frage finden Sie hier: Memorystore for Redis zum Cachen Ihrer Django-Anwendungen verwenden.

Relationale Datenbanken in Google Cloud kennenlernen

Schließlich möchten Sie sich auf einen relationalen Datenbankspeicher festlegen. Sie fordern Gemini dazu auf, Ihnen bei der Navigation durch die Optionen zu helfen:

  1. Geben Sie den folgenden Prompt ein:

    And for the relational database tier, where do you recommend I
    persist data? Please keep in mind that I would like to continue to
    prioritize fully-managed services.
    

    Gemini sollte in etwa so antworten:

    Es gibt verschiedene Möglichkeiten, Daten in einem vollständig verwalteten Dienst zu speichern. Eine Möglichkeit ist die Verwendung von Cloud SQL. Cloud SQL ist ein vollständig verwalteter Dienst für relationale Datenbanken, der eine einfache, zuverlässige und sichere Plattform zum Ausführen von SQL Server-, MySQL- und PostgreSQL-Arbeitslasten in Google Cloud bietet. Es soll Ihnen den schnellen Einstieg in serverlose Migrationen mit Database Migration Service erleichtern. Cloud SQL for SQL Server stellt automatisch sicher, dass Ihre SQL Server-Datenbanken zuverlässig, sicher und skalierbar sind, damit Ihr Unternehmen ohne Unterbrechung weiterläuft. Weitere Informationen zu Ihrer Frage finden Sie hier: Cloud SQL-Übersicht.

Beispielarchitektur bereitstellen

Schließlich möchten Sie sich auf einen relationalen Datenbankspeicher festlegen. Sie fordern Gemini dazu auf, Ihnen bei der Navigation durch die Optionen zu helfen:

Okay, we have landed on using Cloud Run, Cloud Memorystore, and Cloud
SQL together. Is there a solution I can use that is available from
Google that uses these three technologies for a web application?

Gemini sollte in etwa so antworten:

Hier ist eine Lösung, die Cloud Run, Cloud Memorystore for Redis und Cloud SQL zusammen für eine Webanwendung verwendet:
Schnellstartlösung: dreistufige Webanwendung.
Diese Lösung ist eine dreistufige Webanwendung, die Cloud Run, Cloud Memorystore for Redis und Cloud SQL for PostgreSQL verwendet. Die Anwendung verwendet Cloud Memorystore zum Speichern von Daten im Cache und Cloud SQL zum Speichern nichtflüchtiger Daten.

Sie möchten Ihre neue Architektur testen. Folgen Sie dazu der Anleitung auf der bereitgestellten Webseite und stellen Sie diese Beispiellösung bereit, damit Sie Ihre Architektur für den goldenen Pfad testen und prüfen können.

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, können Sie das Google Cloud-Projekt löschen, das Sie für diese Anleitung erstellt haben. Alternativ können Sie die einzelnen Ressourcen löschen.

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte