Guia intermediário de Google Cloud Platform
E aí, amigo programador! Se você já dominou os conceitos básicos do Google Cloud Platform (GCP) e está pronto para elevar seu conhecimento a um nível intermediário, você está no lugar certo!
Vamos explorar um dos recursos mais essenciais do GCP, onde as coisas começam a ficar mais interessantes e que você precisa dominar!
Antes de prosseguirmos, já tem o básico de GCP?
Se você ainda não explorou o mundo do Google Cloud Platform, sugiro que você leia o meu artigo "Guia inicial de Google Cloud Platform", disponível aqui mesmo na nossa plataforma. Nele, você encontrará informações sobre como configurar o ambiente, uma visão geral das principais ferramentas e serviços do GCP e uma introdução aos conceitos fundamentais.
Certifique-se de ter adquirido esses conhecimentos básicos antes de prosseguir para este guia intermediário do Google Cloud Platform. Agora, vamos dar um salto para o próximo nível e explorar recursos mais avançados que o GCP tem a oferecer.
Existem vários tópicos de nível intermediário a serem abordados e se possível farei um guia específico de cada um deles, sendo os principais que pretendo abordar: Gerenciamento de instâncias, Armazenamento de dados em larga escala, Segurança e conformidade, Orquestração de contêineres com Kubernetes, Serviços de análise de dados, Arquitetura de microsserviços e Machine Learning no GCP.
Mas, dentre os vários recursos que se destacam no GCP, um dos essenciais a serem dominados são as redes virtuais, foco deste guia intermediário.
Vamos lá!
Redes virtuais específicas: Criação, configuração de redes virtuais personalizadas no GCP, incluindo sub-redes, encaminhamento personalizado e balanceamento de carga.
As redes virtuais são uma parte fundamental da infraestrutura do GCP, permitindo que você crie e gerencie redes isoladas e seguras para seus projetos. No nível intermediário, vamos além dos conceitos básicos e mergulhamos em recursos mais avançados.
Uma das principais vantagens de criar redes virtuais personalizadas é a capacidade de segmentar sua infraestrutura em sub-redes. As sub-redes permitem a divisão de uma rede em segmentos menores, fornecendo controle granular sobre o tráfego e a comunicação entre as instâncias do GCP. Com isso, é possível criar ambientes isolados para diferentes partes do seu projeto, garantindo maior segurança e eficiência.
Além disso, exploraremos o encaminhamento personalizado, que permite configurar rotas personalizadas para direcionar o tráfego entre suas sub-redes. Com essa funcionalidade, você pode otimizar a comunicação entre diferentes componentes do seu projeto, garantindo que o tráfego seja roteado de forma eficiente, de acordo com suas necessidades específicas.
Outro aspecto importante abordado neste guia é o balanceamento de carga. O GCP oferece opções avançadas de balanceamento de carga, permitindo distribuir o tráfego de maneira uniforme entre as instâncias e recursos do seu projeto. Você aprenderá como configurar e ajustar essas opções para garantir a alta disponibilidade e a escalabilidade da sua aplicação.
No final deste guia, você terá um conhecimento sólido sobre redes virtuais avançadas no GCP. Você será capaz de criar e configurar redes virtuais personalizadas, dividir sua infraestrutura em sub-redes, configurar o encaminhamento personalizado e otimizar o balanceamento de carga.
Criação de uma rede virtual:
Você começará importando a classe ‘NetworksClient’ da biblioteca @google-cloud/compute. A notação .v1 indica a versão da API do Compute Engine que será utilizada.
Logo após, será criada a Função createCustomNetwork que será responsável por criar uma rede virtual personalizada no GCP. Ela recebe três parâmetros: projectId (ID do projeto no GCP), networkName (nome da rede virtual) e ipRange (faixa de endereços IP que a rede virtual irá abranger).
A partir disso é criada uma instância do cliente ‘NetworksClient’ e o caminho do projeto é definido utilizando o ID do projeto fornecido.
Abaixo será definido um objeto ‘networkRequest’ que contém as configurações para a criação da rede virtual. O ‘parent’ é o caminho do projeto, o ‘name’ é o nome da rede virtual, ‘autoCreateSubnetworks’ é definido como false (indicando que não serão criadas sub-redes automaticamente), ‘routingMode’ é definido como 'REGIONAL' (indicando que o roteamento será regional), e ‘ipAllocations’ contém as alocações de IP, incluindo a faixa de IP fornecida.
A partir disso deve ser feito o envio da requisição de criação da rede virtual a qual é enviada utilizando o cliente NetworksClient. O resultado da operação é armazenado na variável ‘operation.’
Após a criação da rede virtual, uma mensagem é exibida informando que a rede foi criada com sucesso e no final temos alguns exemplos com o uso da função createCustomNetwork, passando os valores específicos para criar uma rede virtual com o ID de projeto 'my-project', nome 'my-network' e faixa de IP '10.0.0.0/16'. O seu código deve estar algo parecido com esse modelo:
Criação de uma sub-rede dentro de uma rede virtual:
Começamos novamente importando a classe ‘SubnetworksClient’ da biblioteca @google-cloud/compute. A notação .v1 indica a versão da API do Compute Engine que será utilizada.
Com isso, criamos a função ‘createSubnetwork’ que será responsável por criar uma sub-rede dentro de uma rede virtual no GCP. Ela recebe cinco parâmetros: ‘projectId’ (ID do projeto no GCP), ‘region’ (região onde a sub-rede será criada), ‘networkName’ (nome da rede virtual), ‘subnetworkName’ (nome da sub-rede) e ‘ipRange’ (faixa de endereços IP que a sub-rede irá abranger).
Feito isso, partimos para a criação do cliente e definição do caminho do projeto e da rede virtual, no qual é criada uma instância do cliente SubnetworksClient, e são definidos o caminho do projeto, utilizando o ID do projeto fornecido, e o caminho da rede virtual utilizando o caminho do projeto e o nome da rede virtual.
O próximo passo é a configuração da requisição de criação da sub-rede através da definição de um objeto ‘subnetworkRequest’ que contém as configurações para a criação da sub-rede. O ‘parent’ é o caminho do projeto, ‘region’ é a região onde a sub-rede será criada, ‘name’ é o nome da sub-rede, ‘ipCidrRange’ é a faixa de endereços IP que a sub-rede irá abranger, e ‘network’ é o caminho da rede virtual.
Por fim, a requisição para criar a sub-rede é enviada utilizando o cliente SubnetworksClient. O resultado da operação é armazenado na variável operation e após a criação da sub-rede, uma mensagem é exibida informando que a sub-rede foi criada com sucesso com alguns exemplos de uso. O seu código deve estar parecido com esse modelo:
Configuração de balanceamento de carga:
Novamente, estamos importando a classe ‘BackendServicesClient’ da biblioteca @google-cloud/compute. A notação .v1 indica a versão da API do Compute Engine que será utilizada.
A partir disso criaremos a função ‘createLoadBalancer’ que será responsável por configurar um balanceador de carga no GCP. Ela recebe quatro parâmetros: ‘projectId’ (ID do projeto no GCP), ‘backendServiceName’ (nome do serviço de back-end), ‘instanceGroupName’ (nome do grupo de instâncias) e ‘healthCheckName’ (nome do teste de integridade).
O próximo passo também será a criação do cliente e definição dos caminhos do projeto, grupo de instâncias e teste de integridade, onde é criada uma instância do cliente BackendServicesClient, e são definidos os caminhos do projeto, grupo de instâncias e teste de integridade, utilizando os IDs e nomes fornecidos.
Com isso, podemos definir um objeto ‘backendServiceRequest’ que contém as configurações para a criação do balanceador de carga. O ‘parent’ é o caminho do projeto, ‘name’ é o nome do serviço de back-end, ‘backends’ contém a configuração do grupo de instâncias e ‘healthChecks’ contém a configuração do teste de integridade.
Por fim, a requisição para criar o balanceador de carga é enviada utilizando o cliente BackendServicesClient. O resultado da operação é armazenado na variável operation e após a criação do balanceador de carga, uma mensagem é exibida, informando que o balanceador de carga foi criado com sucesso, com alguns exemplos de uso. O seu código deve estar parecido com esse modelo:
Configurando regras de firewall:
A configuração das regras de firewall segue o mesmo início das etapas passadas, com algumas peculiaridades, sendo elas:
A linha const { Firewall } = require('@google-cloud/compute').v1; importa a classe Firewall da biblioteca @google-cloud/compute, versão v1.
A função createFirewallRule é uma função assíncrona que recebe vários parâmetros, como o ID do projeto, o nome da regra de firewall, o nome da rede, os intervalos de origem, as tags de destino e as portas permitidas.
Em seguida, é criada uma instância do cliente Firewall e o caminho do projeto é definido e o objeto firewallRequest é criado para conter as configurações da regra de firewall. Ele especifica o pai (projeto), o nome da regra de firewall, a rede, os intervalos de origem, as tags de destino e as portas permitidas. A função allowedPorts.map mapeia as portas permitidas em um formato específico para serem usadas na solicitação.
A requisição para inserir a regra de firewall é enviada usando o cliente Firewall, e o resultado é armazenado na variável operation. A função operation.promise() aguarda a conclusão da operação. Por fim, uma mensagem é exibida, informando que a regra de firewall foi criada com sucesso.
O exemplo de uso demonstra como chamar a função createFirewallRule com valores específicos para criar uma regra de firewall com o ID do projeto 'my-project', nome da regra de firewall 'my-firewall-rule', nome da rede 'my-network', intervalos de origem ['0.0.0.0/0'], tags de destino ['web-server'] e portas permitidas [80, 443].
Lembre-se que esses exemplos de código são apenas ilustrativos e podem variar de acordo com as bibliotecas específicas do GCP que você está utilizando. Certifique-se de consultar a documentação oficial do GCP e a documentação da biblioteca do cliente para obter exemplos de código atualizados e adequados à sua necessidade.
Com isso, concluo este guia! Fique atento ao próximo guia, há muito mais para aprender. É fundamental estudar e praticar regularmente para se tornar um desenvolvedor habilidoso no Google Cloud Platform (GCP).
Agora que você tem uma visão geral de um certo tópico intermediário, podemos avançar para o nível avançado no próximo artigo. O que você acha? Ou prefere mais artigos de nível intermediário?
E você desenvolvedor, já criou algo usando o Google Cloud Platform? Já teve algum contato prévio com os assuntos deste guia? Compartilhe suas experiências nos comentários abaixo. Aqui na Revelo Community, você encontrará mais conteúdos escritos por mim, relacionados a programação.
- Gabriel Reis Duarte.
A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.