Automatiza las implementaciones de SAP en Google Cloud mediante Deployment Manager

Puedes automatizar la implementación de la infraestructura de Google Cloud mediante Cloud Deployment Manager, un servicio que automatiza la creación y la administración de recursos de Google Cloud.

Para las soluciones de SAP seleccionadas y las bases de datos compatibles, como SAP HANA, Google Cloud proporciona plantillas de configuración predefinidas de Cloud Deployment Manager que puedes usar a fin de implementar la infraestructura de Google Cloud que cumple con los requisitos de compatibilidad y las prácticas recomendadas de SAP.

Soluciones de SAP compatibles

Google Cloud proporciona opciones de configuración de Cloud Deployment Manager para las siguientes soluciones de SAP:

Qué implementan las plantillas

Todas las plantillas de Deployment Manager que proporciona Google Cloud para las implementaciones de SAP configuran o implementan los siguientes elementos:

  • Una o más máquinas virtuales (VM) de Compute Engine
  • Una imagen de SO que especifiques
  • Uno o más discos persistentes
  • Una cuenta de servicio de administración de identidades y accesos (IAM) que especificas para que la usen las VM
  • Las API de Google Cloud que requiere la implementación de SAP
  • Etiquetas de red para cada instancia de VM (opcional)
  • Una dirección IP pública para cada instancia de VM (opcional)
  • La última versión del agente de Google Cloud para SAP.

Para SAP HANA, las plantillas de Deployment Manager también implementan lo siguiente:

  • Volúmenes de almacenamiento para /hana/shared y /hanabackup
  • El sistema SAP HANA (opcional)
  • Un host principal, hasta 15 hosts de trabajador y hasta 3 hosts de reserva para sistemas de escalamiento horizontal de SAP HANA con conmutación por error automática de host
  • Un clúster de alta disponibilidad de Linux para los sistemas de escalamiento vertical de SAP HANA

Para SAP NetWeaver, las plantillas de Deployment Manager también implementan lo siguiente:

  • Volúmenes de almacenamiento para /sapmnt/usr/sap, además de un volumen de intercambio

Archivos de Deployment Manager para cada implementación de SAP

Cada configuración predefinida de Deployment Manager para SAP contiene el siguiente conjunto de archivos:

  • Un archivo de configuración YAML, template.yaml
  • Un archivo de plantilla de Python, deployment-type.py, como sap_hana.py, sap_hana_scaleout.py, o sap_nw.py
  • Un archivo de esquema de Python, deployment-type.py.schema, como sap_hana.py.schema, sap_hana_scaleout.py.schema, o sap_nw.py.schema
  • Al menos una secuencia de comandos de shell, ya sea startup.sh o startup.ps1

Debes especificar las propiedades de los recursos de Google Cloud en el archivo de configuración template.yaml.

Completa el archivo de configuración template.yaml

Los archivos de configuración template.yaml que se proporcionan para las implementaciones de SAP cumplen con los estándares definidos por Deployment Manager.

En los archivos de configuración proporcionados para SAP, se incluye la definición de recurso principal seguida de una sección de comentarios que contiene propiedades avanzadas cuyo uso es menos frecuente. El siguiente ejemplo es un extracto del archivo 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
    #
     ...

