Recomendações

Recommenders

Um recomendador é um serviço no Google Cloud que oferece recomendações de uso para recursos do Cloud. Os recomendadores são específicos de um único produto e tipo de recurso do Google Cloud. Um único produto pode ter vários recomendações, em que cada um fornece um tipo diferente de recomendação para um recurso diferente.

Cada recomendador tem um ID exclusivo que identifica o serviço internamente. 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. A função "Recomendações" armazena as recomendações internamente 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. Um novo subtipo pode ser introduzido quando alterações significativas em recommendation.content ou recommendation.primary_impact.category precisam ser introduzidas de maneira compatível com versões anteriores. Consulte a seção "Recomendações" para ver uma lista de subtipos de um determinado recomendador.

Impacto

Uma recomendação pode ter dois tipos de impacto: primary, que é sempre fornecido, e additional, que é opcional.

O impacto principal é armazenado no campo primaryImpact da entidade Recommendation. Ele representa a vantagem que você recebe ao aplicar a recomendação.

Os outros impactos são armazenados no campo additionalImpact. Eles representam resultados adicionais, positivos e negativos, que podem ocorrer como resultado da aplicação da recomendação. Exemplos de impacto são o aumento de custos ou considerações de segurança.

Por exemplo, se você aplicar uma recomendação com impacto principal PERFORMANCE, isso poderá resultar em impacto adicional no custo se a recomendação for aumentar a alocação de CPU ou memória para melhorar o desempenho.

Os impactos nas recomendações têm uma categoria. A categoria é o tipo de impacto esperado (por exemplo, custo, desempenho ou segurança). Se a categoria for Custo, o impacto também incluirá uma projeção de custo. A projeção de custo é a quantia de dinheiro que será projetada para você se aceitar a recomendação.

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

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.