Los usuarios de la cuenta de nube de Google Cloud Platform (GCP) de vRealize Automation Cloud pueden configurar equilibradores de carga para dar soporte a soluciones personalizadas, incluida la alta disponibilidad.

Los usuarios de la cuenta de nube de GCP de vRealize Automation Cloud pueden configurar varios aspectos de la configuración del equilibrador de carga para dar soporte a requisitos específicos. Estas funciones pueden dar soporte a la infraestructura de aprovisionamiento para SAP NetWeaver y SAP Hana, por ejemplo.

Establecer una configuración de equilibrador de carga de alta disponibilidad con una cuenta de nube de GCP

Los usuarios de vRealize Automation Cloud con una cuenta de nube de GCP pueden configurar varios aspectos de la configuración del equilibrador de carga para dar soporte a requisitos específicos, como la alta disponibilidad. Estas funciones pueden dar soporte a la infraestructura de aprovisionamiento para SAP NetWeaver y SAP Hana, por ejemplo.

Esta configuración permite implementar diferentes instancias de equilibrador de carga en diferentes zonas de disponibilidad. Para configurar esto, debe configurar los siguientes componentes en GCP:

  • Reservar direcciones IP virtuales
  • Aprovisionar comprobaciones de estado
  • Crear una regla de firewall para dar soporte a las comprobaciones de estado
En la siguiente página se describe cómo configurar estos componentes en GCP: https://cloud.google.com/solutions/sap/docs/netweaver-ha-config-rhel#configure_the_failover_support Además, consulte las siguientes páginas para obtener información sobre las configuraciones de NetWeaver y Hana:

Después de configurar el lado de GCP, debe configurar los componentes adecuados en vRealize Automation Cloud como se describe a continuación:

  • Cree una cuenta de nube de GCP si aún no tiene una.
  • Configure la asignación de colores e imágenes según corresponda a su entorno.
  • Cree un perfil de red predeterminado y etiquételo para poder invocarlo desde una plantilla de nube.
  • Cree zonas de disponibilidad de recursos informáticos y etiquételas correctamente. Esto le permite indicar a vRealize Automation Cloud que aprovisione instancias y grupos de instancias para zonas de disponibilidad específicas en una plantilla de nube.

Cuando haya configurado todos estos componentes, puede desplazarse hasta la pestaña Diseño de Cloud Assembly y crear una plantilla de nube. Esta plantilla debe modelar la configuración del equilibrador de carga adecuado con las especificaciones de comprobación de estado y las instancias y los grupos de instancias según corresponda. Para fines de alta disponibilidad, debe configurar varios equilibradores de carga. La plantilla de nube también debe especificar las máquinas virtuales adecuadas y las zonas de disponibilidad en las que se deben implementar.

El siguiente ejemplo de plantilla de nube demuestra cómo se puede establecer una configuración de equilibrador de carga de alta disponibilidad para NetWeaver.

formatVersion: 1
inputs: {}
resources:
  Cloud_LoadBalancer_1:
    type: Cloud.LoadBalancer
    properties:
      routes:
        - healthCheckConfiguration:
            healthyThreshold: 2
            unhealthyThreshold: 2
            timeoutSeconds: 10
            intervalSeconds: 10
            port: 65000
            protocol: TCP
          protocol: TCP
          port: 1000
          instancePort: 1000
      network: ${resource.Cloud_Network_1.id}
      instances:
        - ${resource.Cloud_GCP_Machine_1.id}
        - ${resource.Cloud_GCP_Machine_2.id}
      internetFacing: false
      fallbackInstanceGroupsByInstanceNames:
        - ${resource.Cloud_GCP_Machine_2.resourceName}
  Cloud_LoadBalancer_2:
    type: Cloud.LoadBalancer
    properties:
      routes:
        - healthCheckConfiguration:
            healthyThreshold: 2
            unhealthyThreshold: 2
            timeoutSeconds: 10
            intervalSeconds: 10
            port: 65000
            protocol: TCP
          protocol: TCP
          port: 1000
          instancePort: 1000
      network: ${resource.Cloud_Network_1.id}
      instances:
        - ${resource.Cloud_GCP_Machine_1.id}
        - ${resource.Cloud_GCP_Machine_2.id}
      internetFacing: false
      useInstanceGroupsFrom: ${resource.Cloud_LoadBalancer_1.resourceName}
      fallbackInstanceGroupsByInstanceNames:
        - ${resource.Cloud_GCP_Machine_1.resourceName}
  Cloud_GCP_Machine_2:
    type: Cloud.GCP.Machine
    properties:
      image: image
      flavor: flavor
      networks:
        - network: ${resource.Cloud_Network_1.id}
      constraints:
        - tag: zone-b
  Cloud_Network_1:
    type: Cloud.Network
    properties:
      networkType: existing
      constraints:
        - tag: default
  Cloud_GCP_Machine_1:
    type: Cloud.GCP.Machine
    properties:
      image: image
      flavor: flavor
      networks:
        - network: ${resource.Cloud_Network_1.id}
      constraints:
        - tag: zone-a

Opciones de configuración adicionales del equilibrador de carga

Usando las configuraciones de plantilla de nube, los usuarios de vRealize Automation Cloud pueden configurar los siguientes aspectos adicionales de la configuración del equilibrador de carga.

  • Compartir grupos de instancias entre equilibradores de carga
  • Configurar grupos de instancias de conmutación por error
  • Configurar los equilibradores de carga para que acepten el tráfico en todos los puertos

Compartir grupos de instancias

