Recomendaciones

Recomendadores

Un recomendador es un servicio de Google Cloud que proporciona recomendaciones de optimización para los productos y recursos de la plataforma.

Cada uno tiene un ID de recomendador único que identifica el servicio. 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 con respecto a la recomendación. Los recomendadores proporcionan recomendaciones en función del uso de los recursos, mediante el aprendizaje automático o la heurística. El recomendador almacena las recomendaciones 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 hizo 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 la 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 la consola de Google Cloud, la descripción aparece cuando haces clic para ver los detalles adicionales de la recomendación.

Subtipo de recomendador

Un recomendador puede 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. Con el tiempo, es posible que se incorporen nuevos subtipos a los recomendadores existentes. En esta descripción general, se proporciona una lista de todos los recomendadores disponibles. Consulta la documentación del recomendador para obtener más información sobre los subtipos de recomendación disponibles.

Impacto del recomendador

Un impacto cuantifica los beneficios proyectados de realizar la acción recomendada. Cada recomendación puede tener los siguientes tipos de impacto que representan los resultados que pueden ocurrir como resultado de la aplicación de la recomendación:

  • El impacto principal es obligatorio y se almacena en el campo primaryImpact de la entidad Recommendation.

  • Los impactos secundarios son opcionales y se almacenan en el campo additionalImpact.

Existen los siguientes tipos de impactos principales y secundarios:

  • COST: La cantidad estimada de dinero que se espera que ahorres (o generes) si aplicas una recomendación determinada. Consulta el campo cost de CostProjection para obtener más detalles.

  • PERFORMANCE: Aumento o disminución estimados del rendimiento. Ten en cuenta que algunas recomendaciones de rendimiento pueden generar costos adicionales (por ejemplo, si una recomendación es aumentar la asignación de CPU o memoria en una VM con uso excesivo).

  • SECURITY: Mejora estimada de la posición de seguridad. Consulta el campo details de SecurityProjection para obtener más detalles.

  • MANAGEABILITY: Reducción estimada del trabajo repetitivo manual.

  • SUSTAINABILITY: Reducción estimada de las emisiones de carbono. Para obtener más información, consulta el campo carbon_footprint_kg_co2 de SustainabilityProjection y la metodología de informes de Huella de carbono.

Operación

Una Operation es la acción individual que debe realizarse como uno de los pasos atómicos en 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 principal a una función diferente.

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

  • Estado original: Las operaciones de prueba representan el valor original de un campo. Esto representa el lado izquierdo de la vista de diferencias.
  • Estado recomendado: Las operaciones que no son de prueba representan los cambios recomendados por campo. Esto 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 se deben realizar en un orden específico cuando se aplica 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 en 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 de prueba. Las operaciones de prueba realizan verificaciones 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 hizo la recomendación.

Estado

Las recomendaciones pasan por muchas transiciones de estado después de que se proponen. Pueden tener los siguientes estados:

  • ACTIVE, lo que significa que se hizo la recomendación, pero no se tomaron medidas en respuesta a ella. La recomendación se puede aplicar si la reclamas. Las recomendaciones activas se pueden actualizar cuando cambian los recursos.
  • CLAIMED, lo que significa que tú o algún otro proceso reclaman la recomendación y que una respuesta a ella está en curso. Cuando se reclama una recomendación, el recomendador no la actualiza cuando cambian los recursos.
  • 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 y, por lo general, la aplica un administrador que la invalidó por varios motivos. 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 de la recomendación y cualquier metadato de estado adicional 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 recomendación, se asigna un valor de 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

Una prioridad para una recomendación ayuda a indicar qué acciones deben abordarse primero. Este campo viene con los valores P1, P2, P3 y P4 con P4 establecido como la 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 un metadato de estado existente.

Hora de la última actualización

La hora de la última actualización indica cuándo se actualizó la recomendación por última vez mediante el proceso de generación. 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.

Configuración

Mediante la configuración del recomendador, puedes hacer lo siguiente:

  • Personalizar la forma en que se generan las estadísticas y las recomendaciones modificando algunos de los parámetros de configuración que se usan para generar estas estadísticas y recomendaciones.
  • La configuración del recomendador comienza con algunos valores predeterminados para cada parámetro. Los parámetros tienen un rango de valores que puedes usar para personalizar la configuración.
  • La configuración activa es la que modificaste por última vez. Por cada cambio realizado en la configuración, la configuración toma hasta 48 horas en aplicarse.

Un ejemplo de una configuración de recomendador es establecer un límite de CPU predeterminado o un período de observación para crear recomendaciones que se adapten mejor a las necesidades de tus cargas de trabajo, aplicaciones y infraestructura.

Con la API de configuración, puedes recuperar la configuración para un recomendador o tipo de estadística. Tienes la opción de actualizar los parámetros de configuración para un solo proyecto. Cada configuración de recomendador o tipo de estadística requiere permisos específicos para ver y modificar los parámetros de configuración.

A continuación, se muestra una respuesta de ejemplo que contiene parámetros de configuración para un recomendador de VM inactivas:

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