Checkpoints
Prepare a source PostgreSQL database for migration
/ 20
Migrate a stand-alone PostgreSQL database to Cloud SQL
/ 20
Promote a Database Migration Services continuous replica to a stand-alone instance.
/ 20
Update permissions and add IAM roles to users
/ 10
Create networks and firewalls
/ 10
Create a BigQuery log sink
/ 20
Como implantar e gerenciar ambientes de nuvem usando o Google Cloud: laboratório com desafio
- GSP314
- Introdução
- Configuração
- Cenário do desafio
- Tarefa 1: migrar um banco de dados independente PostgreSQL para uma instância do Cloud SQL para PostgreSQL
- Tarefa 2: atualizar as permissões e atribuir papéis do IAM a usuários
- Tarefa 3: criar redes e firewalls
- Tarefa 4: resolver problemas e corrigir um cluster corrompido do GKE
- Parabéns!
GSP314
Introdução
Nos laboratórios com desafio, apresentamos uma situação e um conjunto de tarefas. Para concluí-las, em vez de seguir instruções passo a passo, você usará o que aprendeu nos laboratórios da Quest. Um sistema automático de pontuação (mostrado nesta página) avaliará seu desempenho.
Nos laboratórios com desafio, não ensinamos novos conceitos do Google Cloud. O objetivo dessas tarefas é aprimorar aquilo que você já aprendeu, como a alteração de valores padrão ou a leitura e pesquisa de mensagens para corrigir seus próprios erros.
Para alcançar a pontuação de 100%, você precisa concluir todas as tarefas no tempo definido.
Este laboratório é recomendado para estudantes que se inscreveram no curso com o selo de habilidade Deploy and Manage Cloud Environments with Google Cloud. Tudo pronto para começar o desafio?
Configuração
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).
- Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Cenário do desafio
Você trabalha na área de engenharia de nuvem na Cymbal Direct, uma varejista on-line de calçados e roupas que faz vendas diretas ao consumidor e está crescendo rapidamente. Como parte de sua estratégia de escalonamento, a Cymbal Direct adquiriu a Antern, uma loja de e-commerce que tem um grande volume de dados. Integrar esses dados da maneira certa ao ambiente em nuvem da Cymbal Direct será muito vantajoso para expandir ainda mais os negócios e alcançar mais clientes. Para a Cymbal Direct, um dos objetivos dessa aquisição é migrar as cargas de trabalho e a infraestrutura no local da Antern para o Google Cloud.
Os recursos da Antern que precisam ser migrados, copiados ou recriados no ambiente em nuvem da Cymbal Direct são estes:
- Um banco de dados PostgreSQL (executado em uma máquina virtual) a ser migrado para o Cloud SQL para PostgreSQL.
- Código do aplicativo como microsserviços conteinerizados a serem implantados no GKE. Durante a fase de testes, foram encontrados problemas de confiabilidade que precisam ser solucionados.
- Uma rede VPC com duas sub-redes. É preciso criar os firewalls para conectar os novos recursos.
- Usuários com IAM espalhados por vários projetos que precisam receber as permissões e os papéis adequados para acessar recursos específicos.
Sua tarefa é ajudar a Cymbal Direct a alcançar esses objetivos.
Tarefa 1: migrar um banco de dados independente PostgreSQL para uma instância do Cloud SQL para PostgreSQL
A Antern usa um banco de dados PostgreSQL em execução em uma VM no local para armazenar os pedidos feitos na loja de e-commerce. Como parte da estratégia de aquisição, a Cymbal quer migrar esse banco de dados para o Cloud SQL para PostgreSQL usando o Database Migration Service. Ao executar esse banco de dados no Cloud SQL, além de ter todos os benefícios operacionais do PostgreSQL, a Cymbal também ganha em disponibilidade, estabilidade e segurança em nível empresarial.
Nesta tarefa, você precisa migrar o banco de dados independente PostgreSQL chamado orders
, em execução na máquina virtual antern-postgresql-vm
, para uma instância do Cloud SQL para PostgreSQL usando um job contínuo de migração do Database Migration Service e conectividade de peering de VPC.
Prepare o banco de dados independente PostgreSQL para a migração
Nesta subtarefa, você precisa preparar o banco de dados PostgreSQL independente de acordo com os requisitos de migração do Database Migration Service.
Para concluir a subtarefa, execute estas etapas:
- Ative as APIs do Google Cloud exigidas para o Database Migration Service.
Para funcionar, o Database Migration Service requer a ativação da API Database Migration e da API Service Networking. Você precisa ativar essas APIs no seu projeto.
- Faça upgrade dos bancos de dados a serem migrados na máquina virtual
antern-postgresql-vm
com a extensãopglogical
.
Você precisa instalar e configurar a extensão pglogical no banco de dados independente PostgreSQL na VM de instância de computação chamada antern-postgresql-vm
. O nome do pacote de extensão de banco de dados pglogical a ser instalado é postgresql-13-pglogical
.
Para concluir a configuração da extensão pglogical, edite estes arquivos de configuração do PostgreSQL: /etc/postgresql/13/main/postgresql.conf
(para ativar a extensão pglogical) e /etc/postgresql/13/main/pg_hba.conf
(para permitir o acesso de todos os hosts).
- Crie um usuário exclusivo para a migração no banco de dados independente.
Use o nome de usuário e senha a seguir para configurar esse novo usuário a ser criado na instalação autônoma PostgreSQL na máquina virtual antern-postgresql-vm
:
-
Nome de usuário da migração:
-
Senha do usuário da migração:
DMS_1s_cool!
- Conceda a esse usuário as permissões e os privilégios necessários para fazer a migração dos bancos de dados.
O Database Migration Service requer que o usuário da migração tenha privilégios para relações e esquemas específicos dos bancos de dados a serem migrados, que neste caso são o orders
e o postgres
.
- O Database Migration Service requer que todas as tabelas a serem migradas tenham uma chave primária. Depois de conceder os privilégios necessários ao usuário, execute o comando abaixo para adicionar uma chave primária à tabela
inventory_items
e sair do psql.
Clique em Verificar meu progresso para conferir o objetivo.
Migre o banco de dados independente PostgreSQL para uma instância do Cloud SQL para PostgreSQL
Nesta subtarefa, você precisa realizar a migração usando o Database Migration Service.
Para concluir a subtarefa, execute estas etapas:
- Crie um novo perfil de conexão do Database Migration Service para o banco de dados independente PostgreSQL. Para isso, use as credenciais do usuário da migração
que você criou. -
Nome de usuário:
-
Senha:
DMS_1s_cool!
-
Nome de usuário:
Configure o perfil de conexão usando o endereço IP interno da instância de computação de origem.
- Crie um novo job contínuo do Database Migration Service.
Na configuração do job de migração, especifique as propriedades a seguir para a instância do Cloud SQL de destino:
- Defina o ID da instância de destino como
. - Defina a Senha da instância migrada como
supersecret!
. - Defina a Versão do banco de dados como Cloud SQL for PostgreSQL 13.
- Defina a Região como
. - Em Conexões, defina IP público e IP particular.
- Selecione um tipo de máquina padrão com 1 vCPU.
- Em Tipo de armazenamento, escolha SSD.
- Defina a capacidade de armazenamento como 10 GB.
Em Método de conectividade, use Peering de VPC com a rede VPC padrão.
- Teste e inicie o job contínuo de migração.
Clique em Verificar meu progresso para conferir o objetivo.
Promova a instância do Cloud SQL a instância autônoma para leitura e gravação de dados
- Nesta tarefa, você precisa concluir a migração promovendo a instância do Cloud SQL para PostgreSQL a instância autônoma.
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 2: atualizar as permissões e atribuir papéis do IAM a usuários
Agora que você já migrou o banco de dados para uma instância do Cloud SQL para PostgreSQL, é preciso atualizar os papéis de usuários no IAM para as pessoas das equipes da Antern e da Cymbal. Em termos mais específicos, conceda ao usuário Antern Editor o acesso ao banco de dados Cloud SQL, dê a Cymbal Owner o acesso de administrador para que tenha controle total sobre os recursos do Cloud SQL e ative para Cymbal Editor a permissão para edição no projeto.
-
Conceda ao usuário Antern Editor o papel de Usuário da instância do Cloud SQL no banco de dados CloudSQL. O nome de usuário é:
. - Acesse o banco de dados Cloud SQL que você acabou de criar. Na seção Usuários, adicione a conta de usuário Antern Editor ao banco de dados que você criou. Use a autenticação do Cloud IAM e defina o nome de usuário acima como principal.
-
Conceda ao usuário Cymbal Owner o papel de Administrador do Cloud SQL no banco de dados CloudSQL. O nome de usuário é:
. - Acesse o banco de dados Cloud SQL que você acabou de criar. Na seção Usuários, adicione a conta de usuário Cymbal Owner ao banco de dados que você criou. Use a autenticação do Cloud IAM e defina o nome de usuário acima como principal.
-
Mude o papel do usuário Cymbal Editor de Leitor para Editor. O nome de usuário é:
.
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 3: criar redes e firewalls
Como parte da estratégia de aquisição, é necessário recriar no projeto da Cymbal uma rede VPC para conectar os recursos internamente. Em termos específicos, você precisa criar uma rede VPC com duas sub-redes e firewalls para permitir a conexão entre os recursos. Outro requisito para essa rede é que sua equipe precisa conseguir se conectar a máquinas Linux e Windows usando SSH e RDP, além da capacidade de diagnosticar problemas de comunicação por ICMP.
Nesta tarefa, você vai criar uma rede VPC e regras de firewall para atender a esses requisitos.
Crie uma rede VPC com duas sub-redes
-
Crie uma rede VPC com o nome
e duas sub-redes: e . Use o modo de roteamento dinâmico Regional. -
Para
, defina a região como . - Defina o Tipo de pilha de IP como IPv4 (pilha única).
- Defina o intervalo de IPv4 como
10.10.10.0/24
.
-
Para
, defina a região como . - Defina o Tipo de pilha de IP como IPv4 (pilha única).
- Defina o intervalo de IPv4 como
10.10.20.0/24
.
Crie as regras de firewall para a rede VPC
-
Crie uma regra de firewall chamada
. - Para a rede, use
. - Defina a prioridade como 65535, o tráfego como Entrada e a ação como Permitir.
- Defina que a regra é aplicável a todas as instâncias na rede e que os intervalos de endereços IP incluem todos os intervalos IPv4.
- Defina o protocolo como TCP e a porta como
22
.
- Para a rede, use
-
Crie uma regra de firewall chamada
. - Para a rede, use
. - Defina a prioridade como 65535, o tráfego como Entrada e a ação como Permitir.
- Defina que a regra é aplicável a todas as instâncias na rede e que os intervalos de endereços IP incluem todos os intervalos IPv4.
- Defina o protocolo como TCP e a porta como
3389
.
- Para a rede, use
-
Crie uma regra de firewall chamada
. - Para a rede, use
. - Defina a prioridade como 65535, o tráfego como Entrada e a ação como Permitir.
- Defina que a regra é aplicável a todas as instâncias na rede e que os intervalos de endereços IP incluem todos os intervalos IPv4.
- Defina o protocolo como ICMP.
- Para a rede, use
Clique em Verificar meu progresso para conferir o objetivo.
Tarefa 4: resolver problemas e corrigir um cluster corrompido do GKE
Após a implantação do cluster do GKE para o site de e-commerce, sua equipe informou que foram identificados alguns problemas conhecidos que precisam ser resolvidos. São três bugs a serem corrigidos:
- Bug 1: a latência do serviço de front-end está muito grande.
- Bug 2: as classificações estão desatualizadas.
- Bug 3: está ocorrendo uma falha no serviço de recomendações.
Como parte da estratégia de aquisição, você recebeu a tarefa de corrigir o
Dicas:
- Bug 1: acesse o IP externo do aplicativo de demonstração para constatar se ocorreram mudanças notáveis. É possivel usar os painéis de monitoramento para conferir as métricas associadas a cada serviço.
-
Bug 2: as classificações dos produtos são gerenciadas pelo "serviço de classificação" hospedado no Google AppEngine. Para que esses dados estejam sempre atualizados, periodicamente são feitas chamadas a um endpoint de API que coleta todas as pontuações das novas classificações mais recentes de cada produto e calcula um novo valor de classificação. Verifique se o serviço de classificação está funcionando normalmente. Para fazer isso, inspecione os logs do serviço no AppEngine. Outra pessoa da equipe mencionou que o problema pode estar no arquivo
main.py
. - Bug 3: navegue pelo site até encontrar um problema. Use o Cloud Logging para analisar os logs exportados por cada serviço. Outra pessoa da equipe mencionou que essa falha pode ter sido causada pela fase de conversão de números inteiros no serviço.
Crie um coletor de registros do BigQuery
Antes de corrigir o problema, você recebeu a tarefa de criar um coletor de registros para enviar os erros associados ao serviço corrompido. Depois, você precisa usar o IAM para conceder aos usuários da Antern níveis de acesso distintos no BigQuery para que possam analisar e interagir com o conjunto de dados.
-
Use a Análise de registros para investigar o app em execução no GKE e descobrir se o serviço apresenta erros. Dica: procure logs com gravidade do tipo
ERRO
. -
Depois de identificar os logs de erro do serviço, crie um coletor para enviar esses registros para o BigQuery.
- Nomeie o coletor como
. - Como destino, crie um conjunto de dados do BigQuery chamado
gke_app_errors_sink
e localizado em us (várias regiões nos Estados Unidos). - No filtro de inclusão, acrescente:
resource.type
,e severity
.
- Nomeie o coletor como
-
Conceda ao usuário Antern Editor o papel de Leitor de dados do BigQuery no projeto. O nome de usuário é:
. -
Conceda ao usuário Antern Owner o papel de Administrador do BigQuery no projeto. O nome de usuário é:
.
Clique em Verificar meu progresso para conferir o objetivo.
Corrija o cluster do GKE
Depois que você criou um coletor de registros no BigQuery para enviar os erros do serviço, alguns engenheiros da sua equipe analisaram os logs e determinaram o que fazer para corrigir o problema. Nesta tarefa, você vai fazer o download do código da solução e executá-lo para corrigir o serviço no cluster do GKE.
- Você precisa se conectar ao cluster cloud-ops-sandbox do GKE e executar os comandos a seguir para corrigir o problema. Responda às perguntas de verificação quando elas surgirem.
- Verifique se o site de e-commerce está funcionando corretamente.
Parabéns!
Conquiste seu próximo selo de habilidade
Este laboratório autoguiado faz parte do curso com selo de habilidade Deploy and Manage Cloud Environments with Google Cloud. Ao concluir o curso, você ganha o selo acima como reconhecimento pela sua conquista. Ele pode ser adicionado ao seu currículo e compartilhado nas plataformas sociais. Use #GoogleCloudBadge para anunciar sua conquista.
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 5 de fevereiro de 2024
Laboratório testado em 20 de setembro 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.