Recomendações

Recomendadores

Um recomendador é um serviço no Google Cloud que fornece recomendações de otimização para produtos e recursos do Google Cloud.

Cada recomendador tem um ID exclusivo que identifica o serviço. Você usa o ID do recomendador ao interagir com recomendações por meio dos comandos gcloud do Recommender ou do REST ou RPC APIs.

Para mais informações, consulte Recomendações.

Recomendações

Uma recomendação é uma sugestão gerada por máquina para otimizar o uso dos recursos do Cloud. Inclui as etapas necessárias para tomar a recomendação. Os Recomendadores fornecem recomendações com base no uso do recurso, usando machine learning ou heurística. O recomendador armazena as recomendações usando a entidade Recommendation.

Uma recomendação tem os seguintes atributos principais:

Nome

O nome da recomendação é armazenado no campo name da entidade Recommendation. Esse é o nome da recomendação no seguinte formato:

projects/TARGET_PROJECT_ID/locations/LOCATION/recommenders/RECOMMENDER_ID/recommendations/RECOMMENDATION_ID

onde:

  • TARGET_PROJECT_ID é o código do projeto em que a recomendação foi feita.
  • LOCATION é o local do Google Cloud em que os recursos associados às recomendações estão localizados (por exemplo, global ou us-central1-a).
  • RECOMMENDER_ID é o ID de recomendação totalmente qualificado (por exemplo, google.compute.instance.MachineTypeRecommender).
  • RECOMMENDATION_ID é um ID exclusivo para a recomendação.

Descrição

A descrição da recomendação é armazenada no campo description da entidade Recommendation. Disponível apenas em inglês. Este é um texto legível que descreve a recomendação. No Console do Google Cloud, a descrição é exibida quando você clica para ver mais detalhes de recomendações.

Subtipo do recomendador

Um recomendador pode ter subtipos para tipos específicos de recomendações. Por exemplo, o papel de recomendador de Identidade e Acesso tem os subtipos REPLACE_ROLE e REMOVE_ROLE. Com o tempo, novos subtipos podem ser introduzidos nos recomendadores existentes. Esta visão geral traz uma lista de todos os recomendadores disponíveis. Consulte a documentação do recomendador para saber mais sobre os subtipos de recomendação disponíveis.

Impacto do recomendador

Um impacto quantifica os benefícios projetados de executar a ação recomendada. Cada recomendação pode ter os seguintes tipos de impacto que representam resultados que podem ocorrer devido à aplicação da recomendação:

  • O impacto principal é obrigatório e é armazenado no campo primaryImpact da entidade Recommendation.

  • Os impactos secundários são opcionais e armazenados no campo additionalImpact.

Estes são os tipos de impacto principal e secundário:

  • COST: a quantia de dinheiro estimada que você irá economizar (ou gastar) caso aplique uma determinada recomendação. Consulte o campo cost em CostProjection para mais detalhes.

  • PERFORMANCE: aumento ou diminuição estimado no desempenho. Algumas recomendações de desempenho podem resultar em custo adicional. Por exemplo, se uma recomendação for para aumentar a alocação de CPU ou memória em uma VM sobrecarregada.

  • SECURITY: melhoria estimada na postura de segurança. Consulte o campo details em SecurityProjection para mais detalhes.

  • MANAGEABILITY: redução estimada de tarefas manuais.

  • SUSTAINABILITY: redução estimada das emissões de carbono. Veja mais detalhes no campo carbon_footprint_kg_co2 em SustainabilityProjection e Metodologia de relatórios da pegada de carbono.

Operação

Um Operation é a ação individual que precisa ser executada como uma das etapas atômicas em uma recomendação sugerida. As operações podem representar as seguintes alterações:

  • Adicione, remova ou substitua campos de objetos JSON em um recurso do Google Cloud.
  • Adicione, remova ou substitua campos de matriz JSON em um recurso do Google Cloud. Os elementos da matriz JSON são identificados por meio da definição de um filtro no caminho.
  • Adicione um novo recurso do Google Cloud.
  • Excluir um recurso do Google Cloud.
  • Teste as operações para indicar o estado original do recurso. As operações de teste também podem ser usadas para verificar o estado atual de um recurso antes de aplicar a recomendação.
  • Copiar e mover recursos e campos do Google Cloud.

