arrow_back

Pipelines de entrega contínua com Spinnaker e Kubernetes Engine

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Pipelines de entrega contínua com Spinnaker e Kubernetes Engine

Lab 1 hora 30 minutos universal_currency_alt 7 créditos show_chart Avançado
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP114

Laboratórios autoguiados do Google Cloud

Informações gerais

Neste laboratório prático, você vai aprender a criar um pipeline de entrega contínua usando o Google Kubernetes Engine, o Google Cloud Source Repositories, o Google Cloud Container Builder e o Spinnaker. Depois de criar um aplicativo de amostra, configure esses serviços para criar, testar e implantar automaticamente o aplicativo. Quando você modifica o código do aplicativo, as alterações acionam o pipeline de entrega contínua para recriar, retestar e reimplantar a nova versão automaticamente.

Objetivos

  • Configurar o ambiente iniciando o Google Cloud Shell, criando um cluster do Kubernetes Engine e definindo o esquema de gerenciamento de identidade e usuário.
  • Fazer o download de um aplicativo de amostra, criar um repositório do Git e fazer upload dele para um Google Cloud Source Repository.
  • Implantar o Spinnaker no Kubernetes Engine usando o Helm.
  • Criar a imagem Docker.
  • Criar gatilhos para gerar imagens do Docker quando o aplicativo for alterado.
  • Configurar um pipeline de Spinnaker para implantar o aplicativo no Kubernetes Engine de maneira confiável e contínua.
  • Implantar uma alteração de código, acionando o pipeline, e ver a implementação na produção.

Arquitetura de pipeline

Para entregar continuamente atualizações de aplicativos aos usuários, é necessário ter um processo automatizado que crie, teste e atualize o software de maneira confiável. As alterações de código precisam fluir automaticamente por meio de um pipeline que inclua criação de artefatos, teste de unidade, teste funcional e implementação na produção. Em alguns casos, convém aplicar uma atualização de código apenas a um subconjunto de usuários para fins de teste, antes do envio para toda a base de usuários. Se uma dessas versões canário for insatisfatória, o procedimento automatizado precisará reverter rapidamente as alterações no software.

Diagrama do processo

Com o Kubernetes Engine e o Spinnaker, é possível criar um fluxo eficiente de entrega contínua para garantir que o envio do software seja tão rápido quanto o desenvolvimento e a validação. Ainda que a iteração rápida seja seu objetivo final, cada revisão do aplicativo precisa passar por diversas validações automatizadas para se tornar um candidato para lançamento na produção. Quando uma determinada alteração tiver sido aprovada pela automação, você também poderá validar o aplicativo manualmente e realizar outros testes de pré-lançamento.

Quando sua equipe decidir que o aplicativo está pronto para produção, um dos membros da equipe poderá aprová-lo para implantação na produção.

Pipeline de entrega de aplicativos

Neste laboratório, você vai criar o pipeline de entrega contínua de aplicativos mostrado no diagrama a seguir.

Diagrama de fluxo do pipeline de entrega contínua

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = <project_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Tarefa 1: Configure seu ambiente

Configure a infraestrutura e as identidades necessárias para este laboratório. Primeiro, você criará um cluster do Kubernetes Engine para implantar o Spinnaker e o aplicativo de amostra.

  1. Defina a zona padrão do Compute:
gcloud config set compute/zone {{{project_0.default_zone|Zone}}}
  1. Crie um cluster do Kubernetes Engine usando o aplicativo de amostra no tutorial do Spinnaker:
gcloud container clusters create spinnaker-tutorial \ --machine-type=e2-standard-2

A criação do cluster leva entre cinco e dez minutos. Aguarde a finalização do provisionamento do cluster para continuar.

Ao concluir, você verá um relatório detalhando o nome, o local, a versão, o endereço IP, o tipo de máquina, a versão do nó, o número de nós e o status que indica que o cluster está em execução.

Configure o gerenciamento de identidade e acesso

