Cloud Deploy admite trabajos de análisis que usan alertas generadas por Google Cloud Observability en función de métricas y otros datos también de Google Cloud Observability. Sin embargo, también puedes extender Cloud Deploy para usar otros proveedores de métricas. En este documento, se describe cómo configurar y usar un trabajo de análisis, y los requisitos para un contenedor personalizado que incluya la lógica para analizar las métricas del proveedor que elijas.
Antes de comenzar
-
Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Verifica que tengas los permisos necesarios para completar esta guía.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita las APIs de Compute Engine y Cloud Deploy:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Verifica que tengas los permisos necesarios para completar esta guía.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita las APIs de Compute Engine y Cloud Deploy:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. 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:
-
Ejecutor de trabajos de Cloud Deploy (
roles/clouddeploy.jobRunner) -
Usuario de cuenta de servicio de IAM (
roles/iam.serviceAccountUser) -
Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer)
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 trabajos de análisis, pídele a tu administrador que otorgue los siguientes roles de IAM a la cuenta de servicio de Cloud Deploy en tu proyecto:
-
Usuario de cuenta de servicio de IAM (
roles/iam.serviceAccountUser) -
Actualizador de Cloud Deploy (
roles/clouddeploy.releaser) -
Operador de Cloud Deploy (
roles/clouddeploy.operator)
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 un trabajo de análisis personalizado
Un trabajo de análisis personalizado es igual a un trabajo de análisis que usa alertas de Google Cloud Observability, pero el trabajo personalizado usa una o más tareas que hacen referencia a contenedores personalizados y a los comandos para ejecutar en esos contenedores y procesar datos de tu proveedor de métricas.
En esta sección, se describe cómo configurar un trabajo de análisis de Cloud Deploy que usa un proveedor de supervisión que no es deGoogle Cloud .
La sección analysis se puede usar directamente dentro de la configuración de una estrategia de implementación (strategy.standard.analysis, para una estrategia estándar). Si deseas configurar el análisis por fase, usa una versión canary personalizada (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).
strategy:
standard:
analysis:
duration: DURATION
customChecks:
- id: CHECK_ID
frequency: FREQUENCY
task:
type: container
image: IMAGE_NAME
command: COMMAND
args: [ARGS]
env:
[VAR_NAME: VALUE]
Aquí:
DURATIONEs 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_IDEs un ID para la verificación individual. Este ID debe ser único dentro de este trabajo de análisis.
FREQUENCYEs la frecuencia con la que se ejecuta la verificación individual, expresada en segundos.
IMAGE_NAMEEs la ruta de acceso y el nombre que identifican tu imagen de contenedor.
COMMANDEs el comando que se ejecutará en ese contenedor, por ejemplo, una secuencia de comandos de shell (
/bin/bash).ARGSEs una lista de argumentos para ese comando. Esta es una lista separada por comas. Si tu COMMAND_TO_RUN es "/bin/sh", uno de los argumentos aquí sería
-c, y otro argumento sería todo el comando que deseas ejecutar en el shell que invocas.VAR_NAMEEs el nombre de una variable de entorno que se pasará al contenedor. Usas variables de entorno para configurar el comportamiento del contenedor. Es decir, las variables y sus valores le indican al contenedor qué supervisar específicamente en el proveedor de métricas.
Aquí puedes usar parámetros del sistema como variables de entorno.
VALUEEs el valor de cada variable de entorno. Cloud Deploy no hace nada con estas variables de entorno, excepto pasarlas, con sus valores, a tu contenedor. Tu contenedor es el encargado de usar los valores en tu lógica de análisis.
Cada verificación en una definición de análisis personalizado incluye una tarea que hace referencia a un contenedor, los comandos que se ejecutarán en ese contenedor y las variables de entorno aplicables que se pasarán a ese contenedor.
El contenedor personalizado
En el caso del análisis personalizado, el contenedor que proporcionas es responsable de analizar la telemetría, los registros o cualquier otro dato del proveedor de métricas que utilices. El trabajo de análisis de Cloud Deploy espera el código de retorno del contenedor.
Qué debe hacer el contenedor personalizado
El contenedor personalizado es responsable de transferir datos de tu proveedor de métricas, determinar si las métricas, los registros o cualquier otro dato indican que la aplicación funciona correctamente y devolver los resultados a Cloud Deploy.
Qué debe devolver el contenedor personalizado
Cloud Deploy no requiere nada del contenedor personalizado, más allá de que devuelva un código de salida cero o distinto de cero. Si el contenedor devuelve un código de salida distinto de cero, el análisis falla.
El contenedor puede escribir los resultados en un archivo llamado results.json (en formato JSON), ubicado en el bucket de Cloud Storage que proporciona Cloud Deploy. El archivo contendrá los metadatos en forma de pares clave-valor. No es obligatorio.
Variables de entorno disponibles
Cloud Deploy también proporciona y completa las siguientes variables de entorno en el entorno de ejecución. Puedes usar estas variables de entorno como parte de tu gancho de implementación, trabajo de verificación o destino personalizado de renderización o implementación.
ANTHOS_MEMBERSHIPPara los destinos de tipo
ANTHOS, es el nombre del recurso completamente especificado de la membresía de Anthos.CLOUD_RUN_LOCATIONPara los destinos de tipo
RUN, es la región en la que se implementa el servicio de Cloud Run.CLOUD_RUN_PROJECTPara los destinos de tipo
RUN, es el proyecto en el que se creó el servicio de Cloud Run.CLOUD_RUN_SERVICEPara los destinos de tipo
RUN, es el nombre del servicio de Cloud Run implementado.CLOUD_RUN_SERVICE_URLSPara los destinos de tipo
RUN, son las URLs (lista separada por comas) que los usuarios finales usarán para acceder a tu servicio. Puedes encontrarlos en los detalles del servicio de Cloud Run de tu servicio, en la consola deGoogle Cloud . Cloud Run genera las URLs después de que se implementan correctamente tus servicios de Cloud Run. Por lo tanto, esta variable de entorno solo está disponible en los hooks posteriores a la implementación y en los trabajos de verificación.CLOUD_RUN_REVISIONPara los destinos de tipo
RUN, es la revisión específica del servicio de Cloud Run.GKE_CLUSTERPara los destinos de tipo
GKE, es el nombre del recurso completamente especificado del clúster de Google Kubernetes Engine, por ejemplo,projects/p/locations/us-central1/clusters/dev.TARGET_TYPEEs el tipo de tiempo de ejecución específico del destino. Puede ser
GKE,ANTHOSoRUN. En el caso de los objetivos personalizados, no se establecerá este parámetro.CLOUD_DEPLOY_LOCATIONEs la región que contiene los recursos de Cloud Deploy.
CLOUD_DEPLOY_DELIVERY_PIPELINEEs el ID de la canalización de entrega.
CLOUD_DEPLOY_TARGETEs el ID del objetivo.
CLOUD_DEPLOY_PROJECTNúmero del proyecto Google Cloud que contiene los recursos de Cloud Deploy.
CLOUD_DEPLOY_PROJECT_IDID del proyecto Google Cloud .
CLOUD_DEPLOY_RELEASEEs el ID de la versión en la que se ejecutarán los hooks.
CLOUD_DEPLOY_ROLLOUTEs el ID del lanzamiento que contiene los trabajos de los hooks.
CLOUD_DEPLOY_JOB_RUNEs el ID de la ejecución del trabajo que representa la ejecución actual del trabajo.
CLOUD_DEPLOY_PHASEEs la fase de la versión que contiene el trabajo para el gancho de implementación, el trabajo de verificación o la renderización o implementación personalizadas.
¿Qué sigue?
Obtén más información para configurar el análisis de implementación.
Consulta el esquema de configuración para el análisis en la referencia de configuración de Cloud Deploy.
Obtén más información sobre la automatización de la implementación.
Obtén más información sobre las estrategias de implementación.