Cada Operation é vagamente baseado no formato Caminho JSON (RFC 6902) para patches. Essa RFC foi selecionada porque fornece uma maneira mais consistente de refletir as alterações de recursos, incluindo cenários complexos normalmente encontrados no Google Cloud. Por exemplo, as recomendações do IAM envolvem matrizes aninhadas para refletir a movimentação da vinculação do papel de um membro para um papel diferente.

Para cada recurso, uma lista de alterações (visualização baseada em diferenças) pode ser gerada da seguinte maneira:

  • Estado original: as operações de teste representam o valor original de um campo. Representa o lado esquerdo da visualização de diferenças.
  • Estado recomendado: operações de não teste representam as alterações recomendadas por campo. Isso representa o lado direito da visualização de diferenças.

Grupos de operação

Um grupo de operações é um conjunto de uma ou mais operações que precisam ser executadas em uma ordem específica quando você aplica uma recomendação. Uma recomendação pode ter um ou mais grupos de operações. Os grupos de operações são armazenados no campo operationGroups na entidade Recommendation.

Por exemplo, uma recomendação sugere que você altera o tipo de máquina de instância de VM para um grupo de instâncias do Compute Engine tem dois grupos de operações: um em que o tipo de máquina é alterado no modelo de instância e outro em que você precisa. aplicar a alteração a um grupo de instâncias específico.

Como o primeiro conjunto de operações precisa ser concluído antes que o segundo possa ser iniciado, eles são definidos como dois grupos de instâncias separados na recomendação.

Um grupo de operações pode incluir uma operação test. As operações de teste realizam verificações para garantir que uma recomendação ainda seja válida. A recomendação que sugere a alteração do tipo de máquina da instância de VM tem uma operação de teste que verifica se o tipo de máquina atual é o mesmo que a recomendação foi feita.

State

As recomendações passam por muitas transições de estado após serem propostas. Uma recomendação pode ter os seguintes estados:

  • ACTIVE, que significa que a recomendação foi feita, mas nenhuma ação foi tomada em resposta a ela. A recomendação pode ser aplicada reivindicando-a. As recomendações ativas podem ser atualizadas quando os recursos são alterados.
  • CLAIMED, o que significa que você ou outro processo reivindicou a recomendação e que uma resposta a ela está em andamento. Quando uma recomendação é reivindicada, o Recommender não o atualiza quando os recursos são alterados.
  • SUCCEEDED, o que significa que você ou outro processo aplicou a recomendação ao recurso associado.
  • FAILED, o que significa que houve uma falha ao tentar aplicar a recomendação.
  • DISMISSED, o que significa que você ou outro processo fechou a recomendação sem aplicá-la ao recurso associado. Esse estado impede que a recomendação apareça na lista de recomendações e é normalmente aplicada por um administrador que a invalida por vários motivos. Isso também impede que uma recomendação seja movida para o estado CLAIMED.

As informações sobre o estado da recomendação são armazenadas no campo stateInfo da entidade Recommendation. Isso inclui o próprio estado da recomendação e de todos os outros metadados do estado recomendado pelo recomendador.

Quando uma recomendação é alterada para o estado CLAIMED, SUCCEEDED ou FAILED, o conteúdo da recomendação não é atualizado e a recomendação tem um período de 90 dias a partir do momento em que mudança de estado.

etag

Uma etag é uma impressão digital exclusiva que identifica o estado atual de uma recomendação. Toda vez que a recomendação muda, um novo valor de etag é atribuído. Esse valor é armazenado no campo etag da entidade Recommender.

Depois de recuperar uma recomendação do Recommender usando comandos gcloud ou chamadas de API, faça referência a ela em operações subsequentes usando o ID da recomendação e a etag. Isso faz com que qualquer operação seja realizada somente se a recomendação não tiver mudado desde a última recuperação.

