Pedir hardware

Esta página descreve como pedir hardware conectado do Google Distributed Cloud. O Distributed Cloud conectado está disponível nos seguintes países:

  • Austrália
  • Áustria
  • Bélgica
  • Brasil
  • Canadá
  • Dinamarca
  • Finlândia
  • França
  • Alemanha
  • Hong Kong
  • Japão
  • Índia
  • Indonésia
  • Itália
  • Países Baixos
  • Noruega
  • Polônia
  • Arábia Saudita
  • Singapura
  • Coreia do Sul
  • Espanha
  • Suécia
  • Suíça
  • Reino Unido
  • Estados Unidos

Antes de pedir o hardware, atenda aos requisitos de instalação do Distributed Cloud conectado.

Pedir hardware conectado do Distributed Cloud usando o Google Cloud console

  1. No Google Cloud console do, acesse a página Pedidos.

    Acessar pedidos

  2. Selecione o projeto de destino Google Cloud .

  3. Clique em Criar pedido.

  4. Preencha e envie o formulário de solicitação.

Um Google Cloud representante de vendas analisa seu envio e entra em contato com você para concluir o pedido. O representante faz o seguinte:

  • Analisa seus requisitos de negócios para ajudar você a escolher a configuração de hardware ideal.
  • Coleta informações sobre sua rede local, Google Cloud projeto, local de instalação e outros requisitos listados nos requisitos de instalação.
  • Usa essas informações para configurar o hardware do Distributed Cloud antes da entrega.

Pedir hardware conectado do Distributed Cloud usando a API GDC Hardware Management

A API GDC Hardware Management permite que você faça um pedido de hardware do Distributed Cloud de forma programática. Um pedido constitui sua intenção de implantar o Distributed Cloud conectado. Um pedido precisa incluir as seguintes informações, que são usadas durante todo o ciclo de vida da implantação do Distributed Cloud conectado:

  • Ponto de contato para gerenciamento e entrega de pedidos
  • Endereço do local de entrega e informações relevantes para a entrega
  • Configuração de hardware
  • Configuração de rede

É necessário trabalhar com seu representante de vendas do Google para preencher o Questionário de informações do cliente (CIQ, na sigla em inglês) e finalizar o escopo e a configuração da implantação do Distributed Cloud conectado.

Estrutura de um pedido

Para fazer um pedido usando a API GDC Hardware Management, crie um recurso Order, além dos recursos Site, Zone e Hardware que o acompanham e que são referenciados pelo recurso Order. Em seguida, envie o recurso Order ao Google. Esses recursos oferecem suporte a operações CRUD padrão. O nome de cada recurso é um caminho que inclui o ID do projeto de destino Google Cloud e a região Google Cloud .

Esses recursos têm as seguintes funções. Para mais informações sobre como usar a API GDC Hardware Management, consulte a referência da API e da CLI do Google Distributed Cloud.

  • Order. Esse recurso solicita a criação de uma ou mais zonas do Distributed Cloud. Quando você cria esse recurso, ele recebe um nome acessível no campo create_order_response.name. O nome do recurso Order tem o seguinte formato:

    `projects/`PROJECT_ID`/locations/`REGION`/orders/`ORDER_ID

    em que:

    • PROJECT_ID: o ID do projeto de destino. Google Cloud
    • REGION: a Google Cloud região em que você quer implantar as zonas do Distributed Cloud.
    • ORDER_ID: um ID exclusivo que identifica esse pedido. Se omitido, um valor será gerado automaticamente. Recomendamos que você forneça um valor de ID de pedido exclusivo que consiste em letras minúsculas, números e traços. Caso contrário, as chamadas de criação de pedidos com falha poderão gerar pedidos duplicados.
  • Site. Esse recurso representa o local físico em que você quer implantar o hardware do Distributed Cloud. Esse recurso inclui as dados de contato de uma parte responsável que coordena o acesso para a entrega inicial e a manutenção futura. Esse contato pode ser diferente do que você forneceu no pedido.

  • Hardware. Esse recurso instancia uma SKU conectada do Distributed Cloud e representa um servidor ou rack do Distributed Cloud. Cada recurso Hardware referencia os recursos Order, Site e Zone associados. Para conferir as SKUs disponíveis, use a ListSkus chamada de API.

  • Zone. Esse recurso especifica a configuração de rede das máquinas conectadas do Distributed Cloud e dos clusters associados. Uma zona do Distributed Cloud abrange um ou mais racks conectados do Distributed Cloud ou todas as máquinas de servidor conectadas do Distributed Cloud implantadas no seu local.

Quando você envia um recurso Order ao Google e o status dele muda de DRAFT para SUBMITTED, a maioria dos valores de campo se torna somente leitura.

Ciclo de vida de um pedido

Um recurso Order pode ter um dos estados listados em State. As partes envolvidas podem deixar comentários no pedido, que são armazenados como recursos Comment aninhados no recurso Order correspondente. É possível ler e enviar comentários pela API GDC Hardware Management e pelo Google Cloud console.

Se o pedido contiver todas as informações necessárias e você tiver assinado um contrato com o Google, o pedido vai passar pela seguinte sucessão de estados: ACCEPTED, BUILDING, SHIPPING, INSTALLING e COMPLETED. Os estados dos recursos Zone e Hardware associados são atualizados em sincronia com o recurso Order. Se precisarmos de mais informações ou você não tiver assinado um contrato com o Google, o pedido vai entrar no estado ADDITIONAL_INFO_NEEDED e aguardar a resolução por meio de comentários. A modificação ou o cancelamento do pedido precisa ser solicitado por meio de comentários.

Selecionar o projeto de destino Google Cloud

Um Google Cloud projeto é uma construção que encapsula um conjunto de Google Cloud recursos, os disponibiliza para uso e estabelece regras de controle de acesso e faturamento para esses recursos.

Recomendamos que você crie um Google Cloud projeto separado por domínio administrativo, como um país ou departamento corporativo, e caso de uso de alto nível, como borda versus núcleo, e gerencie a implantação do Distributed Cloud conectado para o domínio por meio desse Google Cloud projeto.

O Google Cloud projeto permite realizar as seguintes tarefas de gerenciamento:

  • Pedir hardware conectado do Distributed Cloud.
  • Configurar clusters conectados do Distributed Cloud e registrá-los em uma frota.
  • Gerenciar lançamentos de software.
  • Gerenciar dados conectados do Distributed Cloud no Cloud Storage.
  • Gerenciar credenciais conectadas do Distributed Cloud no Secret Manager.
  • Gerenciar registros e métricas conectados do Distributed Cloud no Cloud Monitoring.

A topologia exata do seu Google Cloud projeto depende dos requisitos de negócios. Recomendamos que você evite dependências entre projetos e sempre crie e use recursos dentro de cada Google Cloud projeto.

O hardware pedido em um Google Cloud projeto específico é sempre gerenciado nesse Google Cloud projeto.

Selecionar a região de destino Google Cloud

A escolha específica de Google Cloud regiões para a implantação do Distributed Cloud conectado depende dos requisitos de negócios e das ramificações legais dos locais geográficos de destino.

Se você estiver integrando a implantação do Distributed Cloud conectado a uma área de cobertura multirregional Google Cloud existente, recomendamos que você mapeie cada zona conectada do Distributed Cloud para a Google Cloud região que hospeda as dependências dessa zona.

Se você não estiver integrando a implantação do Distributed Cloud conectado a uma área de cobertura atual Google Cloud, recomendamos que você diversifique a seleção de Google Cloud regiões para aumentar a confiabilidade. Exemplo:

  • Mapeie cada zona conectada do Distributed Cloud para a região com suporte mais próxima Google Cloud . Isso limita o impacto de uma falha do plano de gerenciamento a uma única região geográfica.
  • Faça a distribuição do Distributed Cloud conectado em várias Google Cloud regiões. Isso limita o número de zonas conectadas do Distributed Cloud que podem ser afetadas por uma falha do plano de gerenciamento. No entanto, as zonas afetadas são distribuídas por uma região geográfica maior.

    O Distributed Cloud conectado oferece suporte às seguintes Google Cloud regiões:

  • Ásia: asia-east1, asia-east2, asia-northeast1, asia-northeast3, asia-south1, asia-south2, asia-southeast1, asia-southeast2

  • Europa: europe-central2, europe-north1, europe-west1, europe-west2, europe-west3, europe-west4, europe-west6, europe-west8, europe-west9

  • Oriente Médio: me-central1, me-west1

  • Oceania: australia-southeast1

  • América do Norte: northamerica-northeast1, northamerica-northeast2, us-central1, us-central2, us-east1, us-east4, us-east5, us-east7, us-south1, us-west1, us-west2, us-west3, us-west4, us-west8

  • América do Sul: southamerica-east1, southamerica-west1

Configurar o ambiente

Antes de começar, conclua os seguintes pré-requisitos:

  1. Configurar um ambiente de desenvolvimento para Python.

  2. Instale a biblioteca de cliente da API Management do Hardware GDC usando o seguinte comando:

    python3 -m pip install google-cloud-gdchardwaremanagement
    
  3. Ative a API Management de Hardware do GDC no projeto de destino Google Cloud .

Criar e enviar um pedido de hardware conectado do Distributed Cloud usando a API de Gerenciamento do GDC Hardware

As etapas nesta seção são exemplos que ilustram como criar e enviar um recurso Order ao Google usando a API GDC Hardware Management. Para concluir as etapas nesta seção, você precisa ter o papel de administrador do GDC Hardware Management (roles/gdchardwaremanagement.admin) no seu Google Cloud projeto.

  1. Crie um recurso Order. Exemplo:

    import datetime
    from google.cloud import gdchardwaremanagement_v1alpha
    from google.protobuf.timestamp_pb2 import Timestamp
    from google.type import postal_address_pb2
    
    client = gdchardwaremanagement_v1alpha.GDCHardwareManagementClient()
    
    contact = gdchardwaremanagement_v1alpha.Contact(
        given_name="John",
        family_name="Customer",
        email="jcustomer@example.com",
        phone="+1 123 456 7890",
    )
    
    organization_contact = gdchardwaremanagement_v1alpha.OrganizationContact(
        address=postal_address_pb2.PostalAddress(
            organization="Example Organization",
            address_lines=["1800 Amphibious Blvd."],
            locality="Mountain View",
            administrative_area="CA",
            postal_code="94045",
            region_code="US",
        ),
        contacts=[contact],
    )
    
    order = gdchardwaremanagement_v1alpha.Order(
        organization_contact=organization_contact,
        customer_motivation="I like Google Distributed Cloud!",
        fulfillment_time=Timestamp(
            seconds=int(datetime.datetime(2024, 11, 22, 9, 0).timestamp()),
        ),
        region_code="US",
    )
    
    create_order_response = client.create_order(
        request=gdchardwaremanagement_v1alpha.CreateOrderRequest(
            parent="projects/myProject/locations/us-east1",
            order_id="myOrderID",
            order=order,
        ),
    ).result()

    Seu pedido está agora no estado DRAFT e recebeu um nome de recurso armazenado no campo create_order_response.name. Use esse nome de recurso ao modificar ou acompanhar o status desse pedido.

  2. Crie um recurso Site. Exemplo:

    site = gdchardwaremanagement_v1alpha.Site(
        organization_contact=organization_contact,
        google_maps_pin_uri="https://maps.app.goo.gl/z7bE8z8fffg6Sri46",
    )
    
    create_site_response = client.create_site(
        request=gdchardwaremanagement_v1alpha.CreateSiteRequest(
            parent="projects/myProject/locations/us-east1",
            site_id="mySite",
            site=site,
        ),
    ).result()
  3. Crie um recurso Zone. Exemplo:

    zone = gdchardwaremanagement_v1alpha.Zone(
        contacts=[contact],
        network_config=gdchardwaremanagement_v1alpha.ZoneNetworkConfig(
            management_ipv4_subnet=gdchardwaremanagement_v1alpha.Subnet(
                address_range="192.0.2.0/24",
                default_gateway_ip_address="192.0.2.1",
            ),
            machine_mgmt_ipv4_range="192.0.2.8/29",
            kubernetes_ipv4_subnet=gdchardwaremanagement_v1alpha.Subnet(
                address_range="203.0.113.0/24",
                default_gateway_ip_address="203.0.113.1",
            ),
            kubernetes_node_ipv4_range="203.0.113.8/29",
            kubernetes_control_plane_ipv4_range="203.0.113.16/29",
        ),
    )
    
    create_zone_response = client.create_zone(
        request=gdchardwaremanagement_v1alpha.CreateZoneRequest(
            parent="projects/myProject/locations/us-east1",
            zone_id="myZone",
            zone=zone,
        ),
    ).result()
  4. Crie os recursos Hardware. É necessário especificar um valor hardware_id exclusivo para cada máquina na implantação do Distributed Cloud conectado. Exemplo:

    from google.type import date_pb2
    
    hardware = gdchardwaremanagement_v1alpha.Hardware(
        order=create_order_response.name,
        site=create_site_response.name,
        zone=create_zone_response.name,
        config=gdchardwaremanagement_v1alpha.HardwareConfig(
            sku="projects/myProject/locations/us-east1/skus/gdce-server-l",
            power_supply=gdchardwaremanagement_v1alpha.types.PowerSupply.POWER_SUPPLY_AC,
        ),
        physical_info=gdchardwaremanagement_v1alpha.HardwarePhysicalInfo(
            power_receptacle=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.PowerReceptacleType.NEMA_5_15,
            network_uplink=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.NetworkUplinkType.RJ_45,
            voltage=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.Voltage.VOLTAGE_110,
            amperes=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.Amperes.AMPERES_15,
        ),
        installation_info=gdchardwaremanagement_v1alpha.HardwareInstallationInfo(
            rack_location="Floor 2, Room 201, Row 7, Rack 3",
            power_distance_meters=2,
            switch_distance_meters=2,
            rack_unit_dimensions=gdchardwaremanagement_v1alpha.Dimensions(
                width_inches=19,
                height_inches=1.75,
                depth_inches=30,
            ),
            rack_space=gdchardwaremanagement_v1alpha.RackSpace(
                start_rack_unit=12,
                end_rack_unit=12,
            ),
            rack_type=gdchardwaremanagement_v1alpha.types.HardwareInstallationInfo.RackType.FOUR_POST,
        ),
        requested_installation_date=date_pb2.Date(year=2024, month=11, day=22),
    )
    
    create_hardware_response = client.create_hardware(
        request=gdchardwaremanagement_v1alpha.CreateHardwareRequest(
            parent="projects/myProject/locations/us-east1",
            hardware_id="machineHardwareID",
            hardware=hardware,
        ),
    ).result()
  5. Envie o recurso Order ao Google:

    submit_order_response = client.submit_order(
        request=gdchardwaremanagement_v1alpha.SubmitOrderRequest(
            name=create_order_response.name,
        ),
    ).result()

