Recommandations

Outils de recommandation

Un outil de recommandation est un service sur Google Cloud qui fournit des recommandations d'utilisation pour les ressources Cloud. Les recommandations sont spécifiques à un seul produit et type de ressource Google Cloud. Un produit peut être associé à plusieurs recommandations, chacune fournissant un type de recommandation différent pour une ressource différente.

Chaque outil de recommandation possède un ID de recommandation unique qui identifie le service en interne. Vous utilisez l'ID de l'outil de recommandation pour interagir avec des recommandations à l'aide des commandes gcloud de l'outil de recommandation, ou des API REST ou RPC.

Pour en savoir plus, consultez la section Outils de recommandation.

Recommandations

Une recommandation est une suggestion générée automatiquement pour optimiser votre utilisation des ressources Cloud. Elle inclut les étapes nécessaires à suivre pour mettre en œuvre la recommandation. Les outils de recommandation fournissent des recommandations basées sur votre utilisation des ressources, à l'aide du machine learning ou de l'heuristique. L'outil de recommandation stocke ces recommandations en interne à l'aide de l'entité Recommendation.

Une recommandation comprend les attributs principaux suivants :

Nom

Le nom de la recommandation est stocké dans le champ name de l'entité Recommendation. Il s'agit du nom de la recommandation au format suivant :

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

où :

  • TARGET_PROJECT_ID correspond à l'ID du projet dans lequel la recommandation a été effectuée.
  • LOCATION correspond à l'emplacement Google Cloud dans lequel se trouvent les ressources associées aux recommandations (par exemple, global ou us-central1-a).
  • RECOMMENDER_ID correspond à l'ID complet de l'outil de recommandation (par exemple, google.compute.instance.MachineTypeRecommender).
  • RECOMMENDATION_ID correspond à un ID unique pour la recommandation.

Description

La description de la recommandation est stockée dans le champ description de l'entité Recommendation. Elle n'est disponible qu'en anglais. Il s'agit d'un texte lisible qui décrit la recommandation. Dans Google Cloud Console, la description s'affiche lorsque vous cliquez pour afficher des détails supplémentaires sur les recommandations.

Sous-type de l'outil de recommandation

Un outil de recommandation peut fournir des sous-types de recommandations spécifiques. Par exemple, l'outil de recommandation de rôle Identity and Access Management dispose des sous-types REPLACE_ROLE et REMOVE_ROLE. Un nouveau sous-type peut être introduit lorsque des modifications importantes de recommendation.content ou recommendation.primary_impact.category doivent être apportées de manière rétrocompatible. Consultez la section "Outils de recommandation" pour afficher la liste des sous-types d'un outil de recommandation spécifique.

Impact

Une recommandation peut avoir deux types d'impacts : un impact primaire, qui est toujours garanti, et un impact secondaire, qui est facultatif.

L'impact primaire est stocké dans le champ primaryImpact de l'entité Recommendation. Il représente l'avantage que vous pourriez obtenir si vous appliquez la recommandation.

Les impacts secondaires sont stockés dans le champ additionalImpact. Ils représentent des résultats supplémentaires, positifs et négatifs, qui peuvent survenir suite à l'application de la recommandation. L'augmentation des coûts ou les aspects liés à la sécurité sont des exemples d'impact.

Par exemple, si vous appliquez une recommandation dont l'impact primaire est PERFORMANCE, cela peut entraîner un impact secondaire en termes de coût si cette recommandation consiste à augmenter la quantité de processeur ou de mémoire allouée pour améliorer les performances.

Les impacts des recommandations sont associés à une catégorie. La catégorie correspond au type d'impact attendu (par exemple, coût, performances ou sécurité). Si la catégorie est Coût, l'impact inclut également une projection de coût. La projection des coûts indique le montant que vous engagerez si vous acceptez la recommandation.

Opération

L'attribut Operation désigne l'action individuelle qui doit être effectuée parmi les étapes atomiques d'une recommandation suggérée. Les opérations peuvent représenter les modifications suivantes :

  • Ajouter, supprimer ou remplacer des champs d'objets JSON dans une ressource Google Cloud.
  • Ajouter, supprimer ou remplacer des champs de tableau JSON dans une ressource Google Cloud. Les éléments de tableau JSON sont identifiés en définissant un filtre sur le chemin.
  • Ajouter une nouvelle ressource Google Cloud.
  • Supprimer une ressource Google Cloud.
  • Opérations de test pour indiquer l'état d'origine de la ressource. Les opérations de test peuvent également servir à vérifier l'état actuel d'une ressource avant d'appliquer la recommandation.
  • Copier et déplacer des ressources et des champs Google Cloud.

Chaque opération (Operation) est généralement basée sur le format du Chemin JSON (RFC 6902) pour les correctifs. Ce RFC a été sélectionné, car il fournit un moyen plus cohérent de refléter les modifications de ressources, y compris les scénarios complexes couramment rencontrés dans Google Cloud. Par exemple, les recommandations IAM impliquent des tableaux imbriqués pour refléter le remplacement d'une liaison de rôle d'un membre par un autre rôle.

