Os administradores de nuvem podem aproveitar o plug-in do Google Cloud Platform (GCP) para criar balanceadores de carga para oferecer suporte a soluções personalizadas, incluindo alta disponibilidade.

Você pode configurar vários aspectos da configuração de balanceadores de carga para oferecer suporte a requisitos específicos. Esses recursos podem oferecer suporte à infraestrutura de provisionamento para SAP NetWeaver e SAP Hana, por exemplo. Essa configuração permite implantar diferentes instâncias de balanceador de carga em zonas de disponibilidade diferentes.

Antes de provisionar o balanceador de carga, você deve configurar os componentes apropriados no VMware Aria Automation.
  • Crie uma conta de nuvem do GCP se você não tiver uma.
  • Configure mapeamentos de tipo e imagem.
  • Crie um perfil de rede padrão.
  • Crie zonas de disponibilidade de processamento e marque-as apropriadamente. Essas tags permitem provisionar instâncias e grupos de instâncias para zonas de disponibilidade específicas em um modelo.
Depois de concluir essas etapas, você poderá abrir a guia Projetar no Automation Assembler para criar um modelo. Considere estes fatores à medida que você cria seu modelo:
  • O modelo deve modelar a configuração apropriada do balanceador de carga com especificações para verificações de integridade, instâncias do, grupos de instâncias, serviços de back-end, regras de encaminhamento e firewalls.
  • O modelo deve especificar as máquinas virtuais e as zonas de disponibilidade nas quais elas devem ser implantadas.

Configurando um balanceador de carga TCP interno

O modelo a seguir mostra como você pode configurar um balanceador de carga TCP interno para o SAP Hana. Para implantar esse modelo, você precisará do seguinte:
  1. Uma rede
  2. Um intervalo CIDR de IP de sub-rede
  3. Um endereço IP virtual (VIP) para o balanceador de carga interno

    Esse é o endereço que você definiu para a regra de encaminhamento. Consulte a documentação do Google Cloud para saber como reservar endereços IP para NetWeaver e SAP Hana.

Este modelo de exemplo usa auxiliares de alocação para fornecer lógica de alocação para vários recursos. O modelo contém duas instâncias do, grupos de instâncias, um recurso de verificação de integridade, um recurso de firewall, um recurso de serviço de back-end e um recurso de regra de encaminhamento.

Depois de implantar esse modelo, você poderá fazer login no Google Cloud Console para filtrar e escolher as instâncias do que deseja adicionar ao seu grupo de instâncias. Somente instâncias na mesma zona que o grupo de instâncias serão mostradas como opções. Consulte Grupos de instância no console do Google Cloud.

formatVersion: 1
inputs:
  suffix:
    type: string
    title: ''
