Como rodar o Google Cloud Code localmente
O desenvolvimento de aplicações nativas da nuvem com o Google Cloud Code pode otimizar significativamente o seu fluxo de trabalho. Como alguém profundamente envolvido em estratégias cloud-first, observei os desafios comuns que os desenvolvedores enfrentam ao fazer a transição entre ambientes locais e implantações na nuvem. A busca por eficiência e integração perfeita frequentemente nos leva a procurar ferramentas que possam preencher essa lacuna. O Google Cloud Code se destaca como uma solução poderosa, projetada para trazer a experiência de desenvolvimento na nuvem diretamente para o seu Ambiente de Desenvolvimento Integrado (IDE).
O Cloud Code é uma extensão abrangente que integra serviços do Google Cloud, como Google Kubernetes Engine (GKE) e Cloud Run, diretamente no seu IDE. Essa integração permite construir, executar e depurar aplicações nativas da nuvem no seu ambiente de desenvolvimento familiar, eliminando efetivamente a necessidade de alternância constante de contexto. Ele suporta todo o ciclo de vida de desenvolvimento, desde a criação inicial até o monitoramento contínuo, fornecendo feedback contínuo em todas as fases. O Cloud Code está disponível para VS Code e IntelliJ e vem pré-integrado no Editor do Cloud Shell. .
Em resumo: O que o Cloud Code oferece
- Integração com IDE: Funciona com VS Code, IntelliJ e o Editor do Cloud Shell.
- Ciclo de Vida de Desenvolvimento Completo: Suporta a criação, execução, depuração e monitoramento de aplicações nativas da nuvem.
- Suporte a GKE e Cloud Run: Integração perfeita com os serviços Google Kubernetes Engine e Cloud Run.
- Emulação Local: Desenvolva e depure serviços do Cloud Run localmente com um emulador integrado.
- Assistência de IA: Integra-se com o Gemini Code Assist para geração de código e solução de problemas.
- Gerenciamento de Segredos (Secret Management): Suporte integrado para o Google Secret Manager.
- Personalização: Permite imagens de contêiner e configuração de ambiente personalizadas do Cloud Shell.
Funcionalidade do Cloud Code
O Cloud Code oferece uma ampla gama de recursos projetados para acelerar o desenvolvimento de aplicações nativas da nuvem. Ele se integra ao Google Cloud SDK para autenticação simplificada e inclui exemplos executáveis e snippets pré-configurados para ajudar você a iniciar seu projeto. . Embora seja otimizado principalmente para o Google Cloud, é flexível o suficiente para funcionar com qualquer plataforma de nuvem.
A extensão simplifica a criação de clusters do Google Cloud e aprimora a integração de ferramentas essenciais, como Cloud Source Repositories, Cloud Build e Cloud Client Libraries. Para desenvolvedores que trabalham com Kubernetes, o Cloud Code suporta ferramentas de contêiner de linha de comando padrão, como Minikube e kubectl. . Permite a criação e execução de novas aplicações GKE, bem como a modificação de arquivos YAML existentes. Além disso, o suporte a módulos do Skaffold permite o desenvolvimento e a depuração independentes de componentes individuais de aplicações GKE.
O Cloud Code também otimiza o fluxo de trabalho de desenvolvimento para serviços do Cloud Run, simplificando sua criação, implantação e monitoramento. Uma vantagem crucial é a capacidade de construir e depurar esses serviços localmente usando o emulador Cloud Run integrado, o que pode economizar tempo significativo de implantação. A extensão suporta ainda a migração de aplicações Linux para contêineres através da funcionalidade container-diff integrada e ajuda na criação de imagens de contêineres prontas para produção diretamente do código-fonte usando os Google Cloud Buildpacks – tudo sem a necessidade de um Dockerfile.
O gerenciamento de dados sensíveis torna-se direto com o suporte integrado do Cloud Code ao Secret Manager. Por meio de uma visualização dedicada do Secret Manager, você pode criar, visualizar e atualizar com segurança informações sensíveis, como chaves de API e senhas. A extensão também inclui um Navegador da Biblioteca de APIs para descobrir e habilitar várias APIs do Cloud, bem como ferramentas integradas para gerenciar VMs do Compute Engine e desenvolver proxies de API do Apigee.

