Architettura di Cloud Workstations

Cloud Workstations gestisce le risorse Google Cloud, come le VM di Compute Engine e i dischi permanenti (PD), per offrirti maggiore visibilità e controllo sulle risorse dei tuoi progetti. Ad esempio, puoi configurare criteri di snapshot del disco pianificati che applicano i criteri di backup per tutti i PD delle workstation. Analogamente, avere VM all'interno del progetto ti consente di accedere e gestire facilmente le risorse nella rete VPC.

Il seguente diagramma illustra l'architettura di Cloud Workstations.

Diagramma
dell'architettura

Figura 1. Architettura di Cloud Workstations

Cluster di workstation

Un cluster di workstation contiene e gestisce una raccolta di workstation in un'unica regione cloud e nella rete VPC all'interno del progetto. Ogni cluster di workstation include due componenti gestiti da Google Cloud: un controller e un gateway.

  • Controller: gestisce il ciclo di vita delle istanze VM e di altre risorse della workstation all'interno del progetto.

    I controller utilizzano l'API Compute Engine per gestire il ciclo di vita delle risorse e Private Service Connect per instradare il traffico alle VM delle workstation.

  • Gateway:riceve il traffico dai client di destinazione per determinate workstation e lo inoltra all'istanza VM appropriata. Ogni cluster di workstation ha un nome di dominio univoco e ogni workstation può essere raggiungibile su un sottodominio del dominio del cluster di workstation, ad esempio $WORKSTATION_ID.$CLUSTER_ID.cloudworkstations.dev.

Di seguito sono riportate altre funzionalità dei cluster di workstation:

  • Gli amministratori e i team della piattaforma creano cluster di workstation, che definiscono un gruppo di workstation in una determinata regione e la rete VPC a cui sono collegate.

  • I cluster di workstation non sono correlati ai cluster di Google Kubernetes Engine (GKE).

  • Ogni cluster di workstation ha un controller dedicato connesso a un VPC in cui si trovano le workstation con Private Service Connect (il che non influisce sui limiti di peering VPC). Questo controller gestisce le risorse delle workstation durante il loro ciclo di vita e fornisce l'uscita e l'ingresso di rete alle workstation tramite un gateway del cluster pubblico.

  • Ogni regione cloud richiede almeno un cluster di workstation.

  • Se necessario, è anche possibile attivare un gateway completamente privato, in modo che solo gli endpoint all'interno della tua rete privata abbiano accesso a Cloud Workstations.

Rete VPC

Quando crei un cluster di workstation, specifica un progetto e una rete VPC per ospitare le risorse. Cloud Workstations esegue quindi il provisioning delle seguenti risorse nel progetto:

  • Private Service Connect: stabilisce una connessione tra il controller Cloud Workstations e la tua VPC, consentendo la creazione di risorse all'interno del progetto.

  • Istanzia VM: una VM Compute Engine viene creata dinamicamente all'interno del progetto e della VPC dopo l'avvio di una workstation. Questa VM viene eliminata automaticamente al termine di una sessione utente o dopo un timeout della sessione configurabile.

    • VM Gateway: estrae il traffico client dal gateway del cluster di workstation, lo autentica e lo autorizza e lo inoltra al container.

    • Contenitore: definisce gli strumenti preinstallati in una workstation, ad esempio IDE o editor di codice, e qualsiasi altro programma o impostazione come specificato dalla configurazione della workstation.

      Cloud Workstations fornisce una serie di immagini di base preconfigurate con IDE e strumenti per i linguaggi di uso comune. Inoltre, gli amministratori e i team della piattaforma possono personalizzare i propri ambienti creando e specificando immagini dei contenitori personalizzate che contengono gli strumenti necessari per soddisfare le esigenze degli sviluppatori. Queste immagini container possono estendere l'immagine di base di Cloud Workstations o essere nuove immagini container Linux personalizzate create dal team della piattaforma.

  • Disco permanente: un disco permanente collegato alla VM della workstation mounted alla cartella /home, che consente di archiviare dati e file al termine della sessione.

Ciclo di vita delle risorse

Cloud Workstations gestisce VM, immagini container e dischi permanenti da utilizzare come ambiente di runtime per ogni workstation. Configura le specifiche di queste risorse nella configurazione della workstation.

Quando viene avviata una workstation, Cloud Workstations esegue le seguenti operazioni:

  1. Crea una VM.
  2. Estrae l'immagine del contenitore della workstation nella VM.
  3. La prima volta che viene avviata la workstation, viene creato un disco permanente per fungere da directory /home della workstation.
  4. Collega il disco permanente alla VM.
  5. Avvia il contenitore sulla VM e monta il disco permanente nella directory/home del contenitore.

