Comprendre App Hosting et son fonctionnement

App Hosting gère une série complexe de tâches en arrière-plan pour simplifier le déploiement de votre application. Cette page décrit les éléments clés de ce flux de tâches, en fournissant des informations sur les points où vous pouvez personnaliser le flux en fonction des besoins de votre application.

Google Cloud et architecture App Hosting

App Hosting orchestre un ensemble de produits Google Cloud pour vous permettre de déployer, de diffuser et de surveiller votre application Web. Les applications sont créées avec Cloud Build, diffusées sur Cloud Run et mises en cache dans Cloud CDN. Des services intégrés tels que Cloud Secret Manager protègent vos clés API.

Schéma de l'architecture décrite sur cette page.

  1. Lorsqu'un commit est envoyé à votre branche en production, Google Cloud Developer Connect envoie un événement à Firebase App Hosting.
  2. En réponse à cet événement, Firebase App Hosting lance un nouveau déploiement pour chaque backend connecté au dépôt.
  3. Firebase App Hosting crée un build Cloud Build pour votre commit. Dans cette tâche, les buildpacks Google Cloud déterminent le framework utilisé dans votre application pour créer un conteneur et une configuration (y compris les variables d'environnement, les secrets, les instances minimales ou maximales, la mémoire de simultanéité, le processeur et la configuration VPC) qui conviennent à votre application.
  4. Une fois la tâche Cloud Build terminée, votre conteneur est stocké dans un dépôt Artifact Registry dédié à Firebase App Hosting. Firebase App Hosting ajoute ensuite une nouvelle révision Cloud Run à un service Cloud Run à l'aide de votre image et de votre configuration. Une fois que la révision de votre Cloud Run est validée, Firebase App Hosting modifie sa configuration de trafic pour rediriger toutes les nouvelles requêtes vers votre nouvelle révision de Cloud Run. À ce stade, le déploiement est terminé.
  5. Lorsqu'une requête est envoyée à un site Web hébergé sur Firebase App Hosting, elle est diffusée par Google Cloud Load Balancing avec Cloud CDN activé. Les requêtes non mises en cache sont envoyées à votre service Cloud Run.

Intégration de framework

App Hosting fournit une prise en charge préconfigurée de la compilation et du déploiement pour les applications Web développées dans les frameworks suivants:

  • Next.js 13.5.x et versions ultérieures
  • Angular 18.2.x et versions ultérieures

Pour en savoir plus sur les versions et les niveaux d'assistance spécifiques, consultez les calendriers d'assistance.

En plus de Next.js et d'Angular, App Hosting est également compatible avec tous les frameworks Web capables de fournir une sortie de compilation correspondant à nos spécifications de bundle de sortie. Pour en savoir plus sur les frameworks, les adaptateurs de framework et les outils associés compatibles avec App Hosting, consultez la section Frameworks et outils pour App Hosting.

Fonctionnement de l'intégration du dépôt App Hosting

La connexion importante entre votre dépôt GitHub et le backend App Hosting est gérée par Developer Connect, la plate-forme de connectivité de Google Cloud pour les outils DevOps externes. Lors de la création d'un backend App Hosting, le workflow de l'interface utilisateur de Developer Connect vous guide tout au long de l'installation de l'application GitHub Firebase. Les étapes clés de ce processus sont les suivantes:

  1. Vous attribuez à Developer Connect le rôle Administrateur de Secret Manager. Cela permet au système de stocker les identifiants de manière sécurisée en tant que "secrets" dans Cloud Secret Manager.
  2. Vous autorisez l'application GitHub Firebase à accéder à votre dépôt GitHub.
  3. Developer Connect stocke un jeton d'autorisation GitHub dédié dans le dépôt Secret Manager de votre projet. Ne modifiez ni ne supprimez ce jeton.

De plus, App Hosting s'intègre à l'API GitHub Checks pour effectuer une vérification des déploiements. Cette vérification vous permet de consulter l'état de votre déploiement dans GitHub et de déboguer le processus de déploiement en cas d'erreurs.

Intégration à Firebase et à d'autres services Google

App Hosting configure vos environnements de compilation et d'exécution afin que vous puissiez initialiser le SDK Admin Firebase avec les identifiants par défaut de l'application Google. De cette façon, votre backend peut communiquer avec d'autres produits Firebase au moment de la compilation et de l'exécution. Pour en savoir plus sur l'initialisation de votre application et d'autres sujets liés au SDK Firebase, consultez Intégrer les SDK Firebase à votre application Web.

App Hosting emplacements

App Hosting crée vos ressources backend dans un emplacement spécifique, appelé région principale. Bien que App Hosting s'intègre à un CDN mondial pour une diffusion rapide, le contenu non mis en cache est diffusé depuis la région principale de votre application. Cette flexibilité dans l'emplacement de votre application Web présente des avantages clés:

  • Amélioration des performances et réduction de la latence en rapprochant géographiquement les données de vos utilisateurs.
  • Une défaillance catastrophique pour App Hosting dans une région n'affecterait pas les applications Web déployées dans d'autres régions.

Vous pouvez choisir l'une de ces régions lorsque vous créez un backend App Hosting à partir de la console ou de la CLI Firebase:

  • us-central1 (Iowa)
  • asia-east1 (Taïwan)
  • europe-west4 (Pays-Bas)

Compte de service de backend App Hosting

Lors de la compilation et de l'exécution, votre backend App Hosting s'authentifie auprès d'autres services Google avec un compte de service. Un compte de service par défaut à ces fins est créé la première fois que vous activez App Hosting dans un projet Firebase:

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

Ce compte de service s'applique par défaut à tous les backends et dispose d'un ensemble minimal d'autorisations pour vous permettre de créer, d'exécuter et de surveiller votre application. Il est également autorisé à authentifier le SDK Admin avec les identifiants par défaut de l'application pour effectuer des opérations telles que le chargement de données à partir de Cloud Firestore. Consultez la section Rôles App Hosting Firebase.

Si votre application doit interagir avec d'autres services Google au moment de la compilation ou à partir d'un backend en cours d'exécution, vous pouvez personnaliser le compte de service par défaut en ajoutant des rôles. Par exemple, si votre application nécessite des autorisations pour Vertex AI, vous devrez peut-être ajouter roles/aiplatform.user ou un rôle associé.

Termes clés et définitions

  • Backend: ensemble de ressources gérées créées par App Hosting pour créer et exécuter votre application Web.
  • Déploiement: version spécifique de votre application en ligne, associée à un commit Git.
  • Branche active: branche de votre dépôt GitHub qui est déployée sur votre URL active. Il s'agit souvent de la branche dans laquelle les branches de fonctionnalités ou de développement sont fusionnées.