Si quieres usar las propiedades avanzadas, quita el carácter de comentario (#) y especifica un valor para la propiedad.

Para obtener más información sobre los archivos de configuración, consulta Información básica de Deployment Manager.

Control de versiones de la plantilla

Puedes controlar qué versión de la plantilla de Deployment Manager usan tus implementaciones de SAP si especificas una marca de tiempo de versión en la propiedad type en el archivo de configuración YAML.

De forma predeterminada, cuando descargas una nueva configuración de archivo template.yaml, la propiedad type especifica latest como la versión, lo que significa que tus implementaciones siempre usan la última versión disponible de las plantillas de Deployment Manager.

En los comentarios que siguen a la propiedad type, hay una especificación de propiedad type alternativa que incluye la marca de tiempo de la última versión disponible en el momento en que descargaste el archivo template.yaml. Por ejemplo:

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:
  ...

Si necesitas que todas tus implementaciones usen la misma versión de plantilla, reemplaza la especificación de propiedad type que incluye latest por la especificación de propiedad type que incluye la marca de tiempo. Por ejemplo:

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

Cuando se especifica una marca de tiempo, todas las implementaciones usan la versión de la plantilla de Deployment Manager que corresponde a la marca de tiempo especificada.

Puedes ver qué versión de la plantilla usó Deployment Manager para una implementación de SAP en la consola de Google Cloud haciendo clic en el nombre de la implementación en la página Implementaciones y, luego, en Expanded config VIEW en Propiedades de la implementación. La marca de tiempo de la versión aparece después de startup-script en la sección metadata, como se muestra en el siguiente ejemplo:

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

Implementa varios recursos con un archivo de configuración

Puedes implementar varios recursos con un solo archivo de configuración si agregas más definiciones de recursos al archivo.

En el caso de las implementaciones de SAP, copia las secciones -name, type y properties: del recurso predefinido y pégalas debajo para crear la definición de recurso nueva.

En cada definición de recurso, asegúrate de especificar valores únicos para los siguientes elementos:

  • name
  • instanceName

Ejecuta implementaciones

Para iniciar una implementación, ejecuta el siguiente comando:

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

Si deseas obtener una vista previa de los resultados de la implementación antes de implementar un recurso de Google Cloud, agrega la marca --preview al comando.

Cuando inicias una implementación, Deployment Manager compara las especificaciones del archivo template.yaml con las definiciones que contiene el archivo deployment-type.py.schema a fin de validarlas. Si la validación se realiza de forma correcta, Deployment Manager crea los recursos de Google Cloud mediante las definiciones de recursos de los archivos template.yaml y deployment-type.py.

Cuando se completa el procesamiento de Deployment Manager, Deployment Manager muestra COMPLETED en Cloud Shell para cada uno de los recursos que crea y pasa el control a la secuencia de comandos de shell.

La secuencia de comandos de shell configura aún más los recursos implementados y registra su progreso en Cloud Logging. Una implementación de SAP se completa solo cuando las secuencias de comandos de shell completan su procesamiento.

Deployment Manager también crea una entrada en la página Implementaciones de la consola de Google Cloud, en la que puedes encontrar detalles adicionales sobre la implementación.

Personalización avanzada de las plantillas

Además de agregar definiciones de VM y otros cambios menores en el archivo de configuración YAML, si eres un usuario avanzado, puedes personalizar las plantillas de Deployment Manager que proporciona Google Cloud de otras maneras, pero hacerlo puede ser riesgoso.

Si modificas las plantillas, asumes la responsabilidad de la plantilla modificada, lo que incluye asegurarse de que esté actualizada y que Deployment Manager pueda procesarla. También asumes la responsabilidad de garantizar que la infraestructura de Google Cloud y los sistemas SAP que implementan las plantillas modificadas cumplan con los requisitos de compatibilidad de SAP y Google Cloud, incluidos los requisitos de SAP.

Las modificaciones en las plantillas de Deployment Manager también hacen que sea más difícil que Google Cloud proporcione asistencia para la implementación. Los especialistas de SAP en el servicio de atención al cliente de Cloud están familiarizados con las plantillas sin modificar y con las opciones de configuración que estas implementan, pero no están familiarizados con tus personalizaciones únicas. Si necesitas asistencia de Google Cloud para una implementación o configuración que usa una plantilla personalizada, debes poder explicar las personalizaciones que realizaste y estar dispuesto a esperar más tiempo hasta que se resuelva el caso de ayuda.

Antes de modificar las plantillas de Deployment Manager que proporciona Google Cloud para SAP, asegúrate de tener un equipo técnico calificado que pueda brindar asesoramiento sobre los cambios, evaluar el impacto de estos cambios en el rendimiento del sistema y ayudar a solucionar problemas que pueden surgir más adelante. Si no tienes un equipo con estas características, los socios de implementación o los Servicios profesionales de Google Cloud cuentan con especialistas que pueden ayudarte.

Para realizar cambios, debes tener conocimientos sobre lo siguiente:

  • Los requisitos de compatibilidad de SAP que se definen en la documentación y las notas de SAP que se aplican a los productos de SAP
  • Deployment Manager y cómo trabajar con implementaciones, opciones de configuración y plantillas. Consulta la documentación de Deployment Manager
  • Python o los lenguajes de programación de shell, según el tipo de cambio que desees realizar

Tipos de personalizaciones avanzadas

Dentro de las modificaciones que se consideran personalizaciones avanzadas, se incluyen las siguientes:

  • Procesamiento personalizado o acciones en una secuencia de comandos posterior a la implementación. Este es el método que se recomienda para incluir personalizaciones avanzadas en las implementaciones
  • El uso de tipos de sistemas operativos que no sean las versiones compatibles de Red Hat Enterprise Linux for SAP o SUSE Linux Enterprise Server for SAP
  • Modificaciones en las secuencias de comandos de backend que se proporcionan como parte de la plantilla:
    • Las secuencias de comandos de shell (Bash o powershell)
    • La configuración dinámica de Python y los archivos de esquema
  • Para implementaciones de alta disponibilidad:
    • Personalización de los ajustes de configuración de Pacemaker. Si descubres que falta una función en particular, realiza comentarios en la página de documentación
    • Cambios en la plantilla predeterminada para la implementación del escalamiento horizontal de HANA con nodos de reserva

Sin importar el tipo de cambio que realices, asegúrate de que los cambios generen un sistema SAP que se encuentre dentro del alcance de la asistencia, que se define en la documentación del producto de SAP y las notas de SAP aplicables a tu sistema.

Archivos de plantilla que puedes personalizar

Google Cloud recomienda que limites las personalizaciones que realizas en el archivo de configuración .yaml. Sin embargo, también puedes modificar los otros archivos de Deployment Manager, siempre que el sistema SAP resultante cumpla con los requisitos de compatibilidad de SAP.

Los archivos que necesites modificar dependerán del tipo de cambios que debas realizar.

Si quieres agregar verificaciones de validación adicionales para valores de propiedad que sean específicos de tu entorno, puedes agregar las definiciones de propiedad al archivo deployment-type.py.schema.

En el archivo deployment-type.py, puedes realizar los siguientes cambios:

  • Agregar cálculos adicionales a los valores del archivo de configuración, como rangos de IP o tamaños de disco. Ten en cuenta que cambiar los tamaños de disco, en especial para SAP HANA, puede dar como resultado una configuración que no cumpla con los requisitos de compatibilidad de SAP
  • Agregar metadatos de instancias de VM adicionales
  • Ajustar los nombres de los discos.

Descarga los archivos de plantilla

Para descargar los archivos, puedes usar los siguientes comandos después de reemplazar el texto en cursiva rojo por los valores de la plantilla que necesitas:

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 ejemplo, si necesitas descargar los archivos de plantilla para una implementación de escalamiento vertical de SAP HANA, usa los siguientes 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

Usa los archivos de plantilla modificados

Cuando termines de modificar los archivos de plantilla, súbelos a un bucket de Cloud Storage o a un servidor web y actualiza las URL de template.yaml y otros archivos en la ubicación del archivo.

Secuencias de comandos posteriores a la implementación

Puedes usar una secuencia de comandos posterior a la implementación para realizar acciones adicionales, como activar la instalación de la aplicación SAP NetWeaver, supervisar agentes, etcétera.

Las secuencias de comandos posteriores a la implementación son la forma recomendada de personalizar implementaciones porque solo obtienen el control después de que se configuró la infraestructura de Google Cloud según los requisitos de compatibilidad de SAP.

Si quieres que se muestren los mensajes de estado de las secuencias de comandos posteriores a la implementación, debes codificar estas secuencias de comandos para que escriban los mensajes en los registros. Para obtener más información, consulta la documentación de Cloud Logging.

El estado de las secuencias de comandos posteriores a la implementación no se incluye en los mensajes que Deployment Manager escribe en Cloud Shell o en una sesión local de shell de Google Cloud CLI.

Obtén asistencia para las plantillas de Deployment Manager para SAP

Si necesitas ayuda para resolver un problema con las plantillas de Deployment Manager para SAP, recopila la información de diagnóstico requerida y comunícate con Atención al cliente de Cloud. Para obtener una lista de la información de diagnóstico requerida, consulta las información de diagnóstico de las plantillas de Deployment Manager para SAP.