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 es posible que desees personalizar el flujo según las necesidades de tu app.
Términos y definiciones clave
Para comprender los detalles del flujo App Hosting, es útil definir algunos términos de manera muy específica. Estos son los términos clave fundamentales:
- Backend: Es el conjunto de recursos administrados que App Hosting crea para compilar y ejecutar tu app web.
- Compilación: Es una revisión específica de tu app, que suele estar vinculada a una confirmación de Git. El proceso de creación de una compilación tiene varios subprocesos, en particular, la compilación de tu app en Cloud Build, y la implementación de una revisión (que inicialmente procesa el 0% del tráfico hasta que se lanza) en Cloud Run.
- Lanzamiento: Es el proceso de configurar una compilación para que procese el tráfico de forma activa. Cuando se activa automáticamente con una confirmación de Git, App Hosting primero crea una compilación con tu rama publicada y, luego, crea un lanzamiento para dirigir el tráfico en vivo a ella.
- 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 fusionan las ramas de funciones o las ramas de desarrollo.
Arquitectura de Google Cloud y App Hosting
App Hosting organiza un conjunto de productos de Google Cloud para que puedas implementar, publicar y supervisar tu app web. Las apps se compilan con Cloud Build, se publican en Cloud Run y se almacenan en caché en Cloud CDN. Los servicios integrados, como Cloud Secret Manager, mantienen tus claves de API seguras.
- Cuando se envía una confirmación a tu rama publicada, Google Cloud Developer Connect envía un evento a Firebase App Hosting.
- En respuesta a este evento, Firebase App Hosting crea una compilación nueva para
el backend conectado al repositorio.
- Primero, Firebase App Hosting crea una nueva compilación de Cloud Build para tu confirmación. En este trabajo, los paquetes de compilación 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. Consulta el proceso de compilaciónApp Hosting para obtener más información.
- Cuando se completa el trabajo de Cloud Build, tu contenedor se almacena en un Artifact Registry repositorio dedicado a Firebase App Hosting. Firebase App Hosting luego agrega una nueva revisión de Cloud Run a un servicio de Cloud Run con tu imagen y configuración.
- Una vez que se completa la revisión de Cloud Run y se verifica que está en buen estado, Firebase App Hosting modifica su configuración de tráfico para dirigir todas las solicitudes nuevas a tu nueva revisión de Cloud Run. En este punto, se completa el lanzamiento.
- Cuando se envía una solicitud a un sitio web alojado en Firebase App Hosting, la solicitud es procesada por el balanceador de cargas de Google Cloud con Cloud CDN habilitado. Las solicitudes no almacenadas en caché se envían a tu Cloud Run servicio. Consulta Almacena contenido de la app en caché para obtener orientación sobre cómo optimizar el rendimiento con Cloud CDN.
Integración del framework
App Hosting proporciona compatibilidad preconfigurada para la compilación y la implementación de apps web desarrolladas en estos frameworks:
- Next.js 13.5.x y versiones posteriores
- Angular 18.2.x y versiones posteriores
Consulta los cronogramas de asistencia para obtener detalles sobre las versiones y los 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 compatibles con App Hosting.
Cómo funciona la integración del repositorio App Hosting
Developer Connect, la plataforma de conectividad de Google Cloud para herramientas externas de DevOps, controla la conexión importante entre tu repositorio de GitHub y el App Hosting backend. Cuando configuras esta conexión (por lo general, 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 Firebase GitHub. Los pasos clave de este proceso son los siguientes:
- 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 Cloud Secret Manager.
- Autorizas a la app de Firebase GitHub para que acceda a tu repositorio de GitHub. Es posible que necesites permisos adicionales de GitHub para acceder al repositorio correcto.
- 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 con la API de verificaciones de GitHub para proporcionar una verificación de los 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 tus entornos de compilación y de ejecución para que puedas inicializar el SDK de Firebase Admin con las credenciales predeterminadas de la aplicación de Google. De esa manera, tu backend puede comunicarse con otros productos de Firebase durante la compilación y el tiempo de ejecución. Consulta Integra los SDK de Firebase en tu app web para obtener más información sobre la inicialización de 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 región principal. Si bien App Hosting se integra con una CDN global para una entrega rápida, el contenido no almacenado en caché se publica desde la región principal de tu app. Esta flexibilidad en la ubicación de tu app web tiene ventajas clave:
- Mejora el rendimiento y reduce la latencia, ya que acerca los datos geográficamente a tus usuarios.
- Una falla catastrófica de App Hosting en una región no afectaría a las apps web implementadas en otras regiones.
Puedes elegir cualquiera de estas regiones cuando creas un App Hosting backend desde la Firebase consola o la Firebase CLI:
us-central1(Iowa)us-east4(Norte de Virginia)us-east5(Columbus)asia-east1(Taiwán)asia-southeast1(Singapur)europe-west4(Países Bajos)
La cuenta de servicio de backend App Hosting
Durante la compilación y el tiempo de ejecución, tu App Hosting backend 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 Firebase App Hosting.
Si tu app necesita interactuar con servicios adicionales de Google durante 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 debas agregar
roles/aiplatform.user
o algún rol relacionado.