Como automatizar implantações do SAP no Google Cloud com o Deployment Manager

É possível automatizar a implantação da infraestrutura do Google Cloud usando o Cloud Deployment Manager, um serviço que automatiza a criação e o gerenciamento de recursos do Google Cloud.

Para determinadas soluções e bancos de dados de suporte SAP, como SAP HANA, o Google Cloud oferece modelos de configuração predefinidos do Cloud Deployment Manager, que podem ser usados para implantar a infraestrutura do Google Cloud que atende aos requisitos de suporte e às práticas recomendadas da SAP.

Soluções SAP compatíveis

O Google Cloud inclui configurações do Cloud Deployment Manager para as seguintes soluções SAP:

O que os modelos implantam

Todos os modelos do Deployment Manager que o Google Cloud fornece para implantações do SAP configuram ou implantam os seguintes elementos:

  • Uma ou mais máquinas virtuais (VMs) do Compute Engine
  • Uma imagem do SO que você especificar
  • Um ou mais discos permanentes
  • Opcionalmente, uma conta de serviço do Gerenciamento de identidade e acesso (IAM) especificada para uso pelas VMs
  • As APIs do Google Cloud exigidas pela implantação do SAP
  • Opcional: as tags de rede para cada instância de VM
  • Opcional: um endereço IP público para cada instância de VM
  • A versão mais recente do agente do Google Cloud para SAP

Para o SAP HANA, os modelos do Deployment Manager também implantam estes elementos:

  • Volumes de armazenamento para /hana/shared e /hanabackup
  • Opcionalmente, o próprio sistema SAP HANA
  • Para sistemas de escalonamento horizontal do SAP HANA com failover automático de host, 1 host mestre, até 15 hosts de worker e até 3 hosts de reserva
  • Para sistemas de escalonamento vertical do SAP HANA, um cluster de alta disponibilidade do Linux

Para o SAP NetWeaver, os modelos do Deployment Manager também implantam estes elementos:

  • Volumes de armazenamento para /sapmnt, /usr/sap e um volume de troca

Arquivos do Deployment Manager para cada implantação do SAP

Cada configuração predefinida do Deployment Manager para SAP contém o seguinte conjunto de arquivos:

  • Um arquivo de configuração YAML template.yaml
  • Um arquivo de modelo do Python deployment-type.py, como sap_hana.py, sap_hana_scaleout.py, ou sap_nw.py
  • Um arquivo de esquema Python deployment-type.py.schema, como sap_hana.py.schema, sap_hana_scaleout.py.schema, ou sap_nw.py.schema
  • Pelo menos um script de shell startup.sh ou startup.ps1

Você especifica as propriedades dos recursos do Google Cloud no arquivo de configuração template.yaml.

Como concluir o arquivo de configuração template.yaml

Os arquivos de configuração template.yaml fornecidos para implantações do SAP estão em conformidade com os padrões definidos pelo Deployment Manager.

Os arquivos de configuração fornecidos para o SAP incluem a definição de recurso principal seguida por uma seção de comentários que inclui as propriedades avançadas menos usadas. O exemplo a seguir é um trecho do arquivo template.yaml para SAP HANA:

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  #
  properties:
    instanceName: [VM_NAME]
    instanceType: [MACHINE_TYPE]
    zone: [ZONE]
    subnetwork: [SUBNETWORK]
    linuxImage: family/[IMAGE_FAMILY]
    linuxImageProject: [IMAGE_PROJECT]
    sap_hana_deployment_bucket: [MEDIA_BUCKET]
    sap_hana_sid: [SID]
    sap_hana_instance_number: [INSTANCE_NUMBER]
    sap_hana_sidadm_password: [PASSWORD]
    sap_hana_system_password: [PASSWORD]
    sap_hana_scaleout_nodes: [NUMBER_OF_WORKER_NODES]
    #
    # --- Advanced Options ---
    # The following advanced options are not usually needed. To use an advanced option, remove
    # the comment indicator, #, before the parameter name and specify an appropriate value.
    #
    # networkTag: [TAG]
    #    Adds network tags to your instance. This is useful if you do routing or define
    #    firewall rules by tags. By default, no tags are added to your VM. Multiple tags
    #    can be assigned by separating them with commas
    #
     ...

Para usar as propriedades avançadas, remova o caractere de comentário # e especifique um valor para a propriedade.

Para mais arquivos de configuração de informações, consulte Fundamentos do Deployment Manager.

