Como desenvolver com o Cloud Code

1. Objetivos

Neste laboratório, você vai aprender a:

  • Conheça os plug-ins do Cloud Code
  • Implantar no cluster do Kubernetes
  • Fazer streaming de registros do Kubernetes
  • Usar a recarga automática de mudanças
  • Depurar apps do Kubernetes ativos

2. Como preparar seu espaço de trabalho

Clonar o app

Para clonar o repositório e abri-lo no ambiente de desenvolvimento:

  1. Abra o editor do Cloud Shell no seguinte URL

https://ide.cloud.google.com

  1. Na janela do terminal, clone o código-fonte do aplicativo com o seguinte comando:

git clone https://github.com/viglesiasce/sample-app.git -b golden-path

  1. Mude para o diretório e defina o espaço de trabalho do ambiente de desenvolvimento integrado como a raiz do repositório

cd sample-app && cloudshell workspace .

Iniciar o Minikube

Nesta seção, você vai criar, testar, implantar e acessar seu aplicativo usando uma versão local do Kubernetes chamada Minikube.

  1. No terminal, inicie o minikube executando:

minikube start

O Minikube configura um cluster local do Kubernetes no Cloud Shell. Essa configuração leva alguns minutos. Enquanto ele está começando, pare um momento para analisar as diversas interfaces fornecidas pelo Cloud Code na próxima etapa.

3. Conheça o plug-in do Cloud Code

O Cloud Code oferece suporte ao ambiente de desenvolvimento integrado em todo o ciclo de desenvolvimento de aplicativos do Kubernetes e do Cloud Run, desde a criação de um aplicativo a partir de um modelo atual até o monitoramento dos recursos implantados. Você vai usar comandos e visualizações diferentes fornecidos pelo Cloud Code. Nesta etapa, você se familiarizará com as interfaces básicas.

Revise as visualizações do explorador na barra de atividades

Vários painéis da interface do usuário podem ser acessados na Barra de atividades. Para se familiarizar rapidamente com as diversas visualizações, clique nos ícones de cada uma delas.

APIs Explorer:

  • Clique no ícone do Cloud Code - APIs do Cloud Cloud Code na barra de atividades. Detalhes adicionais para trabalhar nessa visualização estão disponíveis na documentação.

ded1723c524edd72.png

Explorador do Secret Manager:

  • Clique na visualização do Secret Manager Envio na barra de atividades. Detalhes adicionais para trabalhar nessa visualização estão disponíveis na documentação

89f88159bcf79fa9.png

Explorador do Cloud Run:

  • Navegue até o explorador do Cloud Run usando o ícone do Cloud Run na barra de atividades à esquerda. Detalhes adicionais para trabalhar nessa visualização estão disponíveis na documentação

a1d583fd06413011.png

Kubernetes Explorer:

  • Navegue até o Kubernetes Explorer usando o ícone na barra de atividades à esquerda. Detalhes adicionais para trabalhar nessa visualização estão disponíveis na documentação

b2b8ab3975c5b0c9.png

Revisar comandos da barra de status

Os comandos mais usados podem ser acessados rapidamente pelo indicador na barra de status.

  • Localize o indicador da extensão do Cloud Code na barra de status d61e85cf23a32a40.png e clique nele.
  • Analisar os diversos comandos disponíveis para execução e depuração no CloudRun e no Kubernetes
  • Clique em "Abrir página de boas-vindas" para conferir mais detalhes e exemplos de atividades

Revisar comandos da paleta de comandos

Há comandos adicionais disponíveis na paleta de comandos. Analise a lista de comandos que você pode acessar.

  • Abra a Paleta de comandos (pressione Ctrl/Cmd+Shift+P) e digite Cloud Code para filtrar os comandos disponíveis.
  • Use as teclas de seta para navegar pela lista de comandos.

4. Como implantar no cluster do Kubernetes

Nesta seção, você vai criar, testar, implantar e acessar o aplicativo.

As etapas abaixo iniciam um build do código-fonte e, em seguida, executam os testes. O build e os testes levarão alguns minutos para serem executados. Esses testes incluem testes de unidade e uma etapa de validação que verifica as regras definidas para o ambiente de implantação. Essa etapa de validação já está configurada e garante que você receba avisos de problemas de implantação mesmo enquanto estiver trabalhando no ambiente de desenvolvimento.

  1. No painel da parte de baixo do Editor do Cloud Shell, selecione Cloud Code Envio d61e85cf23a32a40.png.
  2. No painel exibido na parte de cima, selecione "Executar no Kubernetes". Se solicitado, selecione Sim para usar o contexto do minikube do Kubernetes.
  3. Selecione a guia "Output" no painel inferior 4866761cb9c691e2.png para ver o progresso e as notificações.
  4. Selecione "Kubernetes: Run/Debug - Detalhado". No menu suspenso do canal à direita c5e31091d464dbcf.png, é possível ver mais detalhes e os registros das transmissões ao vivo dos contêineres.

