Comprendi l'hosting delle app e come funziona

App Hosting gestisce una serie complessa di attività in background per semplificare il deployment della tua app. Questa pagina descrive le parti chiave del flusso di attività, fornendo informazioni sui punti in cui potresti voler personalizzare il flusso in base alle esigenze della tua app.

Architettura di Google Cloud e App Hosting

App Hosting orchestra un insieme di prodotti Google Cloud in modo da poter eseguire il deployment, pubblicare e monitorare la tua app web. Le app vengono create con Cloud Build, pubblicate su Cloud Run e memorizzate nella cache in Cloud CDN. I servizi integrati come Cloud Secret Manager mantengono al sicuro le tue chiavi API.

Un diagramma dell'architettura descritta in questa pagina.

  1. Quando viene eseguito il push di un commit nel ramo pubblicato, Google Cloud Developer Connect invia un evento a Firebase App Hosting.
  2. In risposta a questo evento, Firebase App Hosting avvia un nuovo implementazione per ogni backend collegato al repository.
  3. Firebase App Hosting crea una nuova compilazione Cloud Build per il commit. In questo job, i buildpack di Google Cloud determinano il framework utilizzato nella tua applicazione per creare un contenitore e una configurazione (incluse variabili di ambiente, secret, istanze minime o massime, connettività in parallelo memoria, CPU e configurazione VPC) adatta alla tua applicazione.
  4. Al termine del job Cloud Build, il contenitore viene archiviato in un repository Artifact Registry dedicato a Firebase App Hosting. Firebase App Hosting aggiunge una nuova revisione Cloud Run a un servizio Cloud Run utilizzando l'immagine e la configurazione. Una volta verificata la correttezza della revisione Cloud Run, Firebase App Hosting modifica la configurazione del traffico in modo da indirizzare tutte le nuove richieste alla nuova revisione Cloud Run. A questo punto, l'implementazione è completata.
  5. Quando una richiesta viene inviata a un sito web ospitato su Firebase App Hosting, viene gestita da Google Cloud Load Balancer con Cloud CDN abilitato. Le richieste non memorizzate nella cache vengono inviate al servizio Cloud Run.

Integrazione del framework

App Hosting fornisce il supporto per la compilazione e il deployment preconfigurati per le app web sviluppate in questi framework:

  • Next.js 13.5.x e versioni successive
  • Angular 18.2.x e versioni successive

Consulta le pianificazioni dell'assistenza per informazioni dettagliate su versioni e livelli di assistenza specifici.

Oltre a Next.js e Angular, App Hosting supporta anche qualsiasi framework web in grado di fornire un output di compilazione che corrisponda alla nostra specifica del bundle di output. Per ulteriori informazioni su framework, adattatori di framework e strumenti correlati supportati da App Hosting, consulta la sezione Framework e strumenti per App Hosting.

Come funziona l'integrazione del repository App Hosting

La connessione importante tra il tuo repository GitHub e il backend di App Hosting è gestita da Developer Connect, la piattaforma di connettività di Google Cloud per gli strumenti DevOps esterni. Durante la creazione di un backend App Hosting, il flusso di lavoro dell'interfaccia utente di Developer Connect ti guida nell'installazione dell'app GitHub di Firebase. I passaggi chiave di questa procedura sono:

  1. Concedi a Developer Connect il ruolo Amministratore Secret Manager. In questo modo, il sistema può archiviare le credenziali in modo sicuro come "secret" in Cloud Secret Manager.
  2. Autorizzi l'app GitHub di Firebase ad accedere al tuo repository GitHub.
  3. Developer Connect archivia un token di autorizzazione GitHub dedicato nel repository di Secret Manager del progetto. Non modificare o eliminare questo token.

Inoltre, App Hosting si integra con l'API GitHub Checks per fornire un controllo degli implementamenti. Questo controllo ti consente di visualizzare lo stato dell'implementazione su GitHub e di eseguire il debug della procedura di deployment in caso di errori.

Integrazione con Firebase e altri servizi Google

App Hosting configura gli ambienti di compilazione e di runtime in modo da poter inizializzare l'SDK Firebase Admin con le credenziali predefinite dell'applicazione Google. In questo modo, il tuo backend può comunicare con altri prodotti Firebase sia in fase di compilazione che di esecuzione. Per ulteriori informazioni sull'inizializzazione dell'app e su altri argomenti relativi all'SDK Firebase, consulta Eseguire l'integrazione degli SDK Firebase nell'app web.

App Hosting località

App Hosting crea le risorse di backend in una posizione specifica, chiamata la regione principale. Sebbene App Hosting si integri con una CDN globale per una distribuzione rapida, i contenuti non memorizzati nella cache vengono pubblicati dalla regione principale dell'app. Questa flessibilità nella posizione dell'app web offre vantaggi chiave:

  • Prestazioni migliorate e latenza ridotta avvicinando geograficamente i dati agli utenti.
  • Un errore catastrofico di App Hosting in una regione non influirebbe sulle app web di cui è stato eseguito il deployment in altre regioni.

Puoi scegliere una di queste regioni quando crei un backend App Hosting dalla console o dalla CLI Firebase:

  • us-central1 (Iowa)
  • asia-east1 (Taiwan)
  • europe-west4 (Paesi Bassi)

L'account di servizio di backend App Hosting

Durante la compilazione e in fase di esecuzione, il backend di App Hosting si autentica con altri servizi Google con un account di servizio. Un account di servizio predefinito per queste finalità viene creato la prima volta che attivi App Hosting in un progetto Firebase:

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

Per impostazione predefinita, questo account di servizio si applica a tutti i backend e dispone di un insieme minimo di autorizzazioni per consentirti di creare, eseguire e monitorare la tua app. Ha inoltre l'autorizzazione per autenticare l'SDK Admin con le credenziali predefinite dell'applicazione, per eseguire operazioni come il caricamento dei dati da Cloud Firestore. Consulta Ruoli App Hosting di Firebase.

Se la tua app deve interagire con altri servizi Google in fase di compilazione o da un backend in esecuzione, puoi personalizzare l'account di servizio predefinito aggiungendo i ruoli. Ad esempio, se la tua app richiede autorizzazioni per Vertex AI, potresti dover aggiungere roles/aiplatform.user o un ruolo correlato.

Termini e definizioni chiave

  • Backend: la raccolta di risorse gestite che App Hosting crea per creare ed eseguire la tua app web.
  • Rollout: una versione specifica della tua app pubblicata, collegata a un commit Git.
  • Branch live: il branch del tuo repository GitHub di cui viene eseguito il deployment nell'URL live. Spesso è il ramo in cui vengono uniti i rami delle funzionalità o i rami di sviluppo.