Firebase Studio è pronto ad offrirci interazione con i più famosi ambienti tecnologici attuali ma, ovviamente, il mondo Google è l'approdo principale. Sinora abbiamo incontrato (sebbene non finito di esplorare) due importanti attori della scena: l'Intelligenza Artificiale di Gemini ed il servizio Firebase App Hosting per la pubblicazione. Tuttavia, le alternative non finiscono qui.
Interagire con i servizi di Google da Firebase Studio
Senza divagare tra tutte le varie possibilità mediante API remote, possiamo notare che da un progetto Firebase Studio, come il nostro che produce aforismi, se ci spostiamo nella modalità IDE per lo sviluppo del codice, nella barra laterale sinistra troviamo il logo di Firebase Studio un pò stilizzato al cui click otteniamo un menu di possibilità di interazione con il mondo Google:

Figura 1. Integrazioni con Google Cloud
Le possibilità rappresentano gli usi più comuni di servizi nello sviluppo di applicazioni:
- Firebase Hosting per la pubblicazione di app web. Un discorso già affrontato in precedenza;
- Cloud Run, anch'esso per la pubblicazione dell'app. Parliamo di uno dei servizi di esecuzione di maggior importanza in Google Cloud e su cui torneremo più avanti in questa lezione;
- Gemini API per l'interazione, nel lavoro dell'applicazione, con i modelli di AI di Google;
- Google Maps Platform per l'integrazione di servizi geografici in cui non includiamo solo le mappe ma anche tutto ciò che riguarda la geolocalizzazione;
- Secrets Manager, servizio di Google Cloud per la gestione dei secret. Le parole chiave riservate che non vengono scritte esplicitamente nel codice ma gestite dal servizio e riconosciute mediante delle etichette. E' un qualcosa di fondamentale ai fini della sicurezza in un ambito come questo in cui l'uso di API key è all'ordine del giorno e spesso determina i costi del progetto.
Per completare il discorso sulla pubblicazione di applicazioni, e sottolineare ancora aspetti fondamentali di Google Cloud, trattiamo in questo caso il legame con Cloud Run.
Pubblicare su Cloud Run
Cloud Run è un servizio sempre più importante per Google Cloud in quanto permette di avviare applicazioni in container ovvero impacchettate in immagini Docker, con tutto il necessario all'interno, in modo che siano facilmente eseguibili e scalabili su Web.
Nel Cloud, i servizi che trattano container come quelli che trattano macchine virtuali sono attori silenziosi di tutti i contesti operativi. Infatti, sebbene gli ambienti serverless (dove la gestione esplicita del server da parte del programmatore non è richiesta) e le varie soluzioni Paas (Platform as a Service, piattaforme operative già pronte in Cloud per vari stack tecnologici) sembrino non aver bisogno di alcuna infrastruttura sottostante, i motori di esecuzione al di sotto di essi sono container o macchine virtuali. Pertanto qualsiasi servizio Cloud, sotto sotto, si rivolge direttamente o indirettamente a qualche gestore di container o macchine virtuali. Quando in Google Cloud servono applicazioni scalabili, veloci e performanti, tipicamente servono container e, alla fine, ci si rivolge a Cloud Run.
Essendo i container estremamente versatili, abbiamo la possibilità di inserirvi qualsiasi tipo di applicativo pertanto risulteranno utili per ogni genere di applicazione.
Se vogliamo pubblicare (o più in gergo fare deploy) su Cloud Run mediante il menu che abbiamo appena visto ci servirà:
- accedere a Google Cloud e creare un progetto con lo stesso account con sui stiamo utilizzando Firebase Studio;
- creare un Billing Account in Google Cloud per la gestione dei pagamenti;
- associare il Billing Account al progetto;
- attivare, quando ci verrà chiesta l'API del servizio Cloud Run, in modo che questo sia operativo nel nostro progetto.
Fatto ciò, nel pannello di cui sopra, la voce relativa Cloud Run ci offrirà il pulsante Deploy:

Figura 2. Deploy su Cloud Run
Al click del pulsante, verrà chiesto il percorso che conduce al sorgente dell'app (di default, sarà la directory locale) e subito dopo ci verrà chiesto se accettiamo unauthenticated invocations ovvero invocazioni non autenticate. Questo è un modo per chiederci se vogliamo che l'applicazione sia pubblica e pertanto raggiungibile da chiunque ne conosca l'indirizzo. Se stiamo creando un'applicazione per i nostri utenti finali sicuramente possiamo rispondere di sì mentre se stiamo creando un'app non pubblica ma a servizio di altri nostri applicativi su Google Cloud risponderemo di no. Ciò farà in modo che potranno farvi accesso solo i servizi che corrisponderanno a determinati account di servizio (una sorta di utenti interpretati da applicazioni e non da esseri umani).
Se stiamo pubblicando la nostra web app per gli aforismi, ad esempio, la risposta al quesito sarà sicuramente "sì" in quanto vorremo renderla utilizzabile via web.
Una volta che l'applicazione sarà stata pubblicata su Cloud Run diverrà un suo servizio, quindi gestibile anche dalla piattaforma di Google Cloud. Ci verrà restituito l'indirizzo web da cui richiamarla e potremo procedere a provarla nel browser.
Conclusioni
Il legame con il mondo Google si fa sempre più interessante man mano che prendiamo confidenza con la sua piattaforma Cloud, cosa non necessaria in assoluto ma di sicuro valore. Infatti, noteremo che non solo ogni servizio da realizzare su Firebase Studio corrisponderà a un progetto Google ma che viceversa ogni errore o messaggio che otterremo in Firebase Studio sarà tradotto in un messaggio di log nel nostro account Google Cloud e tutto ciò che avvieremo con Firease Studio diventerà un'entità gestibile e monitorabile anche all'interno della piattaforma di GCP.
Se vuoi aggiornamenti su Firebase Studio e integrazione con Google Cloud inserisci la tua email nel box qui sotto: