App Hosting und seine Funktionsweise

App Hosting übernimmt eine komplexe Reihe von Hintergrundaufgaben, um die Bereitstellung Ihrer Anwendung zu vereinfachen. Auf dieser Seite werden wichtige Teile dieses Aufgabenablaufs beschrieben. Außerdem finden Sie Informationen zu Punkten, an denen Sie den Ablauf je nach den Anforderungen Ihrer Anwendung anpassen können.

Wichtige Begriffe und Definitionen

Um die Details des App Hosting-Ablaufs zu verstehen, ist es hilfreich, einige der Begriffe sehr genau zu definieren. Hier sind die wichtigsten Begriffe:

  • Backend: Die Sammlung verwalteter Ressourcen, die App Hosting zum Erstellen und Ausführen Ihrer Webanwendung erstellt.
  • Build: Eine bestimmte Überarbeitung Ihrer Anwendung, die normalerweise mit einem Git-Commit verknüpft ist. Der Prozess zum Erstellen eines Builds umfasst zahlreiche Unterprozesse, insbesondere das Erstellen Ihrer Anwendung in Cloud Build und das Bereitstellen einer Überarbeitung (die anfänglich 0 % des Traffics bedient, bis sie eingeführt wird) in Cloud Run.
  • Roll-out: Der Prozess, bei dem ein Build so konfiguriert wird, dass er aktiv Traffic verarbeitet. Wenn App Hosting automatisch durch einen Git-Commit ausgelöst wird, wird zuerst ein Build mit Ihrem Live-Zweig erstellt und dann ein Roll-out, um den Live-Traffic dorthin zu leiten.
  • Live-Branch: Der Branch Ihres GitHub-Repositorys, der unter Ihrer Live-URL bereitgestellt wird. Häufig ist dies der Zweig, in den Feature- oder Entwicklungszweige zusammengeführt werden.

Google Cloud- und App Hosting-Architektur

App Hosting orchestriert eine Reihe von Google Cloud-Produkten, damit Sie Ihre Webanwendung bereitstellen, bereitstellen und überwachen können. Anwendungen werden mit Cloud Build erstellt, auf Cloud Run bereitgestellt und in Cloud CDN im Cache gespeichert. Integrierte Dienste wie Cloud Secret Manager schützen Ihre API-Schlüssel.

Ein Diagramm der auf dieser Seite beschriebenen Architektur.

  1. Wenn ein Commit an Ihren Live-Zweig übertragen wird, sendet Google Cloud Developer Connect ein Ereignis an Firebase App Hosting.
  2. Als Reaktion auf dieses Ereignis erstellt Firebase App Hosting einen neuen Build für das mit dem Repository verbundene Backend.
    1. Zuerst erstellt Firebase App Hosting einen neuen Cloud Build-Build für Ihren Commit. In diesem Job bestimmen Google Cloud Buildpacks, welches Framework in Ihrer Anwendung verwendet wird, um einen Container und eine Konfiguration (einschließlich Umgebungsvariablen, Secrets, Mindest- oder Höchstanzahl von Instanzen, Nebenläufigkeit, Arbeitsspeicher, CPU und VPC-Konfiguration) zu erstellen, die zu Ihrer Anwendung passen. Weitere Informationen finden Sie unter App Hosting-Build-Prozess.
    2. Wenn der Cloud Build-Job abgeschlossen ist, wird Ihr Container in einem Artifact Registry-Repository gespeichert, das für Firebase App Hosting vorgesehen ist. Firebase App Hosting fügt dann mithilfe Ihres Images und Ihrer Konfiguration eine neue Cloud Run-Überarbeitung zu einem Cloud Run-Dienst hinzu.
  3. Sobald die Cloud Run-Version abgeschlossen und als fehlerfrei verifiziert ist, ändert Firebase App Hosting die Traffic-Konfiguration, sodass alle neuen Anfragen an die neue Cloud Run-Version weitergeleitet werden. An diesem Punkt ist die Einführung abgeschlossen.
  4. Wenn eine Anfrage an eine auf Firebase App Hosting gehostete Website gesendet wird, wird die Anfrage vom Google Cloud Load Balancer mit aktiviertem Cloud CDN verarbeitet. Nicht im Cache gespeicherte Anfragen werden an Ihren Cloud Run-Dienst gesendet. Informationen zur Optimierung der Leistung mit Cloud CDN finden Sie unter Anwendungsinhalte im Cache speichern.

Framework-Integration

App Hosting bietet vorkonfigurierte Build- und Bereitstellungsunterstützung für Webanwendungen, die in diesen Frameworks entwickelt wurden:

  • Next.js 13.5.x und höher
  • Angular 18.2.x und höher

Weitere Informationen zu bestimmten Versionen und Supportstufen finden Sie in den Supportzeitplänen.

