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 persistants des stations de travail. De même, la présence de VM dans votre projet vous permet d'accéder facilement aux ressources de votre réseau VPC et de les gérer.

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

Diagramme 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 région cloud et un réseau VPC uniques au sein de 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 des autres ressources de stations de travail au sein de 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 stations de travail.

  • Passerelle:reçoit le trafic des clients liés à des stations de travail particulières 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 atteinte au niveau d'un sous-domaine du domaine du cluster de stations de travail (par exemple, $WORKSTATION_ID.$CLUSTER_ID.cloudworkstations.dev).

Les autres caractéristiques des clusters de stations de travail sont les suivantes:

  • Les administrateurs et les équipes en charge de la plate-forme créent des clusters de stations de travail qui définissent un groupe de stations de travail dans une région particulière, ainsi que le réseau VPC auquel ils sont associés.

  • 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 aucune incidence 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 réseau et une entrée 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

Lors de la création d'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 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 avant expiration configurable.

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

    • Le conteneur définit les outils préinstallés sur une station de travail, tels que l'IDE ou l'éditeur de code, ainsi que tout autre programme ou paramètre spécifié 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 courants. De plus, les administrateurs et les équipes chargées de la 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 Cloud Workstations ou être de nouvelles images de conteneurs Linux personnalisées créées par l'équipe chargée de la plate-forme.

  • Persistent Disk: disque persistant associé à la VM de la station de travail installée dans le dossier /home, ce qui permet de stocker les données et les fichiers une fois la session terminée.

Cycle de vie des ressources

Cloud Workstations gère les VM, les images de conteneurs et les disques persistants qui servent d'environnement d'exécution pour chaque station de travail. Configurez les spécifications de ces ressources dans la configuration de votre poste 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, elle crée un disque persistant qui servira de répertoire /home.
  4. Il 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 de pouvoir l'utiliser dans les futures sessions de station de travail. Le service des stations de travail conserve le disque jusqu'à la suppression de la station de travail, auquel cas le disque persistant est également supprimé, sauf s'il est éventuellement configuré pour être conservé.

Pooling des ressources

Les administrateurs et les équipes chargées de la plate-forme peuvent éventuellement regrouper les VM et les disques persistants pour accélérer le démarrage de la station de travail à l'aide de l'option de configuration de station de travail taille du pool. Si 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 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 de la station de travail en supprimant le temps d'attente pour la création des VM et en extrayant l'image du conteneur sur la VM.

Lorsque le pooling est activé, Cloud Workstations effectue les opérations suivantes lors du démarrage d'une station de travail:

  1. Sélectionne une VM dans le pool dont l'image de conteneur a été pré-extraite.
  2. La première fois que la station de travail est démarrée, elle sélectionne un disque persistant dans le pool.
  3. Il associe le disque persistant à la VM.
  4. Démarre l'image du conteneur sur la VM et installe le disque persistant dans le répertoire /home de l'image du conteneur.
  5. Remplis 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 de pouvoir l'utiliser dans les futures sessions de station de travail. Le service des stations de travail conserve le disque jusqu'à la suppression de la station de travail, auquel cas le disque persistant est également supprimé, sauf s'il est éventuellement configuré pour être conservé.

Mises à jour des images de conteneurs

Étant donné que l'image de conteneur du poste de travail est pré-extraite sur les VM du pool, les mises à jour de l'image de conteneur effectuées dans le dépôt d'images distant avec le même tag d'image ne sont pas récupérées tant que toutes les VM du pool n'ont pas été attribuées ou supprimées au bout de 12 heures. À ce stade, des VM sont créées pour réapprovisionner 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 du conteneur, les administrateurs peuvent définir le pool_size sur 0, puis le rétablir sur le pool_size préféré. Dans la console Google Cloud, désactivez la fonctionnalité Démarrage rapide des stations de travail dans la configuration de la station de travail, enregistrez la configuration, rétablissez la valeur souhaitée, puis enregistrez à nouveau.

Les administrateurs et les équipes chargées de la plate-forme peuvent également mettre à jour le tag d'image dans le champ container.image de la configuration du poste 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 de la station de travail avec le streaming d'images

Cloud Workstations est compatible avec le streaming d'images, ce 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 conteneurs de quelques minutes à quelques secondes, et les conteneurs de stations de travail démarrent généralement sans attendre le téléchargement de l'image entière.

Conditions requises

Vous devez répondre aux exigences suivantes pour utiliser le streaming d'images dans Cloud Workstations:

  • 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 Cloud Workstations ou dans un emplacement multirégional correspondant à la région dans laquelle vos stations de travail s'exécutent.

  • 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 l'image mise en cache par le streaming d'images, les futures images extraites sur un poste de travail bénéficieront de cette fonctionnalité.

  • D'autres restrictions concernant le streaming d'images GKE s'appliquent.