Comprende el hosting de apps y cómo funciona

App Hosting controla una serie compleja de tareas en segundo plano para simplificar la implementación de tu app. En esta página, se describen las partes clave de ese flujo de tareas y se proporciona información sobre los puntos en los que podrías querer personalizar el flujo según las necesidades de tu app.

Google Cloud y la arquitectura de App Hosting

App Hosting orquesta un conjunto de productos de Google Cloud para que puedas implementar, entregar y supervisar tu app web. Las apps se compilan con Cloud Build, se entregan en Cloud Run y se almacenan en caché en Cloud CDN. Los servicios integrados, como Cloud Secret Manager, mantienen tus claves de API seguras.

Un diagrama de la arquitectura que se describe en esta página.

  1. Cuando se envía una confirmación a tu rama publicada, Google Cloud Developer Connect envía un evento a Firebase App Hosting.
  2. En respuesta a este evento, Firebase App Hosting inicia un nuevo lanzamiento para cada backend conectado al repositorio.
  3. Firebase App Hosting crea una compilación Cloud Build nueva para tu confirmación. En esta tarea, los buildpacks de Google Cloud determinan qué framework se usa en tu aplicación para crear un contenedor y una configuración (incluidas las variables de entorno, los secretos, las instancias mínimas o máximas, la memoria de simultaneidad, la CPU y la configuración de VPC) que se adapte a tu aplicación.
  4. Una vez que se complete la tarea de Cloud Build, tu contenedor se almacenará en un repositorio Artifact Registry dedicado a Firebase App Hosting. Luego, Firebase App Hosting agrega una nueva revisión de Cloud Run a un servicio de Cloud Run con tu imagen y configuración. Una vez que se verifique que tu revisión de Cloud Run está en buen estado, Firebase App Hosting modificará su configuración de tráfico para que todas las solicitudes nuevas se dirijan a tu nueva revisión de Cloud Run. En este punto, el lanzamiento se completó.
  5. Cuando se envía una solicitud a un sitio web alojado en Firebase App Hosting, el balanceador de cargas de Google Cloud la entrega con Cloud CDN habilitado. Las solicitudes sin almacenar en caché se envían a tu servicio Cloud Run.

Integración de frameworks

App Hosting proporciona compatibilidad preconfigurada de compilación e implementación para apps web desarrolladas en estos frameworks:

  • Next.js 13.5.x y versiones posteriores
  • Angular 18.2.x y versiones posteriores

Consulta los programas de asistencia para obtener detalles sobre versiones y niveles de asistencia específicos.

Además de Next.js y Angular, App Hosting también admite cualquier framework web que pueda proporcionar un resultado de compilación que coincida con nuestra especificación de paquete de salida. Consulta Frameworks y herramientas para App Hosting para obtener más información sobre los frameworks, los adaptadores de frameworks y las herramientas relacionadas que admite App Hosting.

Cómo funciona la integración del repositorio App Hosting

Developer Connect, la plataforma de conectividad de Google Cloud para herramientas de DevOps externas, controla la conexión importante entre tu repositorio de GitHub y el backend de App Hosting. Durante la creación de un backend de App Hosting, el flujo de trabajo de la IU de Developer Connect te guía por la instalación de la app de GitHub de Firebase. Los pasos clave de este proceso son los siguientes:

  1. Le otorgas a Developer Connect el rol de Administrador de Secret Manager. Esto permite que el sistema almacene credenciales de forma segura como "secretos" en Secret Manager de Cloud.
  2. Autorizas a la app de GitHub de Firebase a acceder a tu repositorio de GitHub.
  3. Developer Connect almacena un token de autorización de GitHub dedicado en el repositorio de Secret Manager de tu proyecto. No modifiques ni borres este token.

Además, App Hosting se integra a la API de GitHub Checks para proporcionar una verificación de lanzamientos. Esta verificación te permite ver el estado de tu lanzamiento en GitHub y depurar el proceso de implementación en caso de que haya errores.

Integración con Firebase y otros servicios de Google

App Hosting configura los entornos de compilación y tiempo de ejecución para que puedas inicializar el SDK de Firebase Admin con las credenciales predeterminadas de la aplicación de Google. De esta manera, tu backend puede comunicarse con otros productos de Firebase durante el tiempo de compilación y ejecución. Consulta Cómo integrar SDKs de Firebase en tu app web para obtener más información sobre cómo inicializar tu app y otros temas relacionados con el SDK de Firebase.

App Hosting ubicaciones

App Hosting crea tus recursos de backend en una ubicación específica, llamada tu región principal. Si bien App Hosting se integra con una CDN global para una entrega rápida, el contenido sin almacenar en caché se entrega desde la región principal de tu app. Esta flexibilidad en la ubicación de tu app web tiene las siguientes ventajas clave:

  • Mejora el rendimiento y reduce la latencia acercando los datos geográficamente a tus usuarios.
  • Una falla catastrófica de App Hosting en una región no afectaría las apps web implementadas en otras regiones.

Puedes elegir cualquiera de estas regiones cuando creas un backend de App Hosting desde la consola o la CLI de Firebase:

  • us-central1 (Iowa)
  • asia-east1 (Taiwán)
  • europe-west4 (Países Bajos)

La cuenta de servicio de backend de App Hosting

Durante la compilación y el tiempo de ejecución, tu backend de App Hosting se autentica con otros servicios de Google con una cuenta de servicio. Se crea una cuenta de servicio predeterminada para estos fines la primera vez que habilitas App Hosting en un proyecto de Firebase:

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

Esta cuenta de servicio se aplica a todos los backends de forma predeterminada y tiene un conjunto mínimo de permisos para permitirte compilar, ejecutar y supervisar tu app. También tiene permiso para autenticar el SDK de Admin con credenciales predeterminadas de la aplicación para realizar operaciones como cargar datos desde Cloud Firestore. Consulta Roles de App Hosting de Firebase.

Si tu app necesita interactuar con servicios adicionales de Google, ya sea en el momento de la compilación o desde un backend en ejecución, puedes personalizar la cuenta de servicio predeterminada agregando roles. Por ejemplo, si tu app requiere permisos para Vertex AI, es posible que necesites agregar roles/aiplatform.user o algún rol relacionado.

Términos y definiciones clave

  • Backend: Es el conjunto de recursos administrados que App Hosting crea para compilar y ejecutar tu app web.
  • Lanzamiento: Es una versión específica de tu app publicada, vinculada a una confirmación de git.
  • Rama publicada: Es la rama de tu repositorio de GitHub que se implementa en tu URL publicada. A menudo, es la rama en la que se combinan las ramas de funciones o de desarrollo.