O caso

Tudo na mesma gaveta. Teste, loja e contador no mesmo lugar.

O Isaac decidiu levar a loja para o Google Cloud. Em uma semana, criou a loja de verdade, um ambiente de testes e uma pasta de relatórios para o contador, tudo misturado.

O contador via os servidores da loja. O custo do teste e o da produção chegavam numa linha só. E ninguém sabia, ao olhar um recurso, a quem ele pertencia.

Este post parte de Fundamentos da Nuvem, de Regiões e Zonas e de Responsabilidade Compartilhada. Daqui em diante, os posts da trilha usam os produtos do Google Cloud.

O problema

Sem organização, tudo se mistura

Criar recursos é fácil. Difícil é responder, meses depois, três perguntas:

  • Quem pode mexer em quê? As permissões ficam iguais para todos.
  • Quanto custa cada parte? A fatura vira uma lista única.
  • O que é teste e o que é produção? Um erro em um afeta o outro.

A solução

A hierarquia de recursos

O Google Cloud organiza tudo numa árvore de quatro níveis:

  • Organização (organization): a raiz, que representa a empresa.
  • Pastas (folders): agrupam projetos e outras pastas, por time, ambiente ou área.
  • Projetos (projects): o contêiner de trabalho. Todo recurso pertence a um projeto.
  • Recursos (resources): as VMs, os buckets, os bancos de dados.
OrganizaçãoPastasProjetosRecursosloja-do-isaacProduçãoTesteloja-producaoloja-testeVMBucketVMBucketUma permissão dada em cima vale para tudo que está embaixo.
A hierarquia de recursos do Isaac. Os nomes são exemplos.

O projeto é a peça central. Ele reúne os recursos, as APIs ativadas (cada serviço precisa ser habilitado no projeto antes de ser usado) e a ligação com a cobrança. Todo projeto tem um nome, um ID único no mundo (que não muda) e um número.

As permissões (IAM, como vimos em Responsabilidade Compartilhada) seguem a árvore: uma permissão concedida numa pasta vale para os projetos e recursos dentro dela. É a herança. Sem permissão explícita, o acesso é negado.

Não confunda

Projeto × conta de faturamento

As provas gostam de perguntar quem paga e quem agrupa.

Projeto (project)

“Onde ficam os recursos e as APIs?”

Exemplo
O projeto loja-producao, com a VM e o bucket da loja.
Foco
Agrupa recursos e define o limite de acesso.

Conta de faturamento (billing account)

“Quem paga as despesas?”

Exemplo
Um cartão da empresa, que paga os projetos da loja e o de teste.
Foco
Paga um ou mais projetos. Um projeto sem conta de faturamento ativa não usa serviços pagos.

Por baixo

A infraestrutura global

Sob a hierarquia fica a infraestrutura física, com os conceitos de Regiões e Zonas:

  • Regiões (regions): áreas geográficas, como São Paulo (southamerica-east1). O Google Cloud tem mais de 40 regiões.
  • Zonas (zones): dentro de cada região, em geral três ou mais, como southamerica-east1-a. Um recurso fica numa zona ou numa região, conforme o serviço.
  • Locais de borda (edge locations): centenas de pontos que aproximam o conteúdo do usuário, como vimos em Latência.
  • Rede privada global: o tráfego entre as regiões do Google viaja pela fibra do próprio Google, e não pela internet pública.

Alguns serviços, como o armazenamento e a análise de dados, também têm locais multirregionais: o dado é replicado entre várias regiões de uma mesma área.

Na prática

Três jeitos de usar

Console

A interface web. Boa para explorar, criar recursos e olhar a fatura.

Na loja: o Isaac abre o painel para ver o custo do mês.

Cloud Shell e gcloud

Um terminal no navegador, com a ferramenta de linha de comando gcloud já instalada.

Na loja: criar uma VM com um comando, sem instalar nada.

APIs

Tudo o que o console faz também é possível por API, para automatizar.

Na loja: um script que cria o ambiente de teste.

Como o Isaac organizaria a loja:

O que ele precisaComo resolver
Separar produção e testeUm projeto para cada ambiente, em pastas diferentes
O contador vê só os relatóriosPermissão de leitura só no projeto dele, e não na organização
Saber o custo de cada ambienteUm projeto por ambiente, com a mesma conta de faturamento
Dar acesso a todos os projetos de produçãoConceder a permissão na pasta Produção

Termos-chave

Seis termos para fixar

Toque no cartão para ver a definição.

ArquiteturaFinanceiro

Teste rápido

Três perguntas, estilo prova

01

Uma permissão é concedida a uma pasta. A quem ela se aplica?

02

No Google Cloud, qual é a unidade que reúne os recursos, as APIs ativadas e a ligação com a cobrança?

03

Quantas zonas uma região do Google Cloud costuma ter?


Para o Google Cloud, quase tudo começa pelo projeto: é nele que moram os recursos, as APIs e a cobrança, e é a hierarquia acima dele que decide quem acessa o quê. Com o Isaac organizado em pastas e projetos, o próximo passo da trilha é colocar a loja para rodar: Compute Engine, a computação no Google Cloud.