Crie uma conta de serviço do Cloud Identity & Access Management (Cloud IAM) para delegar permissões ao Spinnaker, permitindo que ele armazene dados no Cloud Storage. O Spinnaker armazena os dados do pipeline no Cloud Storage para garantir confiabilidade e resiliência. Em caso de falha inesperada na implantação do Spinnaker, crie uma implantação idêntica em minutos com acesso aos mesmos dados do pipeline original.

Siga estas etapas para fazer upload do script de inicialização em um bucket do Cloud Storage:

  1. Crie a conta de serviço:
gcloud iam service-accounts create spinnaker-account \ --display-name spinnaker-account
  1. Armazene o endereço de e-mail da conta de serviço e o ID do projeto atual em variáveis de ambiente para uso em comandos posteriores:
export SA_EMAIL=$(gcloud iam service-accounts list \ --filter="displayName:spinnaker-account" \ --format='value(email)') export PROJECT=$(gcloud info --format='value(config.project)')
  1. Vincule o papel storage.admin à conta de serviço:
gcloud projects add-iam-policy-binding $PROJECT \ --role roles/storage.admin \ --member serviceAccount:$SA_EMAIL
  1. Faça o download da chave da conta de serviço. Em uma etapa posterior, você vai instalar o Spinnaker e fazer o upload dessa chave no Kubernetes Engine:
gcloud iam service-accounts keys create spinnaker-sa.json \ --iam-account $SA_EMAIL

Saída:

created key [12f224e036437704b91a571792462ca6fc4cd438] of type [json] as [spinnaker-sa.json] for [spinnaker-account@qwiklabs-gcp-gcpd-f5e16da10e5d.iam.gserviceaccount.com]

Tarefa 2: Configure o Cloud Pub/Sub para acionar pipelines do Spinnaker

  1. Crie o tópico do Cloud Pub/Sub para notificações do Container Registry:
gcloud pubsub topics create projects/$PROJECT/topics/gcr
  1. Crie uma assinatura que o Spinnaker possa ler para receber notificações de envio de imagens por push:
gcloud pubsub subscriptions create gcr-triggers \ --topic projects/${PROJECT}/topics/gcr
  1. Autorize a conta de serviço do Spinnaker a ler a assinatura gcr-triggers:
export SA_EMAIL=$(gcloud iam service-accounts list \ --filter="displayName:spinnaker-account" \ --format='value(email)') gcloud beta pubsub subscriptions add-iam-policy-binding gcr-triggers \ --role roles/pubsub.subscriber --member serviceAccount:$SA_EMAIL

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se você configurou corretamente o ambiente, uma pontuação de avaliação vai aparecer.

Configure seu ambiente

Tarefa 3: Implante o Spinnaker usando o Helm

Nesta seção, você usa Helm para implantar o Spinnaker pelo repositório Gráficos. O Helm é um gerenciador de pacotes que você usa para configurar e implantar aplicativos do Kubernetes.

O Helm já está instalado no seu Cloud Shell.

Configure o Helm

  1. Conceda o papel cluster-admin ao Helm no cluster:
kubectl create clusterrolebinding user-admin-binding \ --clusterrole=cluster-admin --user=$(gcloud config get-value account)
  1. Conceda ao Spinnaker o papel cluster-admin para que ele possa implantar recursos em todos os namespaces:
kubectl create clusterrolebinding --clusterrole=cluster-admin \ --serviceaccount=default:default spinnaker-admin
  1. Adicione as implantações de gráficos estáveis aos repositórios utilizáveis do Helm (inclui o Spinnaker):
helm repo add stable https://charts.helm.sh/stable helm repo update

Configure o Spinnaker

  1. Ainda no Cloud Shell, crie um bucket para o Spinnaker armazenar a configuração do pipeline:
export PROJECT=$(gcloud info \ --format='value(config.project)') export BUCKET=$PROJECT-spinnaker-config gsutil mb -c regional -l {{{project_0.default_region|Region}}} gs://$BUCKET
  1. Execute o seguinte comando para criar o arquivo spinnaker-config.yaml, que descreve como o Helm deve instalar o Spinnaker:
export SA_JSON=$(cat spinnaker-sa.json) export PROJECT=$(gcloud info --format='value(config.project)') export BUCKET=$PROJECT-spinnaker-config cat > spinnaker-config.yaml <<EOF gcs: enabled: true bucket: $BUCKET project: $PROJECT jsonKey: '$SA_JSON' dockerRegistries: - name: gcr address: https://gcr.io username: _json_key password: '$SA_JSON' email: 1234@5678.com # Disable minio as the default storage backend minio: enabled: false # Configure Spinnaker to enable GCP services halyard: spinnakerVersion: 1.19.4 image: repository: us-docker.pkg.dev/spinnaker-community/docker/halyard tag: 1.32.0 pullSecrets: [] additionalScripts: create: true data: enable_gcs_artifacts.sh: |- \$HAL_COMMAND config artifact gcs account add gcs-$PROJECT --json-path /opt/gcs/key.json \$HAL_COMMAND config artifact gcs enable enable_pubsub_triggers.sh: |- \$HAL_COMMAND config pubsub google enable \$HAL_COMMAND config pubsub google subscription add gcr-triggers \ --subscription-name gcr-triggers \ --json-path /opt/gcs/key.json \ --project $PROJECT \ --message-format GCR EOF

Implante o gráfico do Spinnaker

  1. Use a interface de linha de comando do Helm para implantar o gráfico com o conjunto de configurações:
helm install -n default cd stable/spinnaker -f spinnaker-config.yaml \ --version 2.0.0-rc9 --timeout 10m0s --wait Observação: a instalação geralmente leva cinco a oito minutos.
  1. Depois que o comando for concluído, execute o comando a seguir para configurar o encaminhamento de portas para o Spinnaker no Cloud Shell:
export DECK_POD=$(kubectl get pods --namespace default -l "cluster=spin-deck" \ -o jsonpath="{.items[0].metadata.name}") kubectl port-forward --namespace default $DECK_POD 8080:9000 >> /dev/null &
  1. Para abrir a interface do usuário do Spinnaker, clique no ícone Web Preview na parte de cima da janela do Cloud Shell e selecione Preview on port 8080.

Ícone Web Preview na parte de cima da janela do Cloud Shell

A tela inicial é aberta, seguida da interface do usuário do Spinnaker.

Deixe esta guia aberta para poder acessar a interface do Spinnaker.

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Caso tenha implantado o gráfico do Spinnaker corretamente usando o Kubernetes Helm, você verá uma pontuação de avaliação.

Implante o gráfico do Spinnaker usando o Kubernetes Helm

Tarefa 4: Crie a imagem Docker

Nesta seção, você vai configurar o Cloud Build para detectar alterações no código-fonte do app, criar uma imagem Docker e enviá-la por push para o Container Registry.

Crie o repositório de código-fonte

  1. Na guia do Cloud Shell, faça o download do código-fonte do aplicativo de amostra:
gsutil -m cp -r gs://spls/gsp114/sample-app.tar .
  1. Descompacte o código-fonte:
mkdir sample-app tar xvf sample-app.tar -C ./sample-app
  1. Acesse o diretório do código-fonte:
cd sample-app
  1. Defina o nome de usuário e o endereço de e-mail dos commits do Git nesse repositório. Substitua [USERNAME] por um nome de usuário que você criou:
git config --global user.email "$(gcloud config get-value core/account)" git config --global user.name "[USERNAME]"
  1. Faça a confirmação inicial no repositório de código-fonte:
git init git add . git commit -m "Initial commit"
  1. Crie um repositório para hospedar o código:
gcloud source repos create sample-app Observação: ignore a mensagem sobre possível cobrança do repositório. git config credential.helper gcloud.sh
  1. Adicione o repositório recém-criado como remoto:
export PROJECT=$(gcloud info --format='value(config.project)') git remote add origin https://source.developers.google.com/p/$PROJECT/r/sample-app
  1. Envie por push o código para a ramificação mestre do novo repositório:
git push origin master
  1. Verifique se o código-fonte aparece no Console clicando em Menu de navegação > Source Repositories.

  2. Clique em sample-app.

Configure os gatilhos de build

Configure o Container Builder para criar e enviar por push as imagens do Docker sempre que você executar push para as tags do Git no repositório de origem. O Container Builder verifica automaticamente o código-fonte, cria a imagem Docker usando o Dockerfile do repositório e envia por push essa imagem para o Google Cloud Container Registry.

Diagrama de fluxo do Container Builder

  1. No Console do Cloud Platform, clique em Menu de navegação > Cloud Build > Gatilhos.

  2. Clique em Criar gatilho.

  3. Defina as seguintes configurações do gatilho:

  • Nome: sample-app-tags
  • Evento: Enviar nova tag por push
  • Selecione o repositório sample-app recém-criado.
  • Tag: .*(qualquer tag)
  • Configuração: arquivo de configuração do Cloud Build (yaml ou json)
  • Local do arquivo de configuração do Cloud Build: /cloudbuild.yaml
  1. Clique em CRIAR.

CreateTrigger-1.png

A partir de agora, sempre que você enviar por push uma tag do Git (.*) para o repositório de código-fonte, o Cloud Build vai automaticamente criar e enviar por push o aplicativo como uma imagem Docker para o Container Registry.

Prepare manifestos do Kubernetes para uso no Spinnaker

O Spinnaker precisa acessar seus manifestos do Kubernetes para implantá-los nos clusters. Nesta seção, criaremos um bucket do Cloud Storage que será preenchido com seus manifestos durante o processo de integração contínua (CI, na sigla em inglês) no Cloud Build. Depois que seus manifestos estiverem no Cloud Storage, o Spinnaker poderá fazer o download e aplicá-los durante a execução do seu pipeline.

  1. Crie o bucket:
export PROJECT=$(gcloud info --format='value(config.project)') gsutil mb -l {{{project_0.default_region|Region}}} gs://$PROJECT-kubernetes-manifests
  1. Ative o controle de versões no bucket para ter um histórico dos manifestos:
gsutil versioning set on gs://$PROJECT-kubernetes-manifests
  1. Defina o ID do projeto correto nos manifestos de implantação do Kubernetes:
