Arquitetura do Cloud Workstations

O Cloud Workstations gerencia recursos do Google Cloud, como o Compute Engine VMs e discos permanentes (DPs), para dar a você mais visibilidade e controle sobre os do Google Cloud. Por exemplo, é possível configurar snapshots de discos programados políticas que aplicam políticas de backup para todos os DPs de estações de trabalho. Da mesma forma, ter VMs no seu projeto permite acessar e gerenciar recursos na rede VPC sem problemas.

O diagrama a seguir ilustra a arquitetura do Cloud Workstations.

Arquitetura
diagrama

Figura 1. Arquitetura do Cloud Workstations

Cluster de estações de trabalho

Um cluster de estações de trabalho contém e gerencia uma coleção de estações de trabalho única região da nuvem e VPC rede dentro da sua projeto. Cada cluster de estações de trabalho inclui dois componentes gerenciados Google Cloud: um controlador e um gateway.

  • Controlador: gerencia o ciclo de vida das instâncias de VM e de outros recursos da estação de trabalho no projeto.

    Os controladores usam a API Compute Engine para gerenciar o ciclo de vida dos recursos e o Private Service Connect para encaminhar o tráfego para as VMs das estações de trabalho.

  • Gateway: recebe tráfego de clientes vinculados a estações de trabalho e encaminha o tráfego para a instância de VM apropriada. Cada cluster de estações de trabalho tem um nome de domínio exclusivo, e cada estação de trabalho pode ser alcançado em um subdomínio do domínio do cluster da estação de trabalho, por exemplo, $WORKSTATION_ID.$CLUSTER_ID.cloudworkstations.dev:

Outros recursos dos clusters de estações de trabalho são:

  • Os administradores e as equipes de plataforma criam clusters de estações de trabalho, que definem um grupo de estações de trabalho em uma região específica e a rede VPC a que elas estão conectadas.

  • Os clusters de estações de trabalho não estão relacionados Google Kubernetes Engine (GKE) clusters.

  • Cada cluster de estação de trabalho tem um controlador dedicado conectado a uma VPC em que as estações de trabalho residem com o Private Service Connect. Isso não afeta os limites de peering da VPC. Isso gerencia os recursos das estações de trabalho ao longo do ciclo de vida e fornece saída e entrada de rede para as estações de trabalho por uma gateway de cluster.

  • Cada região de nuvem requer pelo menos um cluster de estação de trabalho.

  • Se necessário, também é possível ativar uma configuração particular gateway, de modo que somente endpoints em sua rede privada têm acesso a o Cloud Workstations.

Rede VPC

Ao criar um cluster de estação de trabalho, você especifica um projeto e uma rede VPC para hospedar os recursos. Cloud Workstations provisiona os seguintes recursos no projeto:

  • Private Service Connect: estabelece uma conexão entre o controlador do Cloud Workstations e sua VPC, permitindo a criação de recursos dentro do projeto.

  • Instância de VM: uma VM do Compute Engine é criada dinamicamente dentro da sua projeto e VPC após o início de uma estação de trabalho. Essa VM é excluída automaticamente no final de uma sessão de usuário ou após um tempo limite configurável.

    • VM Gateway: extrai o tráfego do cliente do cluster da estação de trabalho o gateway, o autentica e o autoriza e o encaminha para o contêiner do Docker.

    • Container: define as ferramentas pré-instaladas em uma estação de trabalho, como o ambiente de desenvolvimento integrado ou o editor de código, e quaisquer outros programas ou configurações conforme especificado pela configuração da estação de trabalho.

      O Cloud Workstations oferece várias imagens de base pré-configuradas com ferramentas de linguagem e ambientes de desenvolvimento integrado conhecidos. Além disso, os administradores e as equipes de plataforma podem personalizar seus ambientes criar e especificar imagens de contêiner personalizadas que contêm as ferramentas necessárias para atender às necessidades necessidades. Essas imagens de contêiner podem estender a imagem de base do Cloud Workstations ou ser novas imagens de contêiner Linux personalizadas criadas pela equipe da plataforma.

  • Disco permanente: um disco permanente anexado à VM da estação de trabalho montado na pasta /home, permitindo o armazenamento de dados e arquivos após o término da sessão.

Ciclo de vida dos recursos

O Cloud Workstations gerencia VMs, imagens de contêiner e discos permanentes para uso como o ambiente de execução de cada estação de trabalho. Configure as especificações desses recursos na configuração da estação de trabalho.

Quando uma estação de trabalho é iniciada, as Estações de trabalho do Cloud fazem o seguinte:

  1. Cria uma VM.
  2. Extrai a imagem do contêiner da estação de trabalho para a VM.
  3. Na primeira vez que a estação de trabalho é iniciada, ela cria um disco permanente para atuar como o diretório /home da estação de trabalho.
  4. Anexa o disco permanente à VM.
  5. Inicia o contêiner na VM e monta o disco permanente no diretório /home no contêiner.