Neben Next.js und Angular unterstützt App Hosting auch alle Web-Frameworks, die eine Build-Ausgabe bereitstellen können, die unserer Spezifikation für Ausgabe-Bundles entspricht. Weitere Informationen zu Frameworks, Framework-Adaptern und zugehörigen Tools, die von App Hosting unterstützt werden, finden Sie unter Frameworks und Tools für App Hosting.

So funktioniert die Integration von App Hosting-Repositories

Die wichtige Verbindung zwischen Ihrem GitHub-Repository und dem App Hosting-Backend wird von Developer Connect, der Konnektivitätsplattform von Google Cloud für externe DevOps-Tools, verwaltet. Wenn Sie diese Verbindung einrichten (normalerweise beim Erstellen eines App Hosting-Back-Ends), werden Sie von der Benutzeroberfläche von Developer Connect durch die Installation der Firebase-GitHub-Anwendung geführt. Die wichtigsten Schritte in diesem Prozess sind:

  1. Sie weisen Developer Connect die Rolle Secret Manager-Administrator zu. So kann das System Anmeldedaten sicher als „Secrets“ in Cloud Secret Manager speichern.
  2. Sie autorisieren die Firebase GitHub-Anwendung, auf Ihr GitHub-Repository zuzugreifen. Möglicherweise benötigen Sie zusätzliche GitHub-Berechtigungen, um auf das richtige Repository zuzugreifen.
  3. Developer Connect speichert ein dediziertes GitHub-Autorisierungstoken im Secret Manager-Repository Ihres Projekts. Ändern oder löschen Sie dieses Token nicht.

Darüber hinaus lässt sich App Hosting in die GitHub Checks API einbinden, um eine Prüfung für Roll-outs bereitzustellen. Mit dieser Prüfung können Sie den Status Ihres Roll-outs in GitHub einsehen und den Bereitstellungsprozess im Falle von Fehlern debuggen.

Integration in Firebase und andere Google-Dienste

App Hosting richtet sowohl Ihre Build- als auch Ihre Laufzeitumgebung ein, sodass Sie das Firebase Admin SDK mit Google-Standardanmeldedaten für Anwendungen initialisieren können. So kann Ihr Backend sowohl während der Erstellung als auch während der Ausführung mit anderen Firebase-Produkten kommunizieren. Weitere Informationen zum Initialisieren Ihrer App und zu anderen Themen im Zusammenhang mit dem Firebase SDK finden Sie unter Firebase SDKs in Ihre Web-App einbinden.

App Hosting Standorte

App Hosting erstellt Ihre Backend-Ressourcen an einem bestimmten Standort, der als primäre Region bezeichnet wird. App Hosting ist in ein globales CDN für eine schnelle Bereitstellung eingebunden. Nicht im Cache gespeicherte Inhalte werden jedoch aus der primären Region Ihrer Anwendung bereitgestellt. Diese Flexibilität beim Standort Ihrer Webanwendung hat entscheidende Vorteile:

  • Verbesserte Leistung und geringere Latenz, da die Daten geografisch näher an Ihre Nutzer herangebracht werden.
  • Ein katastrophaler Ausfall von App Hosting in einer Region würde sich nicht auf Webanwendungen auswirken, die in anderen Regionen bereitgestellt werden.

Sie können eine dieser Regionen auswählen, wenn Sie ein App Hosting-Backend über die Firebase Console oder die Firebase CLI erstellen:

  • us-central1 (Iowa)
  • us-east4 (N. Virginia)
  • us-east5 (Columbus)
  • asia-east1 (Taiwan)
  • asia-southeast1 (Singapur)
  • europe-west4 (Niederlande)

Das App Hosting-Backend-Dienstkonto

Während des Builds und zur Laufzeit authentifiziert sich Ihr App Hosting-Backend bei anderen Google-Diensten mit einem Dienstkonto. Ein Standarddienstkonto für diese Zwecke wird erstellt, wenn Sie App Hosting zum ersten Mal in einem Firebase-Projekt aktivieren:

firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com

Dieses Dienstkonto gilt standardmäßig für alle Back-Ends und verfügt über minimale Berechtigungen, mit denen Sie Ihre Anwendung erstellen, ausführen und überwachen können. Es hat auch die Berechtigung, das Admin SDK mit Standardanmeldedaten für Anwendungen zu authentifizieren, um Vorgänge wie das Laden von Daten aus Cloud Firestore auszuführen. Weitere Informationen finden Sie unter Firebase-App Hosting-Rollen.

Wenn Ihre Anwendung entweder während der Erstellung oder über ein laufendes Backend mit zusätzlichen Google-Diensten interagieren muss, können Sie das Standarddienstkonto durch Hinzufügen von Rollen anpassen. Wenn Ihre Anwendung beispielsweise Berechtigungen für Vertex AI benötigt, müssen Sie möglicherweise roles/aiplatform.user oder eine ähnliche Rolle hinzufügen.