La reversión se configura como una canalización con tareas que devuelven la implementación a un estado estable anterior después de un error en una canalización de implementación. Es necesario asociar la canalización de reversión a las tareas o etapas que desee revertir en caso de que se produzca un error.

Los motivos de la reversión pueden variar según su función.

  • Como ingeniero de publicaciones, desea que VMware Code Stream compruebe que el proceso de publicación se complete correctamente para saber si debe continuar con la publicación o revertirla. Los posibles errores incluyen un error en la tarea, un rechazo en las operaciones de usuario o un umbral de métricas excedido.
  • Como propietario de un entorno, desea volver a implementar una versión anterior para poder revertir rápidamente el entorno a un estado correcto conocido.
  • Como propietario de un entorno, desea admitir la reversión de una implementación azul-verde para poder minimizar el tiempo de inactividad de las versiones con errores.

Cuando se utiliza una plantilla de canalización inteligente para crear una canalización de entrega continua con la opción de reversión activada, la reversión se agrega automáticamente a las tareas en la canalización. En este caso práctico, utilizará la plantilla de canalización inteligente para definir la reversión de una implementación de aplicación en un clúster de Kubernetes mediante el modelo de implementación de actualización gradual. La plantilla de canalización inteligente crea una canalización de implementación y una o varias canalizaciones de reversión.

  • En la canalización de implementación, se requiere la reversión si se produce un error en las tareas Actualizar implementación o Verificar implementación.
  • En la canalización de reversión, se actualiza la implementación con una imagen antigua.

También puede crear manualmente una canalización de reversión con una plantilla en blanco. Antes de crear una canalización de reversión, se recomienda planificar el flujo de reversión. Para obtener más información de fondo sobre la reversión, consulte Planificar una reversión en VMware Code Stream.

Requisitos previos

  • Compruebe si es un miembro de un proyecto en VMware Code Stream. Si no lo es, solicite al administrador de VMware Code Stream que lo agregue como miembro de un proyecto. Consulte Cómo agregar un proyecto en VMware Code Stream.
  • Configure los clústeres de Kubernetes donde la canalización implementará la aplicación. Configure un clúster de desarrollo y un clúster de producción.
  • Cree los endpoints de producción y desarrollo de Kubernetes que implementan la imagen de la aplicación en los clústeres de Kubernetes.
  • Compruebe que tiene una configuración de registro de Docker.
  • Compruebe que tiene un archivo YAML de Kubernetes para aplicarlo a la implementación.
  • Familiarícese con la plantilla de canalización inteligente de entrega continua (Continuous Delivery, CD). Consulte Planificar una compilación nativa de CD en VMware Code Stream antes de usar la plantilla de canalización inteligente.

Procedimiento

  1. Haga clic en Canalizaciones > Nueva canalización > Plantilla inteligente > Entrega continua.
  2. Introduzca la información en la plantilla de canalización inteligente.
    1. Seleccione un proyecto.
    2. Introduzca un nombre para la canalización, como RollingUpgrade-Example.
    3. Seleccione los entornos de la aplicación. Para agregar la reversión a la implementación, debe seleccionar Prod.
    4. Haga clic en Seleccionar, elija un archivo YAML de Kubernetes y haga clic en Procesar.
      La plantilla de canalización inteligente muestra los servicios y los entornos de implementación disponibles.
    5. Seleccione el servicio que utilizará la canalización para la implementación.
    6. Seleccione los endpoints del clúster para los entornos Dev y Prod.
    7. Como origen de imagen, seleccione Entrada de tiempo de ejecución de canalización.
    8. Como modelo de implementación, seleccione Actualización gradual.
    9. Haga clic en Revertir.
    10. Proporcione la URL de comprobación de estado.
    Crear una canalización de reversión
  3. Para crear la canalización llamada RollbackUpgrade-Example, haga clic en Crear.

    La canalización RollbackUpgrade-Example aparece con el icono de reversión en tareas de las etapas de desarrollo y producción que se pueden revertir.

    Canalización RollbackUpgrade-Example

  4. Cierre la canalización.

    En la página Canalizaciones, verá la canalización que ha creado y una nueva canalización para cada etapa de esta.

    • RollingUpgrade-Example. La canalización que ha creado está inhabilitada de forma predeterminada para garantizar que la revise antes de ejecutarla.
    • RollingUpgrade-Example_Dev_Rollback. Esta canalización de desarrollo de reversión se invoca en caso de errores en las tareas de la etapa de desarrollo, como las tareas de crear servicio, crear secreto, crear implementación y verificar implementación. La canalización de desarrollo de reversión está habilitada de forma predeterminada para garantizar la reversión de las tareas de desarrollo.
    • RollingUpgrade-Example_Prod_Rollback. Esta canalización de producción de reversión se invoca en caso de errores en las tareas de la etapa de producción, como la fase 1 de implementación, la fase 1 de verificación, la fase de implementación de lanzamiento, la fase de finalización de lanzamiento y la fase de verificación de lanzamiento. La canalización de producción de reversión está habilitada de forma predeterminada para garantizar la reversión de las tareas de producción.
    Canalización principal, prod_rollback y dev_rollback
  5. Habilite y ejecute la canalización que ha creado.
    Cuando inicie la ejecución, se le pedirán los parámetros de entrada. Proporcione la imagen y la etiqueta del endpoint en el repositorio de Docker que está utilizando.
  6. En la página Ejecuciones, seleccione Acciones > Ver ejecución para ver la ejecución de la canalización.

    La canalización se muestra como RUNNING y pasa por las tareas de la etapa de desarrollo. Si la canalización no logra ejecutar una tarea durante la etapa de desarrollo, la canalización denominada RollingUpgrade-Example_Dev_Rollback se activa para revertir la implementación, y el estado de la canalización cambia a ROLLING_BACK.

    Reversión

    Después de la reversión, la página Ejecuciones muestra dos ejecuciones de la canalización RollingUpgrade-Example.

    • La canalización que creó y que se revirtió muestra ROLLBACK_COMPLETED.
    • La canalización de desarrollo de reversión que se activó para realizar la reversión muestra COMPLETED.

    Canalizaciones ejecutadas tras reversión

Resultados

Enhorabuena. Definió correctamente una canalización con reversión y observó a VMware Code Stream revertir la canalización al punto de error.