Solução de problemas

Esta seção descreve os erros mais comuns, as causas e as soluções disponíveis.

Erro: 400 FAILED_PRECONDITION

Se você receber um código de erro 400 com um status FAILED_PRECONDITION em resposta à chamada de API, verifique se a solicitação é válida para a operação que você está tentando concluir. Exemplos de solicitações inválidas incluem o envio de um recurso Order com campos ou valores ausentes ou a tentativa de excluir um recurso Hardware associado a um recurso Order enviado anteriormente.

Erro: 400 INVALID_ARGUMENT

Se você receber um código de erro 400 com um status INVALID_ARGUMENT em resposta à chamada de API, verifique se há nomes de campos e valores incorretos que não correspondem aos tipos esperados ou valores ausentes. Você também poderá receber esse erro se usar um updateMask em uma solicitação PATCH e um ou mais campos especificados no updateMask forem inválidos.

Para resolver esse problema, consulte a API Management do GDC Hardware para verificar se todos os nomes e valores de campo estão corretos, incluindo a formatação. Se você estiver usando um payload JSON, confirme se todas as informações necessárias estão incluídas no payload.

Erro: 401 UNAUTHENTICATED

Se você receber um código de erro 401 com um status UNAUTHENTICATED em resposta à chamada de API, verifique a configuração de autenticação. Para mais informações, consulte Configurar o Application Default Credentials.

Erro: 403 PERMISSION_DENIED

Se você receber um código de erro 403 com um status PERMISSION_DENIED em resposta à chamada de API, verifique se a conta de serviço usada para fazer a chamada de API tem privilégios suficientes para acessar os objetos e recursos de destino. Verifique também se as credenciais estão corretas e não expiraram.

Erro: 404 NOT_FOUND

Se você receber um código de erro 404 com um status NOT_FOUND em resposta à chamada de API, verifique se os nomes e o caminho do recurso especificados na chamada de API são válidos. Consulte a API Management de Hardware do GDC para verificar se o URL da solicitação está estruturado corretamente e se todos os campos incluídos no URL são válidos.

A seguir