Como integrar serviços do Google Cloud ao Cloud Foundry na SAP Business Technology Platform (SAP BTP)

Nestas instruções, mostramos como integrar os serviços do Google Cloud a um ambiente do Cloud Foundry na SAP Business Technology Platform (SAP BTP) usando o Open Service Broker do Google Cloud (agente de serviços do Google Cloud).

O agente de serviços do Google Cloud simplifica a entrega de serviços do Google Cloud em aplicativos executados em um ambiente do Cloud Foundry na SAP Cloud Platform. Ao criar recursos do Google Cloud e gerenciar suas permissões correspondentes, o agente de serviços do Google Cloud facilita o consumo dos serviços do Google Cloud em um ambiente de aplicativos do SAP BTP.

No diagrama a seguir, há uma visualização de alto nível das etapas de configuração com alguns exemplos de serviços do Google Cloud.

Como acessar os serviços do Google Cloud pelo Cloud Foundry no SAP BTP

Componentes principais da solução

Os seguintes componentes são necessários para a configuração do agente de serviços do Google Cloud no SAP BTP para Cloud Foundry.

Serviço Caso de uso
Abrir o agente de serviços do Google Cloud Integração dos serviços do Google Cloud em um ambiente do Cloud Foundry no SAP BTP
Cloud SQL para MySQL Um banco de dados para armazenamento de back-end para o agente de serviços do Google Cloud
Conta do SAP BTP Fornecer o ambiente do Cloud Foundry no SAP BTP na região selecionada do Google Cloud
Projeto do Google Cloud Fornecer os serviços do Google Cloud
CLI do Cloud Foundry (em inglês) Interface de linha de comando para configurar o Cloud Foundry

Custos

O Cloud SQL, recomendado para uso com o agente de serviços do Google Cloud, é um componente faturável do Google Cloud.

O uso dos serviços do Google Cloud por meio das respectivas APIs também pode ser faturável.

Use a Calculadora de preços para gerar uma estimativa de custo com base no uso previsto.

Pré-requisitos

Antes de configurar o ambiente do Cloud Foundry no SAP BTP, primeiro você precisa configurar seu ambiente de desenvolvimento local e criar um projeto no Google Cloud.

Configurar o ambiente de desenvolvimento

  1. Instale a interface de linha de comando (CLI, na sigla em inglês) do Cloud Foundry na estação de trabalho de desenvolvimento, de acordo com a documentação do SAP Portal (em inglês).

Configurar um projeto do Google Cloud

Se você ainda não tiver um projeto do Google Cloud com faturamento ativado, crie um.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Configurar o ambiente do Google Cloud

Você precisa de determinadas APIs do Google Cloud ativadas, uma conta de serviço do Google Cloud e um banco de dados para o agente de serviços do Google Cloud.

Ativar as APIs do Google Cloud necessárias

Ative as seguintes APIs no Gerenciador de APIs > Biblioteca (em inglês).

  1. Ative a API Cloud Resource Manager.
  2. Ative a API Identity and Access Management (em inglês).
  3. Ative a API Cloud SQL Admin (em inglês).
  4. Ative a API de qualquer outro serviço compatível do Google Cloud de que você precise.

Criar uma conta de serviço raiz

  1. No console do Google Cloud, acesse a página Contas de serviço.

    Acessar a página "Contas de serviço"

  2. Selecione seu projeto do Google Cloud.

  3. Clique em Criar conta de serviço.

  4. Digite um nome no campo Nome da conta de serviço.

  5. Clique em Criar e continuar.

  6. Na lista Selecionar um papel, clique em Projeto > Proprietário, o que fornece as permissões necessárias para o agente de serviços do Google Cloud para trabalhar com os serviços do Google Cloud.

  7. Clique em Continuar.

  8. Conceda aos outros usuários acesso à conta de serviço, conforme adequado.

  9. Clique em Concluído.

  10. Na página Contas de serviço no console do Google Cloud, clique no endereço de e-mail da conta de serviço que você acabou de criar.

  11. No nome da conta de serviço, clique na guia Chaves.

  12. Clique no menu suspenso Adicionar chave e selecione Criar nova chave.

  13. Certifique-se de que o tipo de chave JSON esteja especificado.

  14. Clique em Criar. O arquivo de chave JSON é automaticamente transferido por download para a estação de trabalho.

  15. Mova o arquivo-chave JSON para um local seguro.