Pour chaque ressource, une liste de modifications (vue comparative) peut être générée de la manière suivante :

  • État d'origine : les opérations de test représentent la valeur d'origine d'un champ. Ceci représente la partie gauche de la vue comparative.
  • État recommandé : les opérations autres que des tests représentent les modifications recommandées par champ. Il s'agit du côté droit de la vue comparative.

Groupes d'opérations

Un groupe d'opérations est un ensemble de plusieurs opérations à exécuter dans un ordre spécifique lorsque vous appliquez une recommandation. Une recommandation peut être associée à un ou plusieurs groupes d'opérations. Les groupes d'opérations sont stockés dans le champ operationGroups de l'entité Recommendation.

Par exemple, une recommandation suggérant de modifier le type de machine d'une instance de VM pour un groupe d'instances Compute Engine comporte deux groupes d'opérations : l'un permettant de modifier le type de machine dans le modèle d'instance et l'autre permettant d'appliquer la modification à un groupe d'instances spécifique.

Étant donné que le premier ensemble d'opérations doit être terminé avant le démarrage du second, ils sont définis comme deux groupes d'instances distincts dans la recommandation.

Un groupe d'opérations peut inclure une opération de test. Les opérations de test effectuent des contrôles pour vérifier si une recommandation est toujours valide. La recommandation qui suggère une modification du type de machine de l'instance de VM comporte une opération de test qui permet de vérifier si le type de machine actuel est identique à celui utilisé.

État

Une fois proposées, les recommandations doivent passer par plusieurs états. Une recommandation peut avoir les états suivants :

  • ACTIVE, ce qui signifie que la recommandation a été effectuée, mais qu'aucune action n'a été exécutée en conséquence. La recommandation peut être appliquée en la revendiquant. Les recommandations actives peuvent être mises à jour lorsque les ressources sont modifiées.
  • CLAIMED, ce qui signifie que vous ou un autre processus avez revendiqué la recommandation et qu'une action est en cours d'exécution pour la mettre en œuvre. Lorsqu'une recommandation est revendiquée, l'outil de recommandation ne la met pas à jour lorsque les ressources sont modifiées.
  • SUCCEEDED, ce qui signifie que vous (ou un autre processus) avez appliqué la recommandation à la ressource associée.
  • FAILED, ce qui signifie qu'une tentative d'application de la recommandation a échoué.
  • DISMISSED, ce qui signifie que vous ou un autre processus avez ignoré la recommandation et qu'elle n'a pas été appliquée à la ressource associée. Cet état empêche la recommandation d'apparaître dans la liste des recommandations. Il est généralement appliqué par un administrateur qui a annulé la recommandation pour diverses raisons. Cela empêche également une recommandation de passer à l'état CLAIMED.

Les informations sur l'état de la recommandation sont stockées dans le champ stateInfo de l'entité Recommendation. Ces informations incluent l'état lui-même de la recommandation et toutes les métadonnées d'état supplémentaires de chaque outil de recommandation.

Lorsqu'une recommandation est passée à l'état CLAIMED, SUCCEEDED ou FAILED, son contenu n'est pas mis à jour et la durée de vie de la recommandation est de 90 jours à partir de la date de modification de l'état.

etag

Un eTag est une empreinte unique qui identifie l'état actuel d'une recommandation. Chaque fois que la recommandation change, une nouvelle valeur eTag est attribuée. Cette valeur est stockée dans le champ etag de l'entité Recommender.

Après avoir récupéré une recommandation à partir d'un outil de recommandation à l'aide des commandes gcloud ou des appels d'API, vous devez la référencer dans les opérations suivantes à l'aide de l'ID de recommandation et de l'ETag. Ainsi, les opérations ne sont effectuées que si la recommandation n'a pas été modifiée depuis la dernière récupération.

Métadonnées d'état

Lorsque vous revendiquez une recommandation ou que vous la marquez comme ayant réussi ou échoué, vous pouvez inclure des métadonnées supplémentaires sur l'opération aux métadonnées d'état.

Les métadonnées sont spécifiées en tant que paires key:value. Exemple :

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

Les mises à jour du champ stateMetadata écrasent les métadonnées d'état existantes.

Dernière actualisation

La date de la dernière actualisation indique quand la recommandation a été actualisée pour la dernière fois par le processus de génération. Le contenu de la recommandation reflète l'état des ressources au moment de la dernière actualisation.

Exemples

L'exemple suivant présente une recommandation de dimensionnement pour une instance de VM dans 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"
  }
}

Pour plus d'exemples de recommandations, consultez la documentation des outils de recommandation individuels dans Outils de recommandations.

Référence aux insights

Référence à un insight associé. Les références relient les recommandations à leurs insights associés, le cas échéant.