Fonte: sethvargo.com
A interface do Secret Manager do Cloud Code permite o gerenciamento seguro e centralizado de dados sensíveis, como chaves de API e credenciais, diretamente no seu IDE.
Assistência Impulsionada por IA
O Cloud Code integra recursos avançados de programação impulsionados por IA através do Gemini Code Assist Standard e Enterprise. Essas ferramentas inteligentes são projetadas para ajudar na geração de código e na solução de problemas de forma mais eficiente, otimizando significativamente o processo de desenvolvimento. É importante notar que o Gemini Code Assist é um plugin separado do Cloud Code e requer conexão com o Google Cloud e a ativação de permissões IAM específicas para funcionar corretamente.

Fonte: datacamp.com
O Gemini Code Assist oferece geração de código e recursos de solução de problemas impulsionados por IA diretamente no seu ambiente de desenvolvimento, aumentando a produtividade.
Cloud Code no Editor do Cloud Shell
O Editor do Cloud Shell, um ambiente de desenvolvimento e operações online acessível diretamente pelo seu navegador, oferece uma configuração pré-configurada especificamente otimizada para o Cloud Code. Este ambiente vem com utilitários pré-instalados, como a ferramenta de linha de comando gcloud e kubectl, tornando-o ideal para desenvolver, construir, depurar e implantar aplicações baseadas em nuvem sem configuração adicional.
Terminal do Cloud Shell
O Cloud Shell oferece duas ferramentas principais: o Terminal do Cloud Shell e o Editor do Cloud Shell. O Terminal fornece um shell totalmente funcional, baseado em nuvem, rodando em uma máquina Linux baseada em Debian, específica da sessão. Ele inclui o Google Cloud SDK e ferramentas essenciais para desenvolvedores, como git, kubectl, kubectx, curl, python3 e
tmux.
Seu diretório $HOME no Cloud Shell persiste entre as sessões, pois é armazenado no Cloud Storage. Você pode iniciar o Cloud Shell convenientemente via console.cloud.google.com, onde seu ID de projeto GCP é detectado automaticamente. O Cloud Shell suporta múltiplas abas e janelas, e o tmux integrado garante a persistência da sessão. Além disso, o encaminhamento automático de portas está disponível através dos mecanismos de controle de visualização da Web, simplificando o acesso a aplicações em execução.
Editor do Cloud Shell
O Editor do Cloud Shell é baseado no projeto de código aberto
Eclipse Theia project,
, oferecendo uma experiência de usuário semelhante ao VS Code. Você pode acessá-lo através da linha de comando (cloudshell edit), através do menu do Cloud Shell ou diretamente pela URL ide.cloud.google.com. O Editor vem com um terminal integrado e permite uma personalização abrangente de suas configurações. Para casos de uso avançados, você pode criar imagens de contêiner personalizadas do Cloud Shell para fornecer uma instância totalmente específica da sessão com pacotes adicionais, definindo essas imagens usando um cloudshell.yaml.
Dockerfile.
Essas imagens personalizadas podem ser construídas e testadas localmente e depois enviadas para um Cloud Source Repository e Container Registry. Para ainda mais flexibilidade, o acesso Remote SSH ao Cloud Shell a partir de sua máquina local é possível, e seu diretório base pode ser montado localmente.
Desenvolvimento Local com Cloud Code
O Cloud Code é projetado para suportar vários ambientes de desenvolvimento local. Ele permite integrar clusters de outros provedores de nuvem ao seu KubeConfig e trabalha perfeitamente com o Docker Desktop para clusters locais. Para funcionar corretamente, seu arquivo padrão ~/.kube/config deve incluir o cluster local, que também deve ser definido como o contexto atual.
Desenvolvimento e Implantação de Aplicações Locais
Ao criar uma aplicação a partir de um modelo no Cloud Code, você seleciona o tipo de aplicação (por exemplo, aplicação Kubernetes) e sua linguagem de programação preferida. Aplicações de exemplo geralmente seguem uma estrutura semelhante, com configurações armazenadas em .vscode e especificações de pod em kubernetes-manifests. É crucial usar um cluster que não seja de produção para fins de desenvolvimento e teste. Antes de executar, certifique-se de que o contexto do Kubernetes esteja definido corretamente. A configuração de execução Cloud Code: Develop on Kubernetes oferece opções para personalizar sua implantação.
Integração Minikube
O Cloud Code oferece integração robusta com o Minikube. Você pode facilmente iniciar clusters Minikube, executar suas aplicações neles e inspecionar detalhes de implantação dentro das sessões de desenvolvimento. URLs de encaminhamento de porta permitem acesso conveniente ao navegador para sua aplicação em execução. Para depuração interativa, um terminal interativo pode ser aberto diretamente em um contêiner através do Development Sessions Explorer. Os clusters Minikube também podem ser pausados ou interrompidos conforme necessário.
Depuração e Log
A depuração é um recurso central do Cloud Code, permitindo que você defina pontos de interrupção em seu código para controlar sessões de depuração de forma eficaz. O log em tempo real de pods em execução está disponível, exibido na saída do terminal ou através do Kubernetes Explorer, fornecendo insights imediatos sobre o comportamento de sua aplicação. Para evitar custos desnecessários, lembre-se de excluir recursos no Google Cloud Console assim que seu desenvolvimento ou teste for concluído.
Desenvolvimento de Cloud Functions
Para o desenvolvimento de Cloud Functions, o Functions Framework pode ser instalado e executado localmente. Você pode baixar o código-fonte de uma função implantada do Google Cloud e instalar dependências locais na pasta local da função. O Functions Framework é executado com comandos como npx functions-framework --target=entryPoint para Node.js ou functions-framework --target=entryPoint para Python. O entryPoint para sua função é encontrado no arquivo launch.json.
Teste Local de Serviços do Cloud Run
Os serviços do Cloud Run também podem ser testados localmente usando Docker ou Docker com Acesso ao Google Cloud. A variável de ambiente PORT é usada para especificar a porta na qual sua aplicação recebe solicitações HTTP/HTTPS. Ao executar localmente com o Docker, uma conta de serviço com um par de chaves é necessária, pois a conta de serviço padrão não está disponível neste contexto. As bibliotecas de cliente do Google Cloud podem ser configuradas para autenticar-se nos serviços do Google Cloud a partir do seu contêiner local. A ferramenta de linha de comando gcloud beta code dev oferece uma maneira conveniente de emular o Cloud Run, construindo contêineres a partir do código-fonte e reconstruindo automaticamente em caso de alterações.
Perguntas Frequentes sobre Desenvolvimento Local com Cloud Code
Aqui estão algumas perguntas e respostas comuns sobre o desenvolvimento local com o Google Cloud Code:
- Quais IDEs o Cloud Code suporta?
O Cloud Code está disponível para VS Code e IntelliJ e vem pré-integrado no Editor do Cloud Shell.
- Posso usar o Cloud Code com outros provedores de nuvem?
Embora otimizado para o Google Cloud, o Cloud Code pode funcionar com qualquer plataforma de nuvem. Ele suporta a adição de clusters de outros provedores ao seu KubeConfig.
- Eu preciso do Docker para o desenvolvimento local do Cloud Run?
Sim, os serviços do Cloud Run podem ser testados localmente com Docker ou Docker com Acesso ao Google Cloud. Pode ser necessária uma conta de serviço com um par de chaves para autenticação.
- Como eu depuro aplicações rodando no Kubernetes com o Cloud Code?
O Cloud Code permite que você defina pontos de interrupção em seu código e visualize logs em tempo real de pods em execução diretamente no seu IDE ou através do Kubernetes Explorer.
- O Gemini Code Assist é ativado automaticamente com o Cloud Code?
Não, o Gemini Code Assist é um plugin separado que requer conexão com o Google Cloud e ativação de permissões IAM para funcionar.
Conclusão
O Google Cloud Code otimiza significativamente o processo de desenvolvimento de aplicações nativas da nuvem dentro de um IDE. Ao integrar perfeitamente os serviços do Google Cloud, assistência impulsionada por IA e recursos robustos de desenvolvimento e depuração local, ele visa aumentar a produtividade do desenvolvedor e reduzir o atrito frequentemente associado às implantações na nuvem. A utilização do Cloud Code pode levar a uma experiência de desenvolvimento mais eficiente e agradável, permitindo que você se concentre mais na inovação e menos nas complexidades do ambiente.
Fonte: YouTube