Quando o build e os testes forem concluídos, a guia "Output" vai mostrar: Resource deployment/sample-app-dev status completed successfully, e dois URLs serão listados.

  1. No terminal do Cloud Code, passe o cursor sobre o primeiro URL na saída (http://localhost:8080) e, na dica de ferramenta exibida, selecione "Abrir visualização na Web".

A versão local do aplicativo é aberta no navegador. Essa versão do app é executada no cluster do Kubernetes do minikube.

  1. No navegador, atualize a página. O número ao lado de "Contador" aumenta, mostrando que o app está respondendo à atualização.

No navegador, mantenha essa página aberta para ver o aplicativo enquanto faz as alterações no ambiente local.

5. Usar a recarga automática de mudanças

Nesta seção, você fará uma alteração no aplicativo e verá a alteração enquanto ele é executado no cluster local do Kubernetes. Na guia de saída do canal Kubernetes: Run/Debug, além dos URLs do aplicativo, a saída também mostra Watching for changes.. Isso significa que o modo de observação está ativado. Enquanto o Cloud Code estiver no modo de observação, o Cloud Code detectará todas as alterações salvas no seu repositório e vai recriar e reimplantar automaticamente o app com as alterações mais recentes.

  1. No editor do Cloud Shell, acesse o arquivo main.go.
  2. Neste arquivo main.go, na linha 23, mude a cor de verde para azul.
  3. Salve o arquivo.

O Cloud Code detecta que a alteração no app foi salva e reimplanta a alteração automaticamente. A guia "Saída" mostra que a atualização foi iniciada. Essa reimplantação vai levar alguns minutos para ser executada.

Essa recriação automática é semelhante ao recarregamento de código quente, que é um recurso disponível para alguns tipos de aplicativos e frameworks.

  1. Quando o build estiver concluído, acesse o navegador em que o app está aberto e atualize a página.

Quando você atualiza a página, a cor na parte de cima da tabela muda de azul para verde.

Essa configuração permite recarregar automaticamente qualquer arquitetura e componentes. Com o Cloud Code e o minikube, tudo o que é executado no Kubernetes tem essa funcionalidade de recarregamento de código quente.

6. Como depurar aplicativos ativos do Kubernetes

Você executou o aplicativo, fez uma alteração e viu o aplicativo em execução. Nesta seção, você vai depurar o aplicativo para ter certeza de que ele está pronto para fazer commit no repositório principal.

Para este exemplo de depuração, vamos nos concentrar na seção do código do contador de páginas.

  1. No editor do Cloud Shell, abra o arquivo main.go
  2. Defina um ponto de interrupção no aplicativo clicando no número esquerdo da linha 82 (if err != nil {)
  3. No painel azul na parte de baixo do editor do Cloud Shell, selecione Cloud Code d61e85cf23a32a40.png \.
  4. No painel exibido na parte de cima, selecione "Depurar no Kubernetes".

O Cloud Code executa e anexa depuradores para que você possa acessar o estado na memória do aplicativo, e não apenas o comportamento do aplicativo voltado para o usuário.

  1. No final do processo de implantação, vai aparecer um prompt na parte de cima da janela para confirmar o diretório no contêiner em que o aplicativo está implantado. f96e9a814edb44f4.png

Verifique se o valor está definido como /go/src/app e pressione Enter para aceitar o valor

  1. Aguarde a implantação do depurador terminar. Você saberá que o processo foi concluído quando a barra de status ficar laranja e a saída informar "Attached debugger to container "sample-app-dev-..." successfully."
  2. No terminal do Cloud Code, passe o cursor sobre o primeiro URL na saída (http://localhost:8081) e, na dica de ferramenta exibida, selecione "Abrir visualização na Web". A página não termina de carregar, o que é esperado.
  3. Volte para o ambiente de desenvolvimento integrado em que o depurador será exibido. O código aparece na guia, e você vê a pilha de chamadas e quais variáveis estão disponíveis naquela parte do código. Abra "Variables - Local" para ver o valor atual da variável de contador.
  4. Para permitir que a página continue a carregar, selecione o botão "Continuar" ícone na janela de depuração 8f395391c4828528.png
  5. Quando terminar a depuração, clique no botão de parada para encerrar cada uma das linhas de execução em execução. 81d142a9e1a2c01b.png