Google Run

O Google Run oferece um abordagem de container serverless para implantação de microsserviços sem a necessidade de utilizar o Kubernetes permitindo acelerar a publicação dos microsserviços baseados na plataforma Devprime.

Introdução

A plataforma Devprime acelera a produtividade do desenvolvedor de software, oferecendo um projeto completo de arquitetura de software, componentes com comportamentos inteligentes, aceleradores para implementação de código e atualizações com novos recursos.

Neste artigo, abordaremos o uso do Google Run, uma plataforma para containers serverless baseada no stack do Google Cloud. A implementação desse cenário utilizará um microsserviço baseado na plataforma Devprime. Este microsserviço será vinculado a uma conta ativa no Google Cloud, com um projeto contendo um Stream criado no Google Pub/Sub, um banco de dados no Google Cloud SQL (compatível com MySQL, PostgreSQL e SQL Server), um repositório no Google Artifact Registry e um novo serviço no Google Run.

Durante este artigo, utilizaremos um microsserviço com uma regra de negócio relacionada a pedidos, e o banco de dados PostgreSQL estará integrado a uma fila criada no Google Pub/Sub. Demonstraremos os passos para criar o microsserviço e, em seguida, abordaremos as configurações necessárias para disponibilizá-lo no Google Run.

Google Run

Cheklist e preperação do ambiente inicial:

  • Abra uma conta na plataforma Devprime e adquira uma licença (Developer/Enterprise).
  • Instale uma versão atualizada do .NET (Linux, macOS e Windows)
  • Instale e/ou atualize o Visual Studio Code e/ou o Visual Studio 2023 Community / Professional / Enterprise.
  • Instale e/ou atualize o Docker (Para Windows, utilize o WSL2).
  • Instale o Powershell ou utilize o Bash no Linux
  • Instale e ative a versão mais nova do Devprime CLI.
  • Crie uma pasta para os seus projetos e defina as permissões de leitura e gravação.
  • Consulte o artigo “Criando o primeiro microsserviço” para explorar os primeiros passos na plataforma Devprime.

Checklist Google Cloud

Criando um novo microsserviço

  • Criando o primeiro microsserviço
    dp new ms-order --stream googlepubsub --state postgresql
  • Adicionando uma regra de negócio de exemplo
    dp marketplace order
  • Inicializando e acelerando implementações do microsserviço
    dp init

Neste momento, o microsserviço destinado a este exemplo já está pronto para utilização em produção, sendo possível sua execução local. O próximo passo consistirá na adição das credenciais do Google Cloud ao microsserviço.

Adicionando credenciais no microsserviço
Esse microsserviço utilizará utilizando as credenciais para acesso ao Google PubSub e Google Cloud SQL e devem ser informadas no arquivo de configuração src/App/appsettings.json conforme padrão definido no Adapter de Stream com o Google PubSub e no Adapter de State com o PostgreSQL.

Abra no Visual Studio Code
code src/App/appsettings.json

  • Localize as configurações do Adapter ed Stream e inclua as credenciais obtidas
    no json
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
"DevPrime_Stream": [
    {
      "Alias": "Stream1",
      "Enable": "true",
      "Default": "true",
      "StreamType": "GooglePubSub",
      "Project_ID": "",
      "Private_Key_ID": "",
      "Private_Key": "",
      "Client_Email": "",
      "Client_ID": "",
      "Auth_URI": "",
      "Token_URI": "",
      "Auth_Provider_x509_Cert_Url": "",
      "Client_X509_Cert_Url": "",
      "Retry": "3",
      "Fallback": "State1",
      "Threads": "10",
      "Subscribe": []
    }
  ],
  • Localize a chave Adapter de State e coloque as credenciais de acesso ao Google Cloud SQL
    como o endereço IP a ser informado no Host, usuário e senha.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
"DevPrime_State": [
    {
      "enable": "true",
      "alias": "State1",
      "dbtype": "postgresql",
      "type" : "db",
      "connection": "Host=localhost;Username=postgres;Password=LltF8Nx*yo;Database=ms-order",
      "timeout": "5",
      "retry": "2",
      "durationofbreak": "45"
    }
  ],

Aplicando estrutura do banco de dados
O banco de dados nesse cenário é o PostgreSQL e antes de executar o microsserviço é fundamental executar um script para criação das tabelas no banco de dados necessárias ao microsserviço. Você pode utilizar a ferramenta do Devprime CLI para gerar os arquivos SQL e aplicar manualmente ou aplicar diretamente no banco de dados.

Execute o comando para aplicar no banco de dados.
dp state apply state1

Exportando configurações para publicação no Google Run
O Devprime CLI oferece um utilitário para facilitar a criação de um script com o objetivo de realizar a publicação da imagem Docker do microsserviço no repositório privado do Google Artifact Registry e, em seguida, a criação de um novo serviço no Google Run.

Execute o comando export
dp export googlerun

Após o export, serão criados dois arquivos (Powershell ou Bash) que contêm o script para executar a publicação no Google Cloud.

Escolha o arquivo de preferência e edite-o usando o Visual Studio Code, alterando as configurações iniciais, como nome do projeto no Google Cloud, nome da aplicação e repositório.

Abra pelo Visual Studio Code

  • code .devprime/google/googlerun.ps1
  • code .devprime/google/googlerun.sh

Executando o script
Antes de rodar o script, verifique se o Docker está em execução no seu ambiente, se você está logado nele e se o CLI do Google Cloud está instalado e ativo. O script deve ser executado a partir do diretório raiz do projeto.

Execute um dos comandos:

  • .\.devprime\google\googlerun.ps1 (Windows)
  • .devprime/google/googlerun.sh (MacOS and Linux)

Considerações finais

Neste exemplo, você pode conferir como é fácil desenvolver um novo microsserviço utilizando a plataforma Devprime e seus aceleradores, seguido pelo processo de publicação no Google Cloud em questão de segundos.

  • Substitua esse script por um processo de DevOps, automatizando o procedimento.
  • No ambiente de produção, implemente medidas de segurança, como um API Gateway e um vault para armazenamento seguro de credenciais.
  • Adote os procedimentos isolando a rede para export apenas os serviços públicos.
Última modificação December 24, 2023 (c953206f)