Architecture Cloud Workstations

Cloud Workstations gère les ressources Google Cloud , telles que les VM Compute Engine et les disques persistants, pour vous offrir une meilleure visibilité et un meilleur 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 pour tous les disques persistants des postes de travail. De même, le fait d'avoir des 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 même région cloud et un même réseau VPC de votre projet. Chaque cluster de postes de travail inclut deux composants gérés parGoogle Cloud : un contrôleur et une passerelle.

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

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

  • Passerelle : reçoit le trafic des clients destiné à des postes de travail spécifiques et le transfère à l'instance de VM appropriée. Chaque cluster de postes de travail possède un nom de domaine unique, et chaque poste de travail est accessible via un sous-domaine du domaine du cluster de postes 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 postes de travail possède un contrôleur dédié connecté à un VPC dans lequel résident les postes de travail avec Private Service Connect (sans impact sur les limites d'appairage de VPC). Ce contrôleur gère les ressources des stations de travail tout au long de leur cycle de vie et fournit une sortie et une entrée réseau aux stations de travail via une passerelle de cluster public.

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

  • Si nécessaire, il est également possible d'activer une passerelle entièrement 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 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 de manière dynamique dans votre projet et votre VPC une fois qu'un poste de travail est démarré. Cette VM est automatiquement supprimée à la fin d'une session utilisateur ou après un délai d'inactivité configurable.

    • Passerelle de VM : extrait le trafic client de la passerelle du cluster de postes de travail, l'authentifie et l'autorise, puis le transmet au conteneur.

    • Conteneur : définit les outils préinstallés dans 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 qui contiennent les outils nécessaires pour répondre aux besoins de leurs développeurs. Ces images de conteneurs peuvent étendre l'image de base Cloud Workstations ou être de nouvelles images de conteneurs Linux personnalisées créées par l'équipe de 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 conteneurs 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 de 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.

Lorsque la session se termine, Cloud Workstations supprime la VM, mais dissocie et conserve le disque persistant afin qu'il puisse être utilisé dans de futures sessions de poste de travail. Le service Workstations 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 regrouper des VM et des disques persistants pour accélérer le démarrage des stations de travail à l'aide de l'option de configuration de station de travail Taille du pool. Lorsqu'il est spécifié, le service regroupe le nombre spécifié de disques persistants et de VM, et pré-extrait l'image de conteneur sur la VM avant l'attribution du poste 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 de réduire le temps de démarrage du poste de travail en supprimant le temps d'attente pour la création de VM et l'extraction de l'image de conteneur sur la VM.

Lorsque le pooling est activé, Cloud Workstations effectue les opérations suivantes lorsqu'il démarre un poste de travail :

  1. Sélectionne une VM du pool sur laquelle l'image de conteneur a déjà été extraite.
  2. La première fois que la station de travail est démarrée, un disque persistant est sélectionné 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 dans le répertoire /home de l'image de conteneur.
  5. Recrée une VM et un disque persistant pour remplacer ceux qui ont été attribués.

Lorsque la session se termine, Cloud Workstations supprime la VM, mais dissocie et conserve le disque persistant afin qu'il puisse être utilisé dans de futures sessions de poste de travail. Le service Workstations 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 conteneurs

Étant donné que l'image de conteneur de la station de travail est pré-extraite sur les VM mises en pool, les mises à jour de l'image de conteneur effectuées dans le dépôt d'images à distance avec le même tag d'image ne sont pas prises en compte 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 de conteneur mise à jour.

Pour forcer l'actualisation du pool afin de récupérer immédiatement les mises à jour de l'image de conteneur, les administrateurs peuvent définir pool_size sur 0, puis le redéfinir sur la valeur pool_size de leur choix. 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 le tag d'image dans le champ container.image de la configuration de la station de travail, ce qui force l'actualisation du pool pour récupérer le nouveau tag d'image de conteneur.

Réduire le temps de démarrage des stations de travail avec le streaming d'images

Cloud Workstations est compatible avec le streaming d'images, ce qui permet de réduire le temps d'extraction des images de conteneurs de stations de travail et d'accélérer ainsi le démarrage des stations de travail.

Le streaming d'images dans Cloud Workstations réduit généralement le temps d'extraction des images de conteneur de plusieurs minutes à quelques secondes. Les conteneurs de postes de travail commencent généralement à s'exécuter 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 postes 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 postes de travail :

    gcloud services enable containerfilesystem.googleapis.com
    

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

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

  • Si votre cluster se trouve dans un périmètre VPC Service Controls, vous devez ajouter une règle de sortie autorisant votre compte de service à accéder à l'API Container File System dans 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.

Délai d'inactivité

Vous pouvez configurer vos stations de travail pour qu'elles s'arrêtent automatiquement après une période d'inactivité. Le délai d'inactivité est réinitialisé à chaque requête réseau entrante et chaque fois que l'appel d'API workstations.Start est émis. De plus, les IDE préconfigurés installés dans les images de station de travail de base sont préinstallés avec un plug-in permettant de détecter les interactions avec l'IDE (clic de souris, pression sur une touche, etc.) et de réinitialiser le délai d'inactivité.

Si vous lancez un processus de longue durée en arrière-plan et que vous cessez d'interagir avec la station de travail, vous risquez d'atteindre le seuil de délai d'inactivité. Cela entraîne l'arrêt de la station de travail. Si le poste de travail doit rester actif, vous pouvez utiliser le script /google/scripts/keep_alive.sh présent dans les images de poste de travail de base pour éviter les délais d'inactivité. Vous pouvez également déclencher l'appel d'API workstation.Start dans le processus en arrière-plan pour éviter l'arrêt en cas d'inactivité. Par exemple, si vous utilisez Google Cloud CLI, vous pouvez exécuter la commande gcloud workstations start.