Controle de versões do modelo

É possível controlar a versão do modelo do Deployment Manager que as implantações da SAP usam ao especificar um carimbo de data/hora na propriedade type no arquivo de configuração YAML.

Por padrão, quando você faz o download de um novo arquivo de configuração template.yaml, a propriedade type especifica latest como a versão, o que significa que suas implantações sempre usam a versão mais recente disponível dos modelos do Deployment Manager.

Nos comentários que seguem a propriedade type o que você vê é uma especificação de propriedade type alternativa que inclui o carimbo de data/hora da versão mais recente disponível no momento do download do arquivo template.yaml. Por exemplo:

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  #
  properties:
  ...

Se você precisar que todas as suas implantações usem a mesma versão do modelo, substitua a especificação da propriedade type que inclui latest pela especificação da propriedade type que inclui o carimbo de data/hora. Exemplo:

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  properties:
  ...

Quando um carimbo de data/hora é especificado, todas as implantações usam a versão do modelo do Deployment Manager que corresponde ao carimbo de data/hora especificado.

Para ver qual versão do modelo o Deployment Manager usou em uma implantação da SAP no Console do Google Cloud, clique no nome da implantação na página Implantações e, em seguida, clique em VISUALIZAR Configuração expandida em Propriedades da implantação. O carimbo de data/hora da versão aparece após startup-script na seção metadata, conforme mostrado no exemplo a seguir:

metadata:
  items:
  - key: startup-script
    value: curl -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/startup.sh
      | bash -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates

Como implantar vários recursos com um arquivo de configuração

É possível implantar vários recursos com um único arquivo de configuração adicionando mais definições dos recursos ao arquivo.

Para implantações do SAP, copie as seções -name, type e properties: do recurso predefinido e cole-as abaixo para criar a nova definição do recurso.

Em cada definição de recurso, especifique valores exclusivos para os seguintes itens:

  • nome
  • instanceName

Como executar implantações

Você inicia uma implantação emitindo o seguinte comando:

gcloud deployment-manager deployments create [DEPLOYMENT-NAME] --config [TEMPLATE-NAME].yaml

Se você quiser visualizar os resultados da implantação antes de implantar de fato os recursos do Google Cloud, anexe a sinalização --preview ao comando.

Quando você inicia uma implantação, o Deployment Manager valida as especificações no arquivo template.yaml referentes às definições contidas no arquivo deployment-type.py.schema. Se a validação for bem-sucedida, o Deployment Manager criará os recursos do Google Cloud usando as definições de recurso nos arquivos template.yaml e deployment-type.py.

Quando o processamento do Deployment Manager é concluído no Cloud Shell, o Deployment Manager exibe COMPLETED para cada um dos recursos criados e passa o controle para o script do shell.

O script de shell faz outras configurações nos recursos implantados e registra o progresso no Cloud Logging. Uma implantação do SAP somente será concluída após o término do processamento dos scripts de shell.

O Deployment Manager também cria uma entrada na página Implantações no console do Google Cloud, em que você encontra mais detalhes sobre a implantação.

Personalização avançada dos modelos

Além de adicionar definições de VM ou outras pequenas alterações ao arquivo de configuração YAML, se você for um usuário avançado, poderá personalizar os modelos do Deployment Manager fornecidos pelo Google Cloud de outras maneiras, mas há riscos.

Se você modificar os modelos, assumirá a responsabilidade por essa modificação, incluindo garantir que eles estejam atualizados e que o Deployment Manager possa processá-los. Você também assume a responsabilidade por garantir que a infraestrutura do Google Cloud e os sistemas SAP implantados pelos modelos modificados atendam aos requisitos de suporte tanto do SAP quanto do Google Cloud.

As modificações nos modelos do Deployment Manager também dificultam o suporte do Google Cloud à implantação. Os especialistas do SAP no Cloud Customer Care estão familiarizados com os modelos não modificados e as configurações que eles implantam, mas não com suas personalizações exclusivas. Se você precisar de suporte do Google Cloud para uma implantação ou configuração que use um modelo personalizado, esteja preparado para explicar suas personalizações e aguardar mais tempo por uma solução do caso de suporte.

Antes de modificar os modelos do Deployment Manager fornecidos pelo Google Cloud para SAP, tenha uma equipe técnica com as habilidades adequadas para dar orientações, avaliar o impacto das alterações no desempenho do sistema e ajudar a resolver problemas que possam surgir no futuro. Se você não tem uma equipe assim, os parceiros de implementação ou os serviços profissionais do Google Cloud contam com especialistas que poderão ajudar.