Para compartir grupos de instancias entre los equilibradores de carga, los usuarios deben declararlo explícitamente en el blueprint. Debido a que no hay acceso directo a los grupos de instancias en el blueprint, los clientes deben utilizar la propiedad useInstanceGroupsFrom. De esta forma, vRealize Automation Cloud aprovisionará el primer equilibrador de carga y reutilizará los grupos de instancias en los otros equilibradores de carga.

El siguiente ejemplo muestra cómo puede utilizar una plantilla de nube para configurar dos equilibradores de carga en los que el segundo utiliza los grupos de instancias del primero:

Cloud_LoadBalancer_1:
    type: Cloud.LoadBalancer
    properties:
      routes:
        - healthCheckConfiguration:
            healthyThreshold: 2
            unhealthyThreshold: 2
            timeoutSeconds: 10
            intervalSeconds: 10
            port: 65000
            protocol: TCP
          protocol: TCP
      network: ${resource.Cloud_Network_1.id}
      instances:
        - ${resource.Cloud_GCP_Machine_1.id}
        - ${resource.Cloud_GCP_Machine_2.id}
      internetFacing: false
  Cloud_LoadBalancer_2:
    type: Cloud.LoadBalancer
    properties:
      routes:
        - healthCheckConfiguration:
            healthyThreshold: 2
            unhealthyThreshold: 2
            timeoutSeconds: 10
            intervalSeconds: 10
            port: 65000
            protocol: TCP
          protocol: TCP
      network: ${resource.Cloud_Network_1.id}
      instances:
        - ${resource.Cloud_GCP_Machine_1.id}
        - ${resource.Cloud_GCP_Machine_2.id}
      internetFacing: false
      useInstanceGroupsFrom: ${resource.Cloud_LoadBalancer_1.resourceName}

Configurar grupos de instancias de conmutación por error

Para configurar grupos de instancias de conmutación por error para cada equilibrador de carga de GCP, debe declararlo explícitamente en la plantilla de nube. Debido a que no hay acceso directo a los grupos de instancias en la plantilla, debe utilizar la propiedad failoverInstanceGroupsByInstanceNames que indica a vRealize Automation Cloud que busque el grupo de instancias mediante una máquina que se encuentre en ese grupo de instancias.

El siguiente ejemplo muestra la configuración de un equilibrador de carga que tiene un grupo de instancias principal y un grupo de instancias de conmutación por error:

Cloud_LoadBalancer_1:
  type: Cloud.LoadBalancer
  properties:
    routes:
      - healthCheckConfiguration:
          healthyThreshold: 2
          unhealthyThreshold: 2
          timeoutSeconds: 10
          intervalSeconds: 10
          port: 65000
          protocol: TCP
        protocol: TCP
    network: ${resource.Cloud_Network_1.id}
    instances:
      - ${resource.Cloud_GCP_Machine_1.id}
      - ${resource.Cloud_GCP_Machine_2.id}
    internetFacing: false
    failoverInstanceGroupsByInstanceNames:
      - ${resource.Cloud_GCP_Machine_2.resourceName}

Configurar tráfico en todos los puertos

Para configurar un equilibrador de carga de modo que acepte tráfico en todos los puertos, puede omitir la propiedad de puerto de la configuración de la ruta. Puede ver una plantilla de nube de ejemplo que utiliza las tres funciones recién creadas y aprovisiona la infraestructura para esta configuración en: https://cloud.google.com/solutions/sap/docs/netweaver-ha-config-rhel#configure_the_failover_support

formatVersion: 1
inputs: {}
resources:
  Cloud_LoadBalancer_1:
    type: Cloud.LoadBalancer
    properties:
      routes:
        - healthCheckConfiguration:
            healthyThreshold: 2
            unhealthyThreshold: 2
            timeoutSeconds: 10
            intervalSeconds: 10
            port: 65000
            protocol: TCP
          protocol: TCP
      network: ${resource.Cloud_Network_1.id}
      instances:
        - ${resource.Cloud_GCP_Machine_1.id}
        - ${resource.Cloud_GCP_Machine_2.id}
      internetFacing: false
      failoverInstanceGroupsByInstanceNames:
        - ${resource.Cloud_GCP_Machine_2.resourceName}
      address: 10.132.0.72
  Cloud_LoadBalancer_2:
    type: Cloud.LoadBalancer
    properties:
      routes:
        - healthCheckConfiguration:
            healthyThreshold: 2
            unhealthyThreshold: 2
            timeoutSeconds: 10
            intervalSeconds: 10
            port: 65000
            protocol: TCP
          protocol: TCP
      network: ${resource.Cloud_Network_1.id}
      instances:
        - ${resource.Cloud_GCP_Machine_1.id}
        - ${resource.Cloud_GCP_Machine_2.id}
      internetFacing: false
      useInstanceGroupsFrom: ${resource.Cloud_LoadBalancer_1.resourceName}
      failoverInstanceGroupsByInstanceNames:
        - ${resource.Cloud_GCP_Machine_1.resourceName}
      address: 10.132.0.64
  Cloud_GCP_Machine_2:
    type: Cloud.GCP.Machine
    properties:
      image: image
      flavor: flavor
      networks:
        - network: ${resource.Cloud_Network_1.id}
      constraints:
        - tag: zone-c
  Cloud_Network_1:
    type: Cloud.Network
    properties:
      networkType: existing
      constraints:
        - tag: default
  Cloud_GCP_Machine_1:
    type: Cloud.GCP.Machine
    properties:
      image: image
      flavor: flavor
      networks:
        - network: ${resource.Cloud_Network_1.id}
      constraints:
        - tag: zone-b