Architettura di Cloud Workstations

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

Il seguente diagramma illustra l'architettura di Cloud Workstations.

Schema
dell'architettura

Figura 1. architettura di Cloud Workstations

Cluster di workstation

Un cluster di workstation contiene e gestisce una raccolta di workstation in una singola regione cloud e 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 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 associati a determinate workstation e inoltra il traffico all'istanza VM appropriata. Ogni cluster di workstation ha un nome di dominio univoco e ogni workstation può essere raggiunta da 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 Google Kubernetes Engine (GKE).

  • Ogni cluster di workstation ha un controller dedicato connesso a un VPC all'interno del quale risiedono le workstation con Private Service Connect (e questo non ha alcun impatto sui limiti di peering VPC). Questo controller gestisce le risorse delle workstation durante il loro ciclo di vita e fornisce il traffico in entrata e in uscita dalla rete nelle workstation tramite un gateway del cluster pubblico.

  • Ogni regione cloud richiede almeno un cluster di workstation.

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

Rete VPC

Quando crei un cluster di workstation, specifichi 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 il VPC, consentendo la creazione di risorse all'interno del progetto.

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

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

    • Container: definisce gli strumenti preinstallati in una workstation, come l'IDE o l'editor di codice, e qualsiasi altro programma o impostazione specificata dalla configurazione della workstation.

      Cloud Workstations fornisce una serie di immagini di base preconfigurate con gli IDE e gli strumenti per il linguaggio più diffusi. Inoltre, gli amministratori e i team delle piattaforme possono personalizzare i propri ambienti creando e specificando immagini container personalizzate che contengono gli strumenti necessari per soddisfare le esigenze dei loro 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 montato nella cartella /home, consente l'archiviazione di 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 per queste risorse nella configurazione della workstation.

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

  1. Crea una VM.
  2. Esegue il pull dell'immagine container della workstation sulla VM.
  3. Al primo avvio della workstation, viene creato un disco permanente che funge da directory /home della workstation.
  4. Collega il disco permanente alla VM.
  5. Avvia il container sulla VM e monta il disco permanente nella directory /home del container.

Al termine della sessione, Cloud Workstations elimina la VM, ma scollega e conserva il disco permanente in modo che possa essere utilizzato in sessioni di workstation future. Il servizio delle workstation conserva il disco fino a quando la workstation non viene eliminata, dopodiché viene eliminato anche il disco permanente, a meno che non sia facoltativamente configurato per la conservazione.

Pooling di risorse

Gli amministratori e i team della piattaforma possono facoltativamente pool di VM e dischi permanenti per un avvio più rapido delle workstation utilizzando l'opzione di configurazione della workstation dimensioni del pool. Se specificato, il servizio pool il numero specificato di dischi permanenti e VM e pre-estrae l'immagine container sulla VM prima dell'assegnazione della workstation. Le VM e i dischi non assegnati nel pool vengono eliminati e ricreati automaticamente ogni 12 ore. Ciò consente tempi di avvio della workstation più rapidi rimuovendo i tempi di attesa per la creazione di VM ed eseguendo il pull dell'immagine container sulla VM.

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

  1. Seleziona una VM dal pool con il pre-pull dell'immagine container.
  2. Al primo avvio della workstation, viene selezionato 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 nell'immagine container.
  5. Ricarica il pool creando una nuova VM e un 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 in sessioni di workstation future. Il servizio delle workstation conserva il disco fino a quando la workstation non viene eliminata, dopodiché viene eliminato anche il disco permanente, a meno che non sia facoltativamente configurato per la conservazione.

Aggiornamenti dell'immagine container

Poiché l'immagine del container della workstation viene predisposta sulle VM in pool, gli aggiornamenti all'immagine container effettuati nel repository di immagini remote con lo stesso tag immagine vengono raccolti solo dopo che tutte le VM in pool sono state assegnate o eliminate dopo 12 ore. A quel punto, vengono create nuove VM per reintegrare il pool ed eseguire il pull dell'immagine container aggiornata.

Per forzare l'aggiornamento di un pool in modo che acquisisca immediatamente gli aggiornamenti dell'immagine container, gli amministratori possono impostare pool_size su 0 e poi impostarlo nuovamente sul valore pool_size preferito. Dalla console Google Cloud, disattiva la funzionalità di avvio rapido delle workstation nella configurazione della workstation, salva la configurazione, impostala di nuovo sul 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, in modo da forzare un aggiornamento del pool per recuperare il nuovo tag immagine container.

Riduci i tempi di avvio della workstation con il flusso di immagini

Cloud Workstations supporta i flussi di immagini, che consentono di accelerare i tempi di avvio delle workstation riducendo il tempo di pull delle immagini container di workstation.

Il flusso di immagini in Cloud Workstations in genere riduce il tempo di pull delle immagini container da minuti a secondi e i container di workstation di solito vengono eseguiti senza attendere il download dell'intera immagine.

Requisiti

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

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

    Abilita l'API Container File System

    In alternativa, puoi eseguire il seguente comando dell'interfaccia a riga di comando gcloud per abilitare l'API Container File System 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 più regioni corrispondente a quella in cui sono in esecuzione le tue workstation.

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

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

Limitazioni

  • Potresti non notare i vantaggi del flusso di immagini durante il primo pull di un'immagine idonea. Tuttavia, una volta che il flusso di immagini memorizza nella cache l'immagine, l'immagine futura estrae un vantaggio della workstation dal flusso delle immagini.

  • Si applicano altre limitazioni relative al flusso di immagini di GKE.