Al termine della sessione, Cloud Workstations elimina la VM, ma scollega e conserva il disco permanente in modo che possa essere utilizzato nelle sessioni future della workstation. Il servizio delle workstation conserva il disco fino all'eliminazione della workstation, momento in cui viene eliminato anche il disco permanente, a meno che non sia stato configurato per essere conservato.

Pooling di risorse

Gli amministratori e i team della piattaforma possono facoltativamente raggruppare VM e dischi permanenti per avviare più rapidamente le stazioni di lavoro utilizzando l'opzione di configurazione della stazione di lavoro Dimensioni pool. Se specificato, il servizio raggruppa il numero specificato di VM e dischi permanenti e preleva l'immagine del contenitore sulla VM prima dell'assegnazione della workstation. Le VM e i dischi non assegnati nel pool vengono eliminati e ricreati automaticamente ogni 12 ore. In questo modo, i tempi di avvio della workstation vengono ridotti eliminando il tempo di attesa per la creazione delle VM e il caricamento dell'immagine del contenitore sulla VM.

Quando il pooling è abilitato, Cloud Workstations esegue le seguenti operazioni all'avvio di una workstation:

  1. Seleziona una VM dal pool in cui è stata prelevata l'immagine container.
  2. La prima volta che viene avviata la workstation, seleziona un disco permanente dal pool.
  3. Collega il disco permanente alla VM.
  4. Avvia l'immagine container sulla VM e monta il disco permanente nella directory/home dell'immagine container.
  5. Riempi il pool creando una nuova VM e un nuovo disco permanente per sostituire quelli assegnati.

Al termine della sessione, Cloud Workstations elimina la VM, ma scollega e conserva il disco permanente in modo che possa essere utilizzato nelle sessioni future della workstation. Il servizio delle workstation conserva il disco fino all'eliminazione della workstation, momento in cui viene eliminato anche il disco permanente, a meno che non sia stato configurato per essere conservato.

Aggiornamenti delle immagini container

Poiché l'immagine del container della workstation viene pre-recuperata nelle VM raggruppate, gli aggiornamenti dell'immagine del container apportati nel repository di immagini remoto con lo stesso tag immagine non vengono rilevati finché non sono state assegnate o eliminate tutte le VM raggruppate dopo 12 ore. A questo punto, vengono create nuove VM per reintegrare il pool e recuperare l'immagine del container aggiornata.

Per forzare un aggiornamento del pool in modo da acquisire immediatamente gli aggiornamenti delle immagini del contenitore, gli amministratori possono impostare pool_size su 0 e poi ripristinare il valore preferitopool_size. Nella console Google Cloud, disattiva la funzionalità Workstation di avvio rapido nella configurazione della workstation, salva la configurazione, ripristina il numero preferito e salva di nuovo.

In alternativa, gli amministratori e i team della piattaforma possono aggiornare il tag immagine nel campo container.image nella configurazione della workstation, il che forza un aggiornamento del pool per recuperare il nuovo tag immagine del contenitore.

Riduci i tempi di avvio della workstation con lo streaming di immagini

Cloud Workstations supporta lo streaming di immagini, che consente di ridurre il tempo di avvio della workstation riducendo il tempo di estrazione dell'immagine del contenitore della workstation.

In genere, lo streaming di immagini in Cloud Workstations riduce il tempo di estrazione delle immagini dei container da minuti a secondi e i container delle workstation in genere iniziano a funzionare senza attendere il download dell'intera immagine.

Requisiti

Per utilizzare lo streaming di immagini in Cloud Workstations, devi soddisfare i seguenti requisiti:

  • Devi abilitare l'API Container Filesystem nel progetto host delle workstation.

    Attiva l'API Container File System

    In alternativa, puoi eseguire il seguente comando gcloud CLI per attivare l'API Container Filesystem nel progetto host delle workstation:

    gcloud services enable containerfilesystem.googleapis.com
    

  • Le immagini container devono essere archiviate in Artifact Registry.

  • Il repository Artifact Registry deve trovarsi nella stessa regione della regione Cloud Workstations o in una regione con più aree geografiche che corrisponde alla regione in cui sono in esecuzione le stazioni di lavoro.

  • Devi specificare un account di servizio da utilizzare nella configurazione della tua workstation.

  • Se il cluster si trova all'interno di un perimetro di Controlli di servizio VPC, devi aggiungere una regola di uscita che consenta al tuo account di servizio di accedere all'API Container File System nel progetto che ospita l'immagine del contenitore. Se utilizzi un IDE preconfigurato, devi aggiungere il progetto cloud-workstations-images (numero di progetto 662288601415) alla lista consentita.

Limitazioni

  • Potresti non notare i vantaggi dello streaming di immagini durante il primo recupero di un'immagine idonea. Tuttavia, dopo che Image Streaming ha memorizzato nella cache l'immagine, le estrazioni future di immagini su una workstation beneficiano di Image Streaming.

  • Si applicano altre limitazioni dello streaming di immagini GKE.