sed -i s/PROJECT/$PROJECT/g k8s/deployments/*
  1. Confirme as mudanças no repositório:
git commit -a -m "Set project ID"

Crie a imagem

Envie por push a primeira imagem seguindo estas etapas:

  1. No Cloud Shell, ainda no diretório sample-app, crie uma tag do Git:
git tag v1.0.0
  1. Envie a tag por push:
git push --tags

Saída:

To https://source.developers.google.com/p/qwiklabs-gcp-ddf2925f84de0b16/r/sample-app * [new tag] v1.0.0 -> v1.0.0
  1. Acesse o console do Cloud. Ainda no Cloud Build, clique em Histórico no painel à esquerda para verificar se o build foi acionado. Caso contrário, confira se o gatilho foi configurado corretamente na seção anterior.

Permaneça nesta página e aguarde até a conclusão do build antes de ir para a próxima seção.

Observação: se o Build falhar, clique em Código da versão para abrir a página de detalhes e clique em TENTAR NOVAMENTE.

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se a imagem Docker foi criada, uma pontuação de avaliação vai aparecer.

Compile a imagem Docker

Tarefa 5: Configure pipelines de implantação

Agora que as imagens estão sendo criadas automaticamente, é necessário implantá-las no cluster do Kubernetes.

A implantação é feita em um ambiente reduzido para testes de integração. Após a aprovação dos testes de integração, aprove manualmente as alterações para implantar o código nos serviços de produção.

Instale o spin CLI para gerenciar o Spinnaker

O spin é um utilitário de linha de comando para gerenciar aplicativos e pipelines do Spinnaker.

  1. Faça o download da versão 1.14.0 do spin:
curl -LO https://storage.googleapis.com/spinnaker-artifacts/spin/1.14.0/linux/amd64/spin
  1. Torne o spin executável:
chmod +x spin

Crie o pipeline de implantação

  1. Use o spin para criar um aplicativo chamado sample no Spinnaker. Defina o endereço de e-mail do proprietário do app no Spinnaker:
./spin application save --application-name sample \ --owner-email "$(gcloud config get-value core/account)" \ --cloud-providers kubernetes \ --gate-endpoint http://localhost:8080/gate

Depois crie o pipeline de entrega contínua. Neste tutorial, o pipeline está configurado para detectar quando uma imagem Docker com uma tag prefixada com "v" chegou ao Container Registry.

  1. No diretório do código-fonte sample-app, execute o seguinte comando para enviar um pipeline de exemplo à instância do Spinnaker:
export PROJECT=$(gcloud info --format='value(config.project)') sed s/PROJECT/$PROJECT/g spinnaker/pipeline-deploy.json > pipeline.json ./spin pipeline save --gate-endpoint http://localhost:8080/gate -f pipeline.json

Acione manualmente e confira a execução do pipeline

A configuração que você acabou de criar usa notificações de imagens recém-marcadas, enviadas para acionar um pipeline do Spinnaker. Em uma etapa anterior, você enviou uma tag para o Cloud Source Repositories que acionou o Cloud Build para criar e enviar sua imagem para o Container Registry. Para verificar o pipeline, acione-o manualmente.

  1. Volte à guia do navegador que mostra a interface do Spinnaker.

Para reabrir a guia caso ela não esteja mais aberta, selecione Visualização na Web > Visualizar na porta 8080 na janela do Cloud Shell.

  1. Na interface do Spinnaker, clique em Applications na parte de cima da tela para abrir a lista de aplicativos gerenciados.

sample e seu aplicativo. Se você não encontrar o aplicativo sample, atualize a guia "Applications" do Spinnaker.

  1. Clique em sample para conferir a implantação do aplicativo.

  2. Clique em Pipeline na parte de cima para conferir o status do pipeline do aplicativo.

  3. Clique em Start Manual Execution, selecione Deploy em "Select Pipeline" e clique em Run para acionar o pipeline pela primeira vez.

  4. Clique em Execution Details para conferir mais informações sobre o progresso do pipeline.

A barra de progresso mostra o status e as etapas do pipeline de implantação.

Barra de progresso

As etapas em azul estão em execução, as verdes foram concluídas sem erros e as vermelhas falharam.

  1. Clique na etapa para ver mais detalhes.

Após três a cinco minutos, a fase de teste de integração é concluída, e o pipeline solicita aprovação manual para continuar a implantação.

  1. Passe o cursor sobre o ícone amarelo "pessoa" e clique em Continuar.

A implementação continua para as implantações de front-end e back-end de produção. Ela é concluída após alguns minutos.

  1. Para conferir o app, na parte de cima da interface do Spinnaker, selecione Infrastructure > Load Balancers.

  2. Role para baixo na lista de balanceadores de carga e clique em "Default", que fica em sample-frontend-production. Os detalhes do seu balanceador de carga aparecerão no lado direito da página. Se não, atualize o navegador.

  3. Role para baixo no painel de detalhes à direita e copie o endereço IP do seu aplicativo. Para isso, clique no botão da área de transferência no IP de entrada. O link do IP de entrada da interface do Spinnaker pode usar HTTPS por padrão, mas o aplicativo está configurado para usar HTTP.

Painel de detalhes

  1. Cole o endereço em uma nova guia no navegador para conferir o aplicativo. Talvez a versão canário seja exibida. Atualize para conferir a versão de produção também.

Versão de produção do aplicativo

Você acionou manualmente o pipeline para criar, testar e implantar o aplicativo.

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se tiver criado corretamente os balanceadores de carga de serviço, você verá uma pontuação de avaliação.

Crie balanceadores de carga de serviço

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se tiver implantado corretamente uma imagem na produção, você verá uma pontuação de avaliação.

Implante uma imagem na produção

Tarefa 6: Acione o pipeline de alterações de código

Agora teste o pipeline completamente fazendo uma alteração de código, enviando por push uma tag do Git e observando o pipeline gerar uma resposta. Ao enviar uma tag do Git que começa com a letra "v", você aciona o Container Builder para criar uma nova imagem Docker e enviá-la por push para o Container Registry. O Spinnaker detecta que a nova tag de imagem contém o prefixo "v" e aciona um pipeline para implantar a imagem nas versões canário, executar testes e implementar a mesma imagem em todos os pods na implantação.

  1. No diretório sample-app, mude a cor laranja do app para azul:
sed -i 's/orange/blue/g' cmd/gke-info/common-service.go
  1. Marque a alteração e a envie por push para o repositório de código-fonte:
git commit -a -m "Change color to blue" git tag v1.0.1 git push --tags
  1. No Console, em Cloud Build > Histórico, aguarde alguns minutos para que o novo build seja exibido. Talvez seja necessário atualizar a página. Aguarde a conclusão do novo build antes de prosseguir para a próxima etapa.
Observação: se o Build falhar, clique em ID da versão e em TENTAR NOVAMENTE.
  1. Volte para a interface do Spinnaker e clique em Pipelines para conferir o pipeline começar a implantar a imagem. O pipeline acionado automaticamente levará alguns minutos para ser exibido. Talvez seja necessário atualizar a página.

Guia &quot;Pipelines&quot; na interface do Spinnaker

Teste a tarefa concluída

Clique em Verificar meu progresso para conferir a tarefa realizada. Se você acionou corretamente o pipeline de alterações de código, vai aparecer uma pontuação de avaliação.

Acione o pipeline de alterações de código

Tarefa 7: Confira as implantações canário

  1. Quando a implantação estiver pausada, aguardando a implementação na produção, volte para a página da Web que mostra o aplicativo em execução e atualize a guia do aplicativo. Quatro back-ends estão executando a versão anterior do aplicativo, e apenas um está executando a versão canário. Você verá a nova versão do aplicativo na cor azul a cada cinco atualizações.

  2. Quando o pipeline for concluído, o aplicativo será parecido com a captura de tela a seguir. A cor mudou para azul graças à alteração de código, e o campo Versão agora exibe canary.

Versão canário com azul

Você acaba de lançar o app em todo o ambiente de produção.

  1. Se quiser, desfaça essa alteração revertendo a confirmação anterior. A reversão adiciona uma nova tag (v1.0.2) e a envia de volta pelo mesmo pipeline usado para implantar v1.0.1:
git revert v1.0.1

Pressione CTRL+O, ENTER e CTRL+X.

git tag v1.0.2 git push --tags
  1. Quando o build e o pipeline estiverem concluídos, verifique a reversão clicando em Infrastructure > Load Balancers. Depois selecione Default em service sample-frontend-production e copie o endereço IP de entrada para uma nova guia.

O app voltará a ficar laranja, e o número da versão de production será exibido.

Versão de produção da interface na cor laranja

Parabéns!

Você concluiu o laboratório "Pipelines de entrega contínua com Spinnaker e Kubernetes Engine".

Termine a Quest

Este laboratório autoguiado faz parte das Quests Google Cloud Solutions I: Scaling Your Infrastructure e DevOps Essentials. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. É possível publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se em qualquer Quest que tenha este laboratório para receber os créditos de conclusão na mesma hora. Confira o catálogo do Google Cloud Ensina para ver todas as Quests disponíveis.

Comece o próximo laboratório

Continue a Quest com Running Dedicated Game Servers in Google Kubernetes Engine

Próximas etapas/Saiba mais

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 21 de novembro de 2023

Laboratório testado em 21 de novembro de 2023

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.