Configurar um banco de dados de apoio

O agente de serviços do Google Cloud requer um banco de dados MySQL para armazenar o estado dos recursos provisionados. É recomendada uma instância de segunda geração do Cloud SQL para MySQL, que fornece um banco de dados MySQL Community Edition totalmente gerenciado com backups automáticos, alta disponibilidade e manutenção automática. No entanto, qualquer banco de dados compatível com o protocolo MySQL pode ser usado.

Nas etapas a seguir, você cria um banco de dados usando uma instância do Cloud SQL Segunda geração no Google Cloud. Elas se aplicam a qualquer banco de dados compatível com o protocolo MySQL.

Criar uma instância do Cloud SQL para MySQL

Antes de criar um banco de dados, você precisa criar uma instância do Cloud SQL para MySQL no Google Cloud.

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    ABRIR a página "Instâncias do Cloud SQL"

  2. Clique em Criar instância.

    1. Selecione MySQL e clique em Avançar.
    2. Clique em Escolher segunda geração.
    3. Defina um ID da instância.
    4. Defina uma senha raiz.
    5. No campo Região, selecione a região em que ou ambiente do Cloud Foundry será localizado.
    6. Clique em Criar.

Crie um banco de dados

  1. Após a inicialização da instância do Cloud SQL, abra o Cloud Shell.

    ABRIR o Cloud Shell

  2. Conecte-se à instância do Cloud SQL.

    gcloud sql connect your-cloud-sql-instance --user=root
    

    Em que your-cloud-sql-instance é o nome da instância do Cloud SQL que você criou no Google Cloud.

  3. Crie um banco de dados denominado servicebroker.

    CREATE DATABASE servicebroker;
    
  4. Defina um nome de usuário e uma senha para o agente de serviços do Google Cloud.

    CREATE USER 'SB_DB_UserName'@'%' IDENTIFIED BY 'SB_DB_Password';
    

    Em que:

    • SB_DB_UserName é o nome de usuário que representa o agente de serviços do Google Cloud como um usuário do banco de dados.
    • SB_DB_Password é a senha que identifica o agente de serviços do Google Cloud no banco de dados.
  5. Defina privilégios de acesso para o agente de serviços do Google Cloud.

    GRANT ALL PRIVILEGES ON servicebroker.* TO 'SB_DB_UserName'@'%' WITH GRANT OPTION;
    
  6. Configure o SSL e receba os certificados SSL.

    1. No console do Google Cloud, abra a página Instâncias do Cloud SQL.

      ABRIR a página "Instâncias do Cloud SQL"

    2. Clique no nome da instância do Cloud SQL.

    3. Na página Detalhes da instância, clique na guia Conexões.

    4. Na seção SSL, em Conexões SSL, clique em Permitir apenas conexões SSL. A atualização pode demorar alguns segundos.

    5. Na seção SSL, em Configurar certificados de cliente SSL, clique em Criar um certificado de cliente.

    6. Digite um nome e clique em Criar.

    7. Faça o download dos três arquivos de certificado e salve-os em um local seguro.

  7. Na seção Conectividade da guia Conexões, na página de Detalhes da instância:

    1. Confirme se a caixa IP público está selecionada.
    2. Em Redes autorizadas, clique em Adicionar rede.
    3. No campo Rede, insira 0.0.0.0/0.
    4. Clique em Concluído.
  8. Clique em Salvar para salvar as alterações de autorização.

Receber uma conta de teste do SAP BTP para o Cloud Foundry na infraestrutura do Google Cloud

  1. Inscreva-se em uma conta de teste do SAP BTP. É preciso ter uma conta SAP ativa para receber uma conta de teste do SAP BTP.
  2. Faça login no cockpit do SAP BTP.
  3. No cockpit do SAP BTP, escolha Home na parte superior da tela.
  4. No painel de navegação no lado esquerdo da tela, clique em Regions.
  5. Em Cloud Foundry Environment, selecione uma região que use a infraestrutura do Google Cloud, como US-Central (IA). Isso cria uma organização e um espaço dentro do ambiente do Cloud Foundry no SAP BTP.

Instalar e configurar o agente de serviços do Google Cloud para Cloud Foundry

Implantar o agente de serviços do Google Cloud para Cloud Foundry

Em um terminal na estação de trabalho de desenvolvimento:

  1. Instale a versão mais recente do agente de serviços do Google Cloud para Cloud Foundry do GitHub.

    curl -s https://api.github.com/repos/GoogleCloudPlatform/gcp-service-broker/releases/latest \
    |grep 'tag_name' \
    |cut -d\" -f4 \
    |xargs -I {} curl -sOL "https://github.com/GoogleCloudPlatform/gcp-service-broker/archive/"{}'.tar.gz'
    
  2. Extraia os arquivos do agente de serviços do Google Cloud.

    tar zxvf *.tar.gz
    
  3. Alterne os diretórios.

    cd gcp-service-broker*
    
  4. Faça login no ambiente do Cloud Foundry no SAP BTP.

    cf login
    
  5. Insira o endpoint da API.

    https://api.techkey.hana.ondemand.com
    

    Em que techkey é uma chave técnica definida pelo SAP que identifica a região do endpoint da API. Por exemplo, a chave técnica da região central dos EUA que inclui a infraestrutura do Google Cloud é cf.us30. Para receber uma lista de todas as regiões do ambiente do Cloud Foundry no SAP BTP, consulte Portal de ajuda do SAP (em inglês).

  6. Digite o nome de usuário e a senha da sua conta do SAP BTP.

  7. Implante o aplicativo do agente de serviços do Google Cloud no ambiente do Cloud Foundry.

    cf push APP_NAME --no-start
    

    Em que APP_NAME é um nome exclusivo escolhido para o aplicativo do agente de serviços do Google Cloud. Por exemplo, gcp-service-broker-001 ou mycompany-gcp-svc-broker-app.

    Após o Cloud Foundry implantar o aplicativo do agente de serviços do Google Cloud, será possível ver informações semelhantes ao exemplo a seguir:

    name:              gcp-service-broker-example-app
    requested state:   stopped
    routes:            gcp-service-broker-example-app.cfapps.us30.hana.ondemand.com
    last uploaded:
    stack:
    buildpacks:
    type:           web
    instances:      0/1
    memory usage:   1024M
         state   since                  cpu    memory   disk     details
    #0   down    2018-12-19T23:49:13Z   0.0%   0 of 0   0 of 0
    

Configurar o aplicativo do agente de serviços do Google Cloud para Cloud Foundry

  1. Faça login no cockpit do SAP BTP.
  2. No cockpit do SAP BTP, acesseTrial Home >Regions >Your Google Cloud region >Your global account >Your subaccount >Spaces >Your space.
  3. Clique no nome do aplicativo do agente de serviços do Google Cloud que foi implantado na seção anterior.
  4. No menu à esquerda, clique em User-provided variables.
  5. Use o botão Adicionar variável para definir as seguintes variáveis do agente de serviços do Google Cloud como pares de chave-valor:

    Chave Valor
    CA_CERT
    O conteúdo do arquivo de certificado do servidor, server-ca.pem, que você recebeu por download quando configurou o SSL em Configurar um banco de dados de apoio.
    CLIENT_CERT
    O conteúdo do arquivo de certificado do cliente, client-cert.pem, que você recebeu por download quando configurou o SSL em Configurar um banco de dados de apoio.
    CLIENT_KEY
    O conteúdo do arquivo de chave do cliente, client-key.pem, que você recebeu por download quando configurou o SSL em Configurar um banco de dados de apoio.
    DB_HOST
    O endereço IP público da sua instância do Cloud SQL, como mostrado na seção Conectar-se a esta instância da página Detalhes da instância referente à sua instância do Cloud SQL no console do Google Cloud.
    DB_PASSWORD
    A senha definida para o agente de serviços do Google Cloud acessar o banco de dados configurado em Configurar um banco de dados de apoio.
    DB_USERNAME
    O nome de usuário definido para o agente de serviços do Google Cloud quando você criou o banco de dados. Em um banco de dados do Cloud SQL, é possível ver o nome de usuário em Contas de usuários do MySQL na guia Usuários. da página Detalhes da instância da sua instância do Cloud SQL no console do Google Cloud.
    ROOT_SERVICE_ACCOUNT_JSON
    O conteúdo do arquivo-chave JSON transferido por backup ao criar a conta do serviço raiz.
    SECURITY_USER_NAME
    Um nome de usuário definido para ser usado pelo agente de serviços ao autenticar as solicitações de agente. Você especifica esse mesmo nome de usuário posteriormente no comando cf create-service-broker, ao criar o serviço do agente.
    SECURITY_USER_PASSWORD
    Uma senha definida para ser usada pelo agente de serviços ao autenticar as solicitações do agente. Você especifica essa mesma senha posteriormente no comando cf create-service-broker, ao criar o serviço do agente.
    Variáveis de ambiente opcionais Para receber uma lista de variáveis opcionais que podem ser usadas para personalizar o agente de serviços do Google Cloud, consulte Personalização da instalação.

Iniciar o aplicativo do agente de serviços do Google Cloud para Cloud Foundry

  1. Clique em Visão geral no menu à esquerda.
  2. Para iniciar o aplicativo do agente, clique em Iniciar. Quando o aplicativo estiver ativo e em execução, os indicadores verdes Iniciado e Executando aparecerão na página Visão geral, conforme mostrado nas imagens a seguir.

    Um indicador verde "Iniciado" mostra que o agente de serviços do Google Cloud foi iniciado

    Um indicador verde "EM EXECUÇÃO" mostra que o agente de serviços do Google Cloud está em execução

  3. Se o aplicativo do agente de serviços do Google Cloud não iniciar ou mostrar Erro ou Falhou, verifique os registros do aplicativo na estação de trabalho de desenvolvimento e ajuste as variáveis ou configurações de acordo.

    cf logs APP_NAME --recent
    

Registrar o agente de serviços do Google Cloud para Cloud Foundry

Na estação de trabalho de desenvolvimento:

  1. Conecte-se ao ambiente do Cloud Foundry no SAP BTP.

    cf login
    
  2. Liste os aplicativos implantados.

    cf apps
    

    Você verá uma saída semelhante a esta:

    name              requested state   instances   memory   disk   urls
    broker-test-app   started           1/1         1G       1G     broker-test-app.cfapps.us30.hana.ondemand.com
    
  3. Registre o serviço do agente.

    cf create-service-broker BROKER_SERVICE_NAME SECURITY_USER_NAME
    SECURITY_USER_PASSWORD https://BROKER_APPLICATION_ROUTE --space-scoped
    

    Em que:

  4. Verifique o registro do serviço do agente.

    cf service-brokers
    

    O resultado será semelhante a:

    name                  url
    broker-service-name   https://broker-service-name.cfapps.us30.hana.ondemand.com
    
  5. Verifique se os serviços do Google Cloud estão disponíveis no marketplace de serviços do SAP BTP.

    cf marketplace
    

    No exemplo a seguir, que foi editado para facilitar a leitura e se ajustar à página, veja dois serviços de uma listagem de serviços do Google Cloud no mercado.

    service          plans                      description
    ...
    google-bigquery  default                    A fast, economical and fully managed data warehouse for large-scale data analytics.
    google-bigtable  three-node-production-hdd  A high performance NoSQL database service for large analytical and operational workloads.
    

    Para uma lista dos serviços disponíveis do Google Cloud, consulte Agente de serviços aberto para Google Cloud.

A seguir

Como criar instâncias de serviço do Google Cloud e vinculá-las aos aplicativos do SAP BTP.

Para mais informações sobre como criar e vincular serviços do Google Cloud, consulte: