Recomendaciones

Recomendadores

Un recomendador es un servicio en Google Cloud que proporciona recomendaciones de uso para los recursos de Cloud. Los recomendadores son específicos de un solo producto y tipo de recurso de Google Cloud. Un solo producto puede tener varios recomendadores, en los que cada uno proporciona un tipo diferente de recomendación para un recurso diferente.

Cada uno tiene un ID de recomendador único que identifica el servicio de forma interna. El ID del recomendador se usa cuando interactúas con recomendaciones mediante los comandos gcloud del recomendador, o las API de REST o RPC.

Para obtener más información, consulta Recomendadores.

Recomendaciones

Una recomendación es una sugerencia generada por una máquina para optimizar el uso de los recursos de Cloud. Incluye los pasos necesarios para tomar medidas en función de la recomendación. Los recomendaciones proporcionan recomendaciones basadas en tu uso de recursos, mediante el aprendizaje automático o la heurística. El recomendador almacena recomendaciones internamente mediante la entidad Recommendation.

Una recomendación tiene los siguientes atributos principales:

Nombre

El nombre de la recomendación se almacena en el campo name de la entidad Recommendation. Este es el nombre de la recomendación en el siguiente formato:

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

Donde:

  • TARGET_PROJECT_ID es el ID del proyecto en el que se realizó la recomendación.
  • LOCATION es la ubicación de Google Cloud en la que se encuentran los recursos asociados con las recomendaciones (por ejemplo, global o us-central1-a).
  • RECOMMENDER_ID es el ID del recomendador completamente calificado (por ejemplo, google.compute.instance.MachineTypeRecommender).
  • RECOMMENDATION_ID es un ID único para la recomendación.

Descripción

La descripción de recomendación se almacena en el campo description de la entidad Recommendation. Solo está disponible en inglés. Este es un texto legible que describe la recomendación. En Google Cloud Console, la descripción aparece cuando haces clic para ver detalles adicionales sobre las recomendaciones.

Subtipo de recomendador

Un recomendador podría tener subtipos para tipos específicos de recomendaciones. Por ejemplo, el recomendador de funciones de administración de identidades y accesos tiene los subtipos REPLACE_ROLE y REMOVE_ROLE. Se puede ingresar un subtipo nuevo cuando se deben realizar cambios significativos en recommendation.content o recommendation.primary_impact.category en una retrocompatibilidad. Consulta la sección Recomendaciones para ver una lista de subtipos de un recomendador determinado.

Impacto

Un impacto representa la propiedad de una recomendación para tener un beneficio cuantificable de realizar la acción recomendada.

Una recomendación puede tener los siguientes tipos de campos de impacto:

  • El impacto principal es obligatorio y se almacena en el campo primaryImpact de la entidad Recommendation. Representa el beneficio que puedes obtener cuando aplicas la recomendación.

  • Los impactos adicionales son opcionales y se almacenan en el campo additionalImpact. Representan resultados adicionales, positivos y negativos, que pueden ocurrir como resultado de la aplicación de la recomendación. Algunos ejemplos de impactos son el aumento de costos o las consideraciones de seguridad.

Los impactos en las recomendaciones tienen una categoría. La categoría es el tipo de impacto esperado. Esto puede corresponder a categorías, como costo, rendimiento o seguridad.

Estos son algunos ejemplos de impactos:

  • Si aplicas una recomendación con el impacto principal COST, el impacto también incluye una proyección de costo. Esta proyección de costos es la cantidad de dinero que se espera que incurras si aceptas la recomendación.

  • Si aplicas una recomendación con un impacto principal de PERFORMANCE, puede generar un impacto de costo adicional si se recomienda aumentar la CPU o la asignación de memoria para mejorar el rendimiento.

Operación

Un Operation es la acción individual que debe realizarse como uno de los pasos atómicos de una recomendación sugerida. Las operaciones pueden representar los siguientes cambios:

  • Agregar, quitar o reemplazar campos de objeto JSON en un recurso de Google Cloud.
  • Agregar, quitar o reemplazar campos de array JSON en un recurso de Google Cloud. Los elementos de array JSON se identifican mediante un filtro en la ruta.
  • Agregar un nuevo recurso de Google Cloud.
  • Borrar un recurso de Google Cloud.
  • Realizar operaciones de prueba para indicar la condición original del recurso. Las operaciones de prueba también se pueden usar para verificar el estado actual de un recurso antes de aplicar la recomendación.
  • Copiar y mover los recursos y campos de Google Cloud.

Cada Operation se basa de forma en cierta medida en el formato JSON Path (RFC 6902) para los parches. Se seleccionó este RFC porque proporciona una forma más coherente de reflejar los cambios de recursos, incluidas las situaciones complejas que se suelen encontrar en Google Cloud. Por ejemplo, las recomendaciones de IAM implican arrays anidados para reflejar el movimiento de la vinculación de una función de un miembro a una función diferente.

Para cada recurso, se puede generar una lista de cambios (vista basada en la diferencia) de la siguiente manera:

  • Estado original: Las operaciones de prueba representan el valor original de un campo. Representa el lado izquierdo de la vista de diferencias.
  • Estado recomendado: Las operaciones que no son de prueba representan los cambios recomendados por campo. Representa el lado derecho de la vista de diferencias.

Grupos de operaciones

Un grupo de operaciones es un conjunto de una o más operaciones que deben realizarse en un orden específico cuando aplicas una recomendación. Una recomendación puede tener uno o más grupos de operaciones. Los grupos de operaciones se almacenan en el campo operationGroups de la entidad Recommendation.

Por ejemplo, una recomendación que sugiere que cambies el tipo de máquina de instancia de VM para un grupo de instancias de Compute Engine tiene dos grupos de operaciones: uno en el que cambias el tipo de máquina en la plantilla de instancias y otro en el que aplicas el cambio a un grupo de instancias en particular.

Debido a que el primer conjunto de operaciones debe completarse antes de que se pueda iniciar el segundo, se definen como dos grupos de instancias diferentes en la recomendación.

Un grupo de operaciones puede incluir una operación test. Las operaciones de prueba realizan comprobaciones para garantizar que una recomendación siga siendo válida. La recomendación que sugiere cambiar el tipo de máquina de la instancia de VM tiene una operación de prueba que verifica si el tipo de máquina actual es el mismo que cuando se realizó la recomendación.

Estado

Las recomendaciones atraviesan muchas transiciones de estado después de proponerlas. Una recomendación puede tener los siguientes estados:

  • ACTIVE, lo que significa que se realizó la recomendación, pero no se realizó ninguna acción en respuesta a ella La recomendación se puede aplicar mediante el reclamo. Las recomendaciones activas se pueden actualizar cuando cambian los recursos.
  • CLAIMED, lo que significa que tú o algún otro proceso reclamó la recomendación y que una respuesta a esta está en curso. Cuando se reclama una recomendación, el recomendador no la actualiza cuando los recursos cambian.
  • SUCCEEDED, lo que significa que tú o algún otro proceso aplicaron la recomendación al recurso asociado.
  • FAILED, lo que significa que falló un intento de aplicar la recomendación.
  • DISMISSED, lo que significa que tú o algún otro proceso descartaron la recomendación sin aplicarla al recurso asociado. Este estado evita que la recomendación aparezca en la lista de recomendaciones. Por lo general, la aplica un administrador que la validó por varias razones. También evita que una recomendación pase al estado CLAIMED.

La información sobre el estado de la recomendación se almacena en el campo stateInfo de la entidad Recommendation. Esto incluye el estado en sí mismo de la recomendación y los metadatos del estado adicionales por recomendador.

Cuando se cambia una recomendación a los estados CLAIMED, SUCCEEDED o FAILED, el contenido de la recomendación no se actualiza, y esta tendrá una vida útil de 90 días desde el momento del cambio de estado.

etag

Una etag es una huella digital única que identifica el estado actual de una recomendación. Cada vez que se modifica la estadística, se asigna un valor etag nuevo Este valor se almacena en el campo etag de la entidad Recommender.

Después de recuperar una recomendación del recomendador mediante los comandos de gcloud o las llamadas a la API, debes hacer referencia a ella en las operaciones posteriores con el ID de recomendación y la ETag. Esto garantiza que las operaciones se realicen solo si la recomendación no cambió desde la última recuperación.

Prioridad

La prioridad de una recomendación ayuda a mostrar qué acciones deben abordarse primero. Este campo incluye los valores P1, P2, P3 y P4, con P4 establecido como prioridad predeterminada. Cada recomendador puede tener su propia estrategia de priorización definida.

Metadatos de estado

Cuando reclamas una recomendación o la marcas como exitosa o con errores, puedes incluir metadatos adicionales sobre la operación con metadatos de estado.

Los metadatos se especifican como pares key:value. Por ejemplo:

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

Las actualizaciones del campo stateMetadata reemplazan los metadatos de estado existentes.

Hora de la última actualización

La hora de la última actualización indica cuándo el proceso de generación actualizó la recomendación por última vez. El contenido de la recomendación refleja el estado de los recursos en la última actualización.

Ejemplos

En el siguiente ejemplo, se muestra una recomendación de tamaño para una instancia de VM en 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 obtener más ejemplos de recomendaciones, consulta la documentación de recomendadores individuales en Recomendadores.

Referencia de estadísticas

Referencia a una estadística asociada. Las referencias vinculan las recomendaciones con sus estadísticas asociadas, si las hubiere.