Verificar la implementación

En este documento se describe cómo verificar un despliegue de Cloud Deploy.

Puedes configurar Cloud Deploy y Skaffold para verificar que una aplicación que hayas desplegado en cualquier destino funcione correctamente. La verificación se realiza con tu propia imagen de prueba y configuras Cloud Deploy y Skaffold para que ejecuten esas pruebas una vez que finalice el despliegue.

De forma predeterminada, la verificación del despliegue se ejecuta en el entorno de ejecución de Cloud Deploy, pero también puedes configurarla para que se ejecute en el mismo clúster en el que se ejecuta la aplicación.

¿Cómo funciona la verificación de la implementación?

  1. Configura Skaffold para la verificación.

    Esta configuración identifica la imagen o las imágenes de contenedor que se van a usar para ejecutar pruebas, así como los comandos específicos (por ejemplo, una secuencia de comandos) que se van a ejecutar desde esa imagen de contenedor.

    Puedes especificar más de una imagen de contenedor. Si especifica varios contenedores, se ejecutarán en paralelo, no de forma secuencial.

  2. Configura uno o varios objetivos en tu canalización de entrega para verificar la implementación.

    Esta configuración habilita la verificación de las cargas de trabajo implementadas en ese destino.

  3. Una vez que se ha desplegado un lanzamiento (skaffold apply), Cloud Deploy ejecuta el comando skaffold verify en el entorno de ejecución de Cloud Deploy.

    En el caso de los despliegues en Google Kubernetes Engine y en clústeres adjuntos de GKE, puedes ejecutar de forma opcional el contenedor (o los contenedores) de verificación en el mismo clúster en el que se ejecuta el contenedor de la aplicación.

  4. Skaffold invoca la prueba o las pruebas especificadas en la estrofa verify de tu archivo skaffold.yaml para ejecutarlas en la aplicación desplegada.

  5. Si las pruebas se han completado correctamente o no, se indica si la verificación se ha realizado correctamente o no.

    • El éxito de la verificación se determina mediante el código de salida del contenedor ejecutado.

      0 indica que se ha completado correctamente. Un código de salida distinto de cero indica un error. Para generar el resultado de verificación previsto, asegúrate de que el contenedor salga con el código de salida adecuado. Si se ejecuta más de un contenedor como parte de la verificación, todos deben completarse correctamente para que la verificación se realice correctamente.

    • Si la verificación falla, la implementación también fallará.

    • Si una implementación falla durante la verificación, puedes verlo inspeccionando la implementación:

      Detalles en la consola Google Cloud sobre el lanzamiento, incluido el estado de verificación

  6. Puedes ignorar o volver a intentar una verificación fallida.

    También puedes finalizar un trabajo de verificación en curso.

Componentes utilizados para la verificación

El recurso lanzamiento incluye los siguientes objetos, que admiten la verificación de la implementación:

  • Fase

    Conjunto de operaciones (trabajos) de un lanzamiento que se agrupan de forma lógica. Por ejemplo, una implementación o una implementación y una verificación.

  • Tarea

    La operación específica que se va a realizar en un lanzamiento, como desplegar o verificar.

  • Ejecución de la tarea

    La ejecución de la tarea, que es un elemento secundario del recurso de lanzamiento, es una instancia de una tarea. Por ejemplo, un intento de implementación.

Para obtener más información sobre los recursos de Cloud Deploy, consulta Arquitectura de servicio de Cloud Deploy.

Notificaciones generadas por la verificación de despliegues

Cloud Deploy genera mensajes de Pub/Sub y los publica para los siguientes eventos:

  • Creación, actualización y eliminación de ejecuciones de trabajos

    Estas notificaciones se publican en el tema clouddeploy-resources y contienen los siguientes atributos:

    • Resource
    • ResourceType (JobRun)
    • Action (Create, Update, Delete)
    • ProjectNumber
    • Location
    • TargetId
    • DeliveryPipelineId
    • ReleaseId
    • RolloutId
    • JobRunId

A continuación, se muestra un ejemplo de mensaje de Pub/Sub para una creación de ejecución de un trabajo, publicado en el tema clouddeploy-resources:

{
    "ackId": "UAYWLF1GSFE3GQhoUQ5PXiM_NSAoRRAGAE8CKF15MFcrQVh9Dz4NGXJ9YXRiWRIJBkUHeF9cEQ1iXE5EB0nq0KDVV1dKXxYGAExQeVhbHQVoWVh0Bnn7h5nK-8HjYwk9OqKarPdtO4PY2fNHZiI9XhJLLD5-My5FQV5AEkw4G0RJUytDCypYEU4EISE-MD5FU0Q",
    "message":