Define trabajos de análisis que usan Google Cloud Observability

En este documento, se describe cómo configurar el análisis en tu canalización de entrega si usas Google Cloud Observability como tu sistema de supervisión.

Si usas un proveedor de supervisión diferente, debes definir un análisis personalizado, que incluye la creación de un contenedor para transferir y evaluar métricas y otros datos de tu proveedor.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Verifica que tengas los permisos necesarios para completar esta guía.

  6. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

  7. Habilita las APIs de Compute Engine y Cloud Deploy si alguna aún no está habilitada:

    Roles necesarios para habilitar las APIs

    Para habilitar APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com
  8. Instala Google Cloud CLI.

  9. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  10. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  11. Verifica que tengas los permisos necesarios para completar esta guía.

  12. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

  13. Habilita las APIs de Compute Engine y Cloud Deploy si alguna aún no está habilitada:

    Roles necesarios para habilitar las APIs

    Para habilitar APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com

Roles obligatorios

Para obtener los permisos que necesitas para crear y usar trabajos de análisis, pídele a tu administrador que te otorgue los siguientes roles de IAM en la cuenta de tu proyecto:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Para garantizar que la cuenta de servicio de Cloud Deploy tenga los permisos necesarios para crear y usar automatizaciones, pídele a tu administrador que otorgue los siguientes roles de IAM a la cuenta de servicio de Cloud Deploy en tu proyecto:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Es posible que tu administrador también pueda otorgar a la cuenta de servicio de Cloud Deploy los permisos necesarios a través de roles personalizados o de otros roles predefinidos.

Configura el análisis en Cloud Deploy

La configuración del análisis de implementación consta de los siguientes pasos:

  1. Define una o más políticas de alertas.

  2. Configura un trabajo de análisis en tu canalización de entrega.

  3. Ejecuta tu canalización para ejecutar tu análisis.

Definir políticas de alertas

Defines políticas de alertas para recibir métricas de Google Cloud Observability. Una política de alertas de Google Cloud Observability describe cuándo y cómo quieres recibir notificaciones cuando los datos de supervisión cumplen con criterios específicos.

El análisis de Cloud Deploy usa estas alertas para tomar medidas según las circunstancias que indican las alertas.

Por ejemplo, puedes configurar una política de alertas en tu aplicación en producción para enviar una alerta si la latencia de respuesta HTTP es demasiado alta y, según esa alerta, tu trabajo de análisis puede activar una automatización de repairRolloutRule para revertir la versión.

Como otro ejemplo, puedes crear una política de alertas similar en tu aplicación implementada en tu entorno de pruebas. Si no se activa ninguna alerta durante el trabajo de análisis, ese trabajo puede activar una automatización de promoteReleaseRule para promover la versión a producción.

Crea el análisis

Para crear un trabajo de análisis para la canalización de entrega de tu aplicación, configura ese análisis dentro de la configuración de la canalización y, luego, aplica ese archivo de configuración.

Configura un trabajo de análisis

En esta sección, se describe cómo configurar un trabajo de análisis de Cloud Deploy para usarlo con Google Cloud Observability.

Tu trabajo de análisis se configura como parte de la definición de la canalización de entrega, dentro de una estrofa strategy. Puede estar dentro de cualquier estrategia, ya sea canary o standard. Si deseas configurar el análisis por fase, usa un canary personalizado (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).

Un trabajo de análisis consta de los siguientes elementos:

  • Una duración

    Esta duración especifica durante cuánto tiempo se ejecuta el trabajo de análisis. Si la duración vence y no se detectan alertas de Google Cloud Observability, el análisis se considera exitoso y el lanzamiento continúa.

  • Una o más verificaciones, que corresponden a las políticas de alertas en tu sistema de supervisión

    Cada verificación incluye lo siguiente:

    • Un ID

    • Una o más políticas de alertas

    Es decir, referencias a una o más políticas de alertas de Google Cloud Observability.

    • Una o más etiquetas, que se usan para identificar una política de alertas específica. Dado que una política de alertas de Google Cloud Observability puede supervisar muchas aplicaciones, estas etiquetas nos permiten restringir la verificación a una o más aplicaciones específicas.

    Ten en cuenta que puedes usar parámetros del sistema como claves para las etiquetas aquí.

A continuación, se muestra la sintaxis para configurar un trabajo de análisis cuando se usa una estrategia de implementación de standard:


strategy:
  standard:
    analysis:
      duration: DURATION
      googleCloud:
        alertPolicyChecks:
        - id: CHECK_ID
          alertPolicies:
          - [ALERT_POLICY_ID]
          labels:
            [KEY: VALUE]

Aquí:

  • DURATION

    Es la duración, en segundos, del trabajo de análisis. Una vez que vence el plazo, el trabajo finaliza. Si el análisis falla (el contenedor devuelve un código de salida distinto de cero), el trabajo finaliza (FAILED) antes de que venza la duración.

  • CHECK_ID

    Es el ID de una verificación individual en tu análisis. Cada ID debe ser único dentro de este trabajo de análisis. Puedes tener una o más verificaciones en un trabajo de análisis.

  • ALERT_POLICY_ID

    Es el ID de la política de alertas de Google Cloud Observability que usas para la verificación. Para encontrar el ID de la política de alertas, ejecuta gcloud monitoring policies list. Necesitas el ID completamente calificado, que se ve de la siguiente manera:

    projects/project-redacted/alertPolicies/01234567890123456789

    Es posible que el identificador que se muestra incluya /conditions/13842666848149128276 después del ID de la política. No incluyas esto como parte del ID de la política.

  • KEY y VALUE

    Son un par clave-valor para una etiqueta, que se usará para considerar solo alertas específicas. Por ejemplo, podrías usar una etiqueta para que una verificación solo considere las alertas de una carga de trabajo específica.

    Aquí puedes usar parámetros del sistema para los valores.

    Este es un ejemplo en el que se usa un parámetro del sistema:

    labels:
     service_name: '${{render.metadata.cloud_run.service.name}}'
    

Esta configuración crea un trabajo de análisis. Aunque hay varias verificaciones, esta configuración crea solo un trabajo.

Si ninguna de las políticas de alertas configuradas envía alertas, este trabajo se completará correctamente y el lanzamiento continuará. Si alguna política activa una alerta, el trabajo se detiene con un estado de FAILED y la implementación falla (con un estado de FAILED, a menos que elijas ignorar la falla del trabajo).

Aplica el archivo de configuración de la canalización de entrega

Para crear una canalización de entrega con tu trabajo de análisis, aplica el archivo de configuración con el siguiente comando:

gcloud deploy apply FILE \
       --region=REGION \
       --project=PROJECT_ID

Reemplaza lo siguiente:

  • FILE

    Con el nombre de tu archivo de configuración de la canalización de entrega, clouddeploy.yaml o el nombre que le hayas asignado

  • REGION

    Con la región en la que crearás tu canalización de entrega.

  • PROJECT_ID

    Con el ID del proyecto en el que crearás esta canalización de entrega.

Ahora tienes una canalización de entrega en tu proyecto y un trabajo de análisis, que formará parte de la canalización cuando crees una versión.

¿Qué sigue?