Prioridade

A prioridade de uma recomendação ajuda a indicar quais ações precisam ser tratadas primeiro. Esse campo vem com os valores P1, P2, P3 e P4 com P4 definido como a prioridade padrão. Cada recomendador pode ter sua própria estratégia de priorização definida.

Metadados de estado

Quando você reivindica uma recomendação ou a marca como bem-sucedida ou falha, é possível incluir metadados adicionais sobre a operação com metadados de estado.

Os metadados são especificados como pares key:value. Exemplo:

{
  "stateMetadata": {
    "priority" : "high",
    "tracking_number": "12345" }
}

As atualizações no campo stateMetadata substituem os metadados de um estado atual.

Hora da última atualização

O horário da última atualização indica quando a recomendação foi atualizada pela última vez pelo processo de geração. O conteúdo da recomendação reflete o estado dos recursos no momento da última atualização.

Exemplos

O exemplo a seguir mostra uma recomendação de dimensionamento para uma instância de VM no Compute Engine.

{
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "test",
            "path": "/machineType",
            "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-rightsizing-2",
            "resourceType": "compute.googleapis.com/Instance",
            "valueMatcher": {
              "matchesPattern": ".*zones/us-central1-a/machineTypes/n1-standard-4"
            }
          },
          {
            "action": "replace",
            "path": "/machineType",
            "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-rightsizing-2",
            "resourceType": "compute.googleapis.com/Instance",
            "value": "zones/us-central1-a/machineTypes/custom-2-5120"
          }
        ]
      }
    ]
  },
  "description": "Save cost by changing machine type from n1-standard-4 to custom-2-5120.",
  "etag": "\"923daeebe926c12f\"",
  "recommenderSubtype": "CHANGE_MACHINE_TYPE",
  "lastRefreshTime": "2019-06-13T06:44:58Z",
  "name": "projects/32428390823/locations/us-central1-a/recommenders/google.compute.instance.MachineTypeRecommender/recommendations/a523ff7e-ed03-4143-a3a5-5b396b99cba9",
  "primaryImpact": {
    "category": "COST",
    "costProjection": {
      "cost": {
        "currencyCode": "USD",
        "units": "-73"
      },
      "duration": "2592000s"
    }
  },
  "stateInfo": {
    "state": "ACTIVE"
  }
}

Para mais exemplos de recomendações, consulte a documentação de recomendadores individuais em Recommenders.

Referência do Insight

Referência a um insight associado. As referências vinculam recomendações com insights associados, se houver.

Configuração

Com a configuração do recomendador, é possível fazer o seguinte:

  • Personalize a maneira como insights e recomendações são gerados. Isso é feito ao modificar alguns dos parâmetros de configuração usados para gerar esses insights e recomendações.
  • Cada configuração do recomendador começa com alguns valores padrão para cada parâmetro. Cada parâmetro tem um intervalo de valores que pode ser usado para personalizar a configuração.
  • A configuração ativa é a que você modificou na última vez. Para cada alteração feita na configuração, pode levar até 48 horas para que a configuração entre em vigor.

Um exemplo de configuração do recomendador é definir um limite de CPU padrão ou um período de observação para criar recomendações que melhor se adaptem às necessidades de cargas de trabalho, aplicativos e infraestrutura.

Com a API de configuração, é possível recuperar a configuração de um recomendador ou tipo de insight. Você tem a opção de atualizar os parâmetros de configuração de um único projeto. Cada tipo de configuração ou insight do recomendador requer permissões específicas para visualizar e modificar os parâmetros de configuração.

Veja um exemplo de resposta que contém parâmetros de configuração para um recomendador de VM inativa:

{
  "name": "projects/project-number/locations/global/recommenders/google.iam.policy.Recommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "minimum_observation_period": "P90D",
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\"",
  "updateTime": "2020-11-03T04:41:15.330351Z"
}