resources:
  Allocations_Image_1:
    type: Allocations.Image
    properties:
      image: ubuntu
  Allocations_Compute_1:
    type: Allocations.Compute
    properties:
      accountType: gcp
      constraints:
        - tag: zone-a
  Allocations_Compute_2:
    type: Allocations.Compute
    properties:
      constraints:
        - tag: zone-b
  Allocations_Flavor_1:
    type: Allocations.Flavor
    properties:
      flavor: medium
  Idem_GCP_COMPUTE_NETWORK_1:
    type: Idem.GCP.COMPUTE.NETWORK
    properties:
      name: network-doc-1-${input.suffix}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      auto_create_subnetworks: false
  Idem_GCP_COMPUTE_SUBNETWORK_1:
    type: Idem.GCP.COMPUTE.SUBNETWORK
    properties:
      name: subnetwork-doc-1-${input.suffix}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id}
      region: ${resource.Allocations_Compute_1.selectedRegion.name}
      ip_cidr_range: '10.0.10.0/24'
  Idem_GCP_COMPUTE_INSTANCE_1:
    type: Idem.GCP.COMPUTE.INSTANCE
    properties:
      name: vm-doc-1-${input.suffix}
      zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      can_ip_forward: false
      project: ${resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project}
      network_interfaces:
        - name: nic0
          stack_type: IPV4_ONLY
          subnetwork: ${Idem_GCP_COMPUTE_SUBNETWORK_1.resource_id}
      disks:
        - initialize_params:
            disk_name: disk-doc-boot-1-${input.suffix}
            source_image: ${resource.Allocations_Image_1.selectedImageId}
            disk_size_gb: 12
            disk_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-standard'}
          boot: true
          auto_delete: true
      machine_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/machineTypes/' + resource.Allocations_Flavor_1.selectedInstanceTypeName}
      tags:
        items:
          - net-tag-1
          - net-tag-2
  Idem_GCP_COMPUTE_INSTANCE_2:
    type: Idem.GCP.COMPUTE.INSTANCE
    properties:
      name: vm-doc-2-${input.suffix}
      zone: ${resource.Allocations_Compute_2.selectedPlacementCompute.id}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      can_ip_forward: false
      project: ${resource.Allocations_Compute_1.selectedCloudAccount.additionalProperties.gcp.project}
      network_interfaces:
        - name: nic0
          stack_type: IPV4_ONLY
          subnetwork: ${Idem_GCP_COMPUTE_SUBNETWORK_1.resource_id}
      disks:
        - initialize_params:
            disk_name: disk-doc-boot-2-${input.suffix}
            source_image: ${resource.Allocations_Image_1.selectedImageId}
            disk_size_gb: 12
            disk_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_1.selectedPlacementCompute.id + '/diskTypes/pd-standard'}
          boot: true
          auto_delete: true
      machine_type: ${'/projects/' + resource.Allocations_Flavor_1.selectedCloudAccount.additionalProperties.gcp.project + '/zones/' + resource.Allocations_Compute_2.selectedPlacementCompute.id + '/machineTypes/' + resource.Allocations_Flavor_1.selectedInstanceTypeName}
      tags:
        items:
          - net-tag-1
          - net-tag-2
  Idem_GCP_COMPUTE_INSTANCE_GROUP_1:
    type: Idem.GCP.COMPUTE.INSTANCE_GROUP
    properties:
      name: ig-doc-1-${input.suffix}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      zone: ${resource.Allocations_Compute_1.selectedPlacementCompute.id}
      network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id}
  Idem_GCP_COMPUTE_INSTANCE_GROUP_2:
    type: Idem.GCP.COMPUTE.INSTANCE_GROUP
    properties:
      name: ig-doc-2-${input.suffix}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      zone: ${resource.Allocations_Compute_2.selectedPlacementCompute.id}
      network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id}
  Idem_GCP_COMPUTE_HEALTH_CHECK_1:
    type: Idem.GCP.COMPUTE.HEALTH_CHECK
    properties:
      name: hc-doc-1-${input.suffix}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      type_: TCP
      check_interval_sec: 10
      timeout_sec: 10
      unhealthy_threshold: 2
      healthy_threshold: 2
      tcp_health_check:
        port: 80
        proxy_header: NONE
  Idem_GCP_COMPUTE_FIREWALL_1:
    type: Idem.GCP.COMPUTE.FIREWALL
    properties:
      name: f-doc-1-${input.suffix}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id}
      direction: INGRESS
      target_tags:
        - net-tag-1
        - net-tag-2
      allowed:
        - ip_protocol: tcp
          ports:
            - ${resource.Idem_GCP_COMPUTE_HEALTH_CHECK_1.tcp_health_check.port}
  Idem_GCP_COMPUTE_BACKEND_SERVICE_1:
    type: Idem.GCP.COMPUTE.BACKEND_SERVICE
    properties:
      name: bs-doc-1-${input.suffix}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      health_checks:
        - ${resource.Idem_GCP_COMPUTE_HEALTH_CHECK_1.resource_id}
      load_balancing_scheme: INTERNAL
      region: ${resource.Allocations_Compute_1.selectedRegion.id}
      network: ${Idem_GCP_COMPUTE_NETWORK_1.resource_id}
      failover_policy:
        drop_traffic_if_unhealthy: true
        disable_connection_drain_on_failover: true
        failover_ratio: 1
      backends:
        - group: ${resource.Idem_GCP_COMPUTE_INSTANCE_GROUP_1.resource_id}
        - group: ${resource.Idem_GCP_COMPUTE_INSTANCE_GROUP_2.resource_id}
          failover: true
  Idem_GCP_COMPUTE_FORWARDING_RULE_1:
    type: Idem.GCP.COMPUTE.FORWARDING_RULE
    properties:
      ip_protocol: TCP
      name: fr-doc-1-${input.suffix}
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      load_balancing_scheme: INTERNAL
      backend_service: ${resource.Idem_GCP_COMPUTE_BACKEND_SERVICE_1.resource_id}
      all_ports: true
      region: ${resource.Allocations_Compute_1.selectedRegion.id}
      subnetwork: ${Idem_GCP_COMPUTE_SUBNETWORK_1.resource_id}
      ip_address: '10.0.10.102'