App Hosting gestisce una serie complessa di attività in background per semplificare il deployment della tua app. Questa pagina descrive le parti principali di questo flusso di attività, fornendo informazioni sui punti in cui potresti voler personalizzare il flusso in base alle esigenze della tua app.
Termini e definizioni chiave
Per comprendere i dettagli del flusso App Hosting, è utile definire alcuni termini in modo molto specifico. Ecco i termini chiave fondamentali:
- Backend: la raccolta di risorse gestite che App Hosting crea per creare ed eseguire la tua app web.
- Build: una revisione specifica della tua app, in genere collegata a un commit git. Il processo di creazione di una build prevede numerosi sottoprocessi, in particolare la creazione dell'app in Cloud Build e il deployment di una revisione (che inizialmente gestisce lo 0% del traffico fino al momento dell'implementazione) in Cloud Run.
- Implementazione: il processo di impostazione di una build per la gestione attiva del traffico. Quando viene attivato automaticamente da un commit Git, App Hosting crea prima una build utilizzando il branch attivo, quindi crea un'implementazione per indirizzare il traffico in tempo reale verso di essa.
- Branch pubblicato: il branch del tuo repository GitHub di cui viene eseguito il deployment nell'URL pubblicato. Spesso è il branch in cui vengono uniti i branch delle funzionalità o di sviluppo.
Architettura di Google Cloud e App Hosting
App Hosting orchestra un insieme di prodotti Google Cloud per consentirti di 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.
- Quando viene eseguito il push di un commit nel branch attivo, Google Cloud Developer Connect invia un evento a Firebase App Hosting.
- In risposta a questo evento, Firebase App Hosting crea una nuova build per il backend connesso al repository.
- Innanzitutto, Firebase App Hosting crea una nuova build Cloud Build per il tuo commit. In questo job, i buildpack di Google Cloud determinano il framework utilizzato nella tua applicazione per creare un container e una configurazione (tra cui variabili di ambiente, secret, numero minimo o massimo di istanze, contemporaneità, memoria, CPU e configurazione VPC) adatti alla tua applicazione. Per saperne di più, consulta il processo di build di App Hosting.
- Al termine del job Cloud Build, il container viene archiviato in un repository Artifact Registry dedicato a Firebase App Hosting. Firebase App Hosting aggiunge quindi una nuova revisione Cloud Run a un servizio Cloud Run utilizzando l'immagine e la configurazione.
- Una volta completata la revisione Cloud Run e verificato lo stato di integrità, 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 è completa.
- Quando una richiesta viene inviata a un sito web ospitato su Firebase App Hosting, viene gestita dal bilanciatore del carico di Google Cloud con Cloud CDN abilitato. Le richieste non memorizzate nella cache vengono inviate al tuo servizio Cloud Run. Consulta Memorizza i contenuti dell'app nella cache per indicazioni su come ottimizzare le prestazioni con Cloud CDN.
Integrazione del framework
App Hosting fornisce supporto preconfigurato per la creazione e il deployment di 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 i dettagli 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 build corrispondente alla nostra specifica del bundle di output. Per saperne di più su framework, adattatori di framework e strumenti correlati supportati da App Hosting, consulta Framework e strumenti per App Hosting.
Come funziona l'integrazione del repository App Hosting
L'importante connessione tra il tuo repository GitHub e il backend App Hosting è gestita da Developer Connect, la piattaforma di connettività di Google Cloud per gli strumenti DevOps esterni. Quando configuri questa connessione (in genere durante la creazione di un backend App Hosting), il flusso di lavoro dell'interfaccia utente di Developer Connect ti guida nell'installazione dell'app Firebase GitHub. I passaggi chiave di questo processo sono:
- Concedi a Developer Connect il ruolo Secret Manager Admin. In questo modo, il sistema può archiviare le credenziali in modo sicuro come "secret" in Cloud Secret Manager.
- Autorizzi l'app Firebase GitHub ad accedere al tuo repository GitHub. Potresti aver bisogno di autorizzazioni GitHub aggiuntive per accedere al repository corretto.
- Developer Connect archivia un token di autorizzazione GitHub dedicato nel repository di Secret Manager del tuo progetto. Non modificare o eliminare questo token.
Inoltre, App Hosting si integra con l'API GitHub Checks per fornire un controllo per i rollout. Questo controllo ti consente di visualizzare lo stato dell'implementazione in GitHub ed eseguire il debug del processo di deployment in caso di errori.
Integrazione con Firebase e altri servizi Google
App Hosting configura sia l'ambiente di build che quello 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 build che di runtime. Per saperne di più sull'inizializzazione dell'app e su altri argomenti correlati all'SDK Firebase, consulta Integra gli SDK Firebase nella tua app web.
App Hosting località
App Hosting crea le risorse di backend in una località specifica, chiamata 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 della tua app. Questa flessibilità nella posizione dell'app web offre vantaggi chiave:
- Prestazioni migliorate e latenza ridotta grazie all'avvicinamento geografico dei dati agli utenti.
- Un errore irreversibile 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 Firebase o dall'interfaccia a riga di comando Firebase:
us-central1(Iowa)us-east4(N. del Nord)us-east5(Columbus)asia-east1(Taiwan)asia-southeast1(Singapore)europe-west4(Paesi Bassi)
Il service account del servizio di backend App Hosting
Durante la build e in fase di runtime, il tuo backend App Hosting si autentica con altri servizi Google con un service account. La prima volta che abiliti App Hosting in un progetto Firebase, viene creato un service account predefinito per questi scopi:
firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com
Questo service account si applica a tutti i backend per impostazione predefinita e dispone di un insieme minimo di autorizzazioni per consentirti di creare, eseguire e monitorare la tua app. Dispone inoltre dell'autorizzazione per autenticare l'SDK Admin con le Credenziali predefinite dell'applicazione, per eseguire operazioni come il caricamento di dati da Cloud Firestore. Consulta i ruoli Firebase App Hosting.
Se la tua app deve interagire con altri servizi Google durante la build o da un backend in esecuzione, puoi personalizzare l'account di servizio predefinito aggiungendo ruoli. Ad esempio, se la tua app richiede autorizzazioni per Vertex AI, potresti dover aggiungere roles/aiplatform.user o un ruolo correlato.