Quando a sessão termina, o Cloud Workstations exclui a VM, mas desconecta e mantém o disco permanente para que ele possa ser usado em sessões futuras da estação de trabalho. O serviço de estações de trabalho retém o disco até que a estação de trabalho seja excluída, momento em que o disco permanente também é excluído, a menos que seja opcionalmente configurado para ser retido.

Pool de recursos

Os administradores e as equipes de plataforma têm a opção de agrupar VMs e discos permanentes. para uma inicialização mais rápida da estação de trabalho usando o estação de trabalho tamanho do pool de configuração do Terraform. Quando especificado, o serviço agrupa o número especificado de discos e VMs persistentes e pré-extrai a imagem do contêiner para a VM antes da atribuição da estação de trabalho. As VMs e os discos não atribuídos no pool são excluídos e recriados automaticamente a cada 12 horas. Isso permite uma inicialização mais rápida da estação de trabalho vezes, removendo o tempo de espera para criar VMs e extrair a imagem do contêiner na VM.

Quando o pool está ativado, o Cloud Workstations faz o seguinte ao iniciar uma estação de trabalho:

  1. Seleciona uma VM do pool que tem a imagem do contêiner pré-extraida.
  2. Na primeira vez que a estação de trabalho é iniciada, um disco permanente é selecionado do pool.
  3. Anexa o disco permanente à VM.
  4. Inicia a imagem do contêiner na VM e monta o disco permanente no /home na imagem do contêiner.
  5. Preenche o pool novamente criando uma nova VM e um disco permanente para substituí-los que foram atribuídas.

Quando a sessão termina, o Cloud Workstations exclui a VM, mas remove e retém o disco permanente para que ele possa ser usado em uma estação de trabalho futura de conteúdo. O serviço de estações de trabalho retém o disco até que a estação de trabalho seja Nesse ponto, o disco permanente também é excluído, a menos que seja opcionalmente configuradas para serem retidas.

Atualizações de imagem do contêiner

Como a imagem do contêiner da estação de trabalho é pré-extraida para as VMs agrupadas, as atualizações da imagem do contêiner feitas no repositório de imagens remoto com a mesma tag de imagem não são detectadas até que todas as VMs agrupadas sejam atribuídas ou excluídas após 12 horas. Nesse ponto, novas VMs são criadas para reabastecer o pool. e extrair a imagem do contêiner atualizada.

Para forçar uma atualização de pool a selecionar imediatamente as atualizações da imagem do contêiner, os administradores podem definir pool_size como 0 e, em seguida, defini-lo novamente como pool_size preferencial. No console do Google Cloud, desative o Estações de trabalho de início rápido na configuração da estação de trabalho, salve o configuração, defina-o de volta para o número preferido e salve-o novamente.

Como alternativa, administradores e equipes de plataforma podem atualizar a tag de imagem no campo container.image na configuração da estação de trabalho, o que força uma atualização do pool para capturar a nova tag de imagem do contêiner.

Reduza o tempo de inicialização da estação de trabalho com o streaming de imagens

O Cloud Workstations oferece suporte ao streaming de imagens, que acelera o tempo de inicialização da estação de trabalho reduzindo o tempo de extração da imagem do contêiner.

O streaming de imagens no Cloud Workstations normalmente reduz a extração de imagens do contêiner de minutos para segundos, e os contêineres de estações de trabalho normalmente começam a ser executados sem esperar o download de toda a imagem.

Requisitos

Você precisa atender aos seguintes requisitos para usar o streaming de imagens nas estações de trabalho do Cloud:

  • Ative a API Container File System no projeto host de estações de trabalho.

    Ativar a API Container File System

    Como alternativa, execute o seguinte comando da CLI gcloud para ative a API Container File System no projeto host das estações de trabalho:

    gcloud services enable containerfilesystem.googleapis.com
    

  • As imagens de contêiner precisam ser armazenadas no Artifact Registry.

  • O repositório do Artifact Registry precisa estar no mesmo região como a região do Cloud Workstations ou em um multirregional que corresponde à região em que suas estações de trabalho são executadas.

  • É necessário especificar uma conta de serviço para uso na configuração da estação de trabalho.

  • Se o cluster estiver dentro de um perímetro do VPC Service Controls, adicione uma regra de saída que permita que a conta de serviço acesse a API Container File System no projeto que hospeda a imagem do contêiner. Se você estiver usando um ambiente de desenvolvimento integrado pré-configurado, será preciso adicionar o projeto cloud-workstations-images (número do projeto 662288601415) à lista de permissões.

Limitações

  • Talvez você não perceba os benefícios do streaming de imagens durante o primeiro pull de uma imagem qualificada. No entanto, depois que o streaming de imagens armazena a imagem em cache, a imagem futura extrai todos os benefícios do cluster pelo streaming de imagens.

  • Outras limitações de streaming de imagens do GKE se aplicam.