Recommandations

Outils de recommandation

Un recommender est un service sur Google Cloud qui fournit des recommandations d'optimisation pour les produits et ressources Google Cloud.

Chaque outil de recommandation vous permet d'afficher et de gérer ses recommandations et ses insights à l'aide d'un ou de plusieurs des clients suivants :

  • Centre de recommandations
  • En contexte à l'aide de l'interface utilisateur (UI) du service dans la console Google Cloud
  • API REST ou Google Cloud CLI

Pour en savoir plus sur les outils de recommandation et les clients compatibles, consultez la section Outils de recommandation.

Chaque outil de recommandation possède un ID de recommandation unique qui identifie le service. 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 à 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 de recommandation complet (par exemple, google.compute.instance.MachineTypeRecommender).
  • RECOMMENDATION_ID correspond à l'identifiant unique de 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. De nouveaux sous-types peuvent être introduits dans les outils de recommandation existants au fil du temps. Cette présentation fournit une liste de tous les outils de recommandation disponibles. Pour en savoir plus sur les sous-types de recommandations disponibles, consultez la documentation de l'outil de recommandation.

Impact de l'outil de recommandation

Un impact quantifie les avantages prévus de l'action recommandée. Chaque recommandation peut avoir les types d'impact suivants qui représentent les résultats qui peuvent se produire suite à l'application de la recommandation :

  • L'impact principal est obligatoire et il est stocké dans le champ primaryImpact de l'entité Recommendation.

  • Les impacts secondaires sont facultatifs et stockés dans le champ additionalImpact.

Il existe les types d'impact principal et secondaire suivants :

  • COST : montant estimé que vous prévoyez d'économiser (ou d'engager) si vous appliquez une recommandation donnée. Pour en savoir plus, reportez-vous au champ cost sous CostProjection.

  • PERFORMANCE : augmentation ou diminution estimée des performances. Notez que certaines recommandations de performances peuvent entraîner des coûts supplémentaires (par exemple, si une recommandation consiste à augmenter l'allocation du processeur ou de la mémoire sur une VM surexploitée).

  • SECURITY : amélioration estimée de l'état de sécurité. Pour en savoir plus, reportez-vous au champ details sous SecurityProjection.

  • MANAGEABILITY : réduction estimée des tâches répétitives manuelles.

  • SUSTAINABILITY : réduction estimée des émissions de carbone. Pour en savoir plus, reportez-vous au champ carbon_footprint_kg_co2 sous SustainabilityProjection et à la page Méthodologie de création de rapports de l'outil Empreinte carbone.

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 compte principal 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.

Priorité

Une priorité pour une recommandation permet d'indiquer les actions à effectuer en premier. Ce champ contient les valeurs P1, P2, P3 et P4, avec la valeur P4 par défaut définie comme priorité. Pour chaque recommender, il est possible de définir sa propre stratégie de priorité.

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.

Configuration

Grâce à la configuration de l'outil de recommandation, vous pouvez effectuer les opérations suivantes :

  • Personnaliser la manière dont les insights et les recommandations sont générés. Pour ce faire, vous devez modifier certains des paramètres de configuration utilisés pour générer ces insights et recommandations.
  • Chaque configuration de l'outil de recommandation commence par certaines valeurs par défaut pour chaque paramètre. Chaque paramètre est associé à une plage de valeurs que vous pouvez utiliser pour personnaliser la configuration.
  • La configuration active est celle que vous avez modifiée pour la dernière fois. Pour que chaque modification apportée à la configuration soit prise en compte, un délai de 48 heures peut être nécessaire.

Un exemple de configuration de l'outil de recommandation consiste à définir un seuil de processeur par défaut ou une période d'observation pour créer des recommandations qui correspondent mieux à vos charges de travail, vos applications et vos besoins en infrastructure.

Avec l'API de configuration, vous pouvez récupérer la configuration d'un outil de recommandation ou d'un type d'insight. Vous avez la possibilité de mettre à jour les paramètres de configuration d'un seul projet. Chaque configuration de l'outil de recommandation ou type d'insight nécessite des autorisations spécifiques pour afficher et modifier les paramètres de configuration.

Voici un exemple de réponse contenant des paramètres de configuration pour un outil de recommandation de VM inactives :

{
  "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"
}