Para fazer as alterações, você precisa ter os seguintes conhecimentos:

  • Os requisitos de suporte do SAP definidos na documentação e nas Notas SAP aplicáveis aos respectivos produtos.
  • O Deployment Manager e como trabalhar com implantações, configurações e modelos. Consulte a documentação do Deployment Manager.
  • Dependendo do tipo de alteração que você está fazendo, as linguagens Python ou de script de shell.

Tipos de personalização avançada

Veja a seguir algumas modificações consideradas personalizações avançadas:

  • Processamento ou ações personalizados em um script pós-implantação. Esse é o método recomendado para incluir personalizações avançadas nas implantações.
  • Uso de tipos de sistemas operacionais diferentes das versões compatíveis do Red Hat Enterprise Linux para SAP ou do SUSE Linux Enterprise Server para SAP.
  • Modificações nos scripts de back-end fornecidos como parte do modelo:
    • Scripts de shell (bash ou PowerShell)
    • Configuração dinâmica e os arquivos de esquema do Python.
  • Para implantações de alta disponibilidade:
    • Personalização das definições de configuração do Pacemaker. Se você observar que uma função específica está ausente, inclua seu feedback na página de documentação.
    • Alterações no modelo padrão para implantação do escalonamento horizontal do HANA com nós de espera.

Seja qual for o tipo de alteração que você fizer, verifique se as alterações resultam em um sistema SAP dentro do escopo de suporte definido pela documentação do produto SAP e pelas Notas SAP aplicáveis ao seu sistema.

Arquivos de modelo que podem ser personalizados

O Google Cloud recomenda que você limite as personalizações ao arquivo de configuração .yaml, ainda que também seja possível modificar outros arquivos do Deployment Manager, desde que o sistema SAP resultante atenda aos requisitos de suporte da SAP.

Os arquivos que você precisa modificar dependem do tipo de alterações que você precisa fazer.

Para adicionar outras verificações de validação para valores de propriedade específicos ao seu ambiente, inclua as definições de propriedade no arquivo deployment-type.py.schema.

No arquivo deployment-type.py, é possível fazer alterações como estas:

  • Adicionar outros cálculos de valores ao arquivo de configuração, como intervalos de IPs ou tamanhos de disco. A alteração dos tamanhos de disco, principalmente para o SAP HANA, pode resultar em uma configuração que não atende aos requisitos de suporte do SAP.
  • Adicionar mais metadados de instância de VM.
  • Ajustar os nomes dos discos.

Como fazer o download dos arquivos de modelo

Para fazer o download dos arquivos, use os seguintes comandos depois de substituir o texto em itálico vermelho pelos valores do modelo necessário:

wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py.schema
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/startup.sh
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/template.yaml

Por exemplo, se você precisar fazer o download dos arquivos de modelo para uma implantação de escalonamento vertical do SAP HANA, use os seguintes comandos:

wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py.schema
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/startup.sh
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/template.yaml

Como usar os arquivos de modelo modificados

Quando terminar de modificar os arquivos de modelo, faça upload deles para um bucket do Cloud Storage ou um servidor da Web e atualize os URLs no template.yaml e em outros arquivos para o local do arquivo.

Scripts pós-implantação

Use um script pós-implantação para executar outras ações, como acionar a instalação do aplicativo SAP NetWeaver, monitorar agentes etc.

Os scripts pós-implantação são o modo recomendado de personalizar as implantações, porque eles recebem o controle somente depois que a infraestrutura do Google Cloud é configurada de acordo com os requisitos de suporte da SAP.

Para exibir mensagens de status referentes aos scripts pós-implantação, você precisa codificá-los para gravar as mensagens nos registros. Para mais informações, consulte a documentação do Cloud Logging.

O status dos scripts de pós-implantação não está incluído nas mensagens que o Deployment Manager grava no Cloud Shell ou em uma sessão do shell da Google Cloud CLI.

Como receber suporte para os modelos do Gerenciador de implantação no SAP

Se você precisar de ajuda para resolver um problema com os modelos do Gerenciador de implantação para SAP, colete as informações de diagnóstico necessárias e entre em contato com o atendimento ao cliente do Cloud. Para uma lista das informações de diagnóstico necessárias, consulte Modelos do Gerenciador de implantação para informações de diagnóstico do SAP.