Architecture Cloud Workstations

Cloud Workstations gère les ressources Google Cloud, telles que les VM Compute Engine et les disques persistants, pour vous offrir plus de visibilité et de contrôle sur les ressources de vos projets. Par exemple, vous pouvez configurer des règles d'instantanés de disque planifiés qui appliquent des règles de sauvegarde à tous les disques de point de distribution des stations de travail. De même, la présence de VM dans votre projet vous permet d'accéder et de gérer facilement les ressources de votre réseau VPC.

Le schéma suivant illustre l'architecture de Cloud Workstations.

Schéma de l'architecture

Figure 1. Architecture Cloud Workstations

Cluster de stations de travail

Un cluster de stations de travail contient et gère un ensemble de stations de travail dans une seule région cloud et un seul réseau VPC dans votre projet. Chaque cluster de stations de travail comprend deux composants gérés par Google Cloud: un contrôleur et une passerelle.

  • Contrôleur:gère le cycle de vie des instances de VM et d'autres ressources de la station de travail dans votre projet.

    Les contrôleurs utilisent l'API Compute Engine pour gérer le cycle de vie des ressources et Private Service Connect pour acheminer le trafic vers les VM des stations de travail.

  • Passerelle:reçoit le trafic des clients à destination de stations de travail spécifiques et le transfère à l'instance de VM appropriée. Chaque cluster de stations de travail possède un nom de domaine unique, et chaque station de travail peut être accessible via un sous-domaine du domaine du cluster de stations de travail (par exemple, $WORKSTATION_ID.$CLUSTER_ID.cloudworkstations.dev).

Voici d'autres caractéristiques des clusters de stations de travail:

  • Les administrateurs et les équipes de plate-forme créent des clusters de stations de travail, qui définissent un groupe de stations de travail dans une région spécifique et le réseau VPC auquel elles sont associées.

  • Les clusters de stations de travail ne sont pas liés aux clusters Google Kubernetes Engine (GKE).

  • Chaque cluster de stations de travail dispose d'un contrôleur dédié connecté à un VPC dans lequel les stations de travail résident avec Private Service Connect (ce qui n'a aucun impact sur les limites d'appairage VPC). Ce contrôleur gère les ressources des stations de travail tout au long de leur cycle de vie et fournit un accès au réseau et une sortie du réseau aux stations de travail via une passerelle de cluster publique.

  • Chaque région cloud nécessite au moins un cluster de stations de travail.

  • Si nécessaire, vous pouvez également activer une passerelle privée afin que seuls les points de terminaison de votre réseau privé aient accès à Cloud Workstations.

Réseau VPC

Lorsque vous créez un cluster de stations de travail, vous spécifiez un projet et un réseau VPC pour héberger les ressources. Cloud Workstations provisionne ensuite les ressources suivantes dans votre projet:

  • Private Service Connect: établit une connexion entre le contrôleur de Cloud Workstations et votre VPC, ce qui permet de créer des ressources dans votre projet.

  • Instance de VM: une VM Compute Engine est créée dynamiquement dans votre projet et votre VPC après le démarrage d'une station de travail. Cette VM est automatiquement supprimée à la fin d'une session utilisateur ou après un délai d'inactivité configurable.

    • VM Gateway: extrait le trafic client de la passerelle de cluster de la station de travail, l'authentifie et l'autorise, puis le transfère au conteneur.

    • Conteneur: définit les outils préinstallés sur une station de travail, tels que l'IDE ou l'éditeur de code, ainsi que tous les autres programmes ou paramètres spécifiés par la configuration de la station de travail.

      Cloud Workstations fournit un certain nombre d'images de base préconfigurées avec des IDE et des outils de langage populaires. De plus, les administrateurs et les équipes de plate-forme peuvent personnaliser leurs environnements en créant et en spécifiant des images de conteneurs personnalisées contenant les outils nécessaires pour répondre aux besoins de leurs développeurs. Ces images de conteneur peuvent étendre l'image de base de Cloud Workstations ou être de nouvelles images de conteneur Linux personnalisées créées par l'équipe de la plate-forme.

  • Disque persistant: disque persistant associé à la VM de la station de travail et monté sur le dossier /home, ce qui permet de stocker des données et des fichiers après la fin de la session.

Cycle de vie des ressources

Cloud Workstations gère les VM, les images de conteneur et les disques persistants à utiliser comme environnement d'exécution pour chaque station de travail. Configurez les spécifications de ces ressources dans la configuration de votre station de travail.

Lorsqu'une station de travail est démarrée, Cloud Workstations effectue les opérations suivantes:

  1. Crée une VM.
  2. Extrait l'image du conteneur de la station de travail sur la VM.
  3. La première fois que la station de travail est démarrée, un disque persistant est créé pour servir de répertoire /home de la station de travail.
  4. Associe le disque persistant à la VM.
  5. Démarre le conteneur sur la VM et installe le disque persistant dans le répertoire /home du conteneur.

À la fin de la session, Cloud Workstations supprime la VM, mais dissocie et conserve le disque persistant afin qu'il puisse être utilisé dans les futures sessions de la station de travail. Le service de stations de travail conserve le disque jusqu'à ce que la station de travail soit supprimée, auquel cas le disque persistant est également supprimé, sauf s'il est configuré pour être conservé.

Pooling des ressources

Les administrateurs et les équipes de plate-forme peuvent éventuellement mettre en pool des VM et des disques persistants pour accélérer le démarrage de la station de travail à l'aide de l'option de configuration de la station de travail Taille du pool. Le service regroupe le nombre spécifié de disques et de VM persistants, et extrait l'image du conteneur sur la VM avant l'attribution de la station de travail. Les VM et les disques non attribués du pool sont automatiquement supprimés et recréés toutes les 12 heures. Cela permet d'accélérer le démarrage des stations de travail en supprimant le temps d'attente pour créer des VM et extraire l'image du conteneur sur la VM.

Lorsque le pool est activé, Cloud Workstations procède comme suit au démarrage d'une station de travail:

  1. Sélectionne une VM du pool dont l'image de conteneur a été prétirée.
  2. Lors du premier démarrage de la station de travail, elle sélectionne un disque persistant dans le pool.
  3. Associe le disque persistant à la VM.
  4. Démarre l'image de conteneur sur la VM et monte le disque persistant sur le répertoire /home dans l'image de conteneur.
  5. Remplit le pool en créant une VM et un disque persistant pour remplacer ceux qui ont été attribués.

À la fin de la session, Cloud Workstations supprime la VM, mais dissocie et conserve le disque persistant afin qu'il puisse être utilisé dans les futures sessions de la station de travail. Le service de station de travail conserve le disque jusqu'à ce que la station de travail soit supprimée, auquel cas le disque persistant est également supprimé, sauf s'il est configuré pour être conservé.

Mises à jour des images de conteneur

Étant donné que l'image du conteneur de la station de travail est pré-extraite sur les VM mises en pool, les mises à jour de l'image du conteneur effectuées dans le dépôt d'images distant avec le même tag d'image ne sont pas détectées tant que toutes les VM mises en pool n'ont pas été attribuées ou supprimées au bout de 12 heures. À ce stade, de nouvelles VM sont créées pour reconstituer le pool et extraire l'image du conteneur mise à jour.

Pour forcer un rafraîchissement du pool afin de récupérer immédiatement les mises à jour de l'image du conteneur, les administrateurs peuvent définir pool_size sur 0, puis le rétablir sur le pool_size souhaité. Dans la console Google Cloud, désactivez la fonctionnalité Stations de travail à démarrage rapide dans la configuration de la station de travail, enregistrez la configuration, rétablissez le nombre souhaité, puis enregistrez à nouveau.

Les administrateurs et les équipes de plate-forme peuvent également mettre à jour la balise d'image dans le champ container.image de la configuration de la station de travail, ce qui force une actualisation du pool pour récupérer la nouvelle balise d'image du conteneur.

Réduire le temps de démarrage de la station de travail avec le streaming d'images

Cloud Workstations est compatible avec le streaming d'images, qui accélère le démarrage de la station de travail en réduisant le temps d'extraction de l'image du conteneur de la station de travail.

Le streaming d'images dans Cloud Workstations réduit généralement le temps d'extraction des images de conteneur de minutes à secondes, et les conteneurs de la station de travail démarrent généralement sans attendre le téléchargement de l'image entière.

Conditions requises

Pour utiliser le streaming d'images dans Cloud Workstations, vous devez répondre aux exigences suivantes:

  • Vous devez activer l'API Container File System dans le projet hôte des stations de travail.

    Activer l'API Container File System

    Vous pouvez également exécuter la commande CLI gcloud suivante pour activer l'API Container File System dans le projet hôte des stations de travail:

    gcloud services enable containerfilesystem.googleapis.com
    

  • Vos images de conteneurs doivent être stockées dans Artifact Registry.

  • Le dépôt Artifact Registry doit se trouver dans la même région que votre région de Cloud Workstations ou dans un emplacement multirégional correspondant à la région dans laquelle vos stations de travail sont exécutées.

  • Vous devez spécifier un compte de service à utiliser dans la configuration de votre station de travail.

  • Si votre cluster se trouve dans un périmètre VPC Service Controls, vous devez ajouter une règle de sortie permettant à votre compte de service d'accéder à l'API Container File System sur le projet hébergeant votre image de conteneur. Si vous utilisez un IDE préconfiguré, vous devez ajouter le projet cloud-workstations-images (numéro de projet 662288601415) à la liste d'autorisation.

Limites

  • Vous ne remarquerez peut-être pas les avantages du streaming d'images lors de la première extraction d'une image éligible. Cependant, une fois que le streaming d'images a mis en cache l'image, les futures extractions d'images sur un poste de travail bénéficieront des avantages du streaming d'images.

  • D'autres limites du streaming d'images GKE s'appliquent.