Si se produce un error en la ejecución de la canalización, se puede utilizar reversión para que el entorno vuelva a un estado estable anterior. Para usar la reversión, planifique un flujo de reversión y comprenda cómo implementarlo.

Un flujo de reversión indica los pasos necesarios para revertir un error en la implementación. El flujo adopta la forma de una canalización de reversión donde se incluyen una o varias tareas secuenciales, las cuales varían según el tipo de implementación que se ejecutó y en la que se produjo un error. Por ejemplo, la implementación y la reversión de una aplicación tradicional difieren de la implementación y la reversión de una aplicación de contenedor.

Para regresar a un buen estado de implementación, una canalización de reversión normalmente incluye tareas para:
  • Limpiar los estados o los entornos
  • Ejecutar un script especificado por el usuario para revertir los cambios
  • Implementar una revisión anterior de una implementación

Para agregar la reversión a una canalización de implementación existente, debe adjuntar la canalización de reversión a las tareas o etapas de la canalización de implementación que desee revertir antes de ejecutar la canalización de implementación.

Cómo configurar la reversión

Para configurar la reversión en la implementación, debe realizar lo siguiente:

  • Cree una canalización de implementación.
  • Identifique los puntos de error potenciales en la canalización de implementación que activarán la reversión para poder adjuntar la canalización de reversión. Por ejemplo, puede adjuntar la canalización de reversión a una condición o un tipo de tarea de sondeo en la canalización de implementación para comprobar si una tarea anterior se completó correctamente. Para obtener información sobre las tareas de condición, consulte Cómo utilizar enlaces de variables en una tarea de condición para ejecutar o detener una canalización en Code Stream.
  • Determine el alcance del error que activará la canalización de reversión, por ejemplo, un error de tarea o de etapa. También puede adjuntar la reversión a una etapa.
  • Decida qué tarea o tareas de reversión se deben ejecutar en caso de que se produzca un error. Creará la canalización de reversión con esas tareas.

Puede crear manualmente una canalización de reversión, o bien Code Stream puede crearle una. También puede seleccionar una canalización compartida para la reversión.

  • Con un lienzo en blanco, puede crear manualmente una canalización de reversión que siga un flujo en paralelo a una canalización de implementación existente. A continuación, debe adjuntar la canalización de reversión a una o varias tareas de la canalización de implementación que activan la reversión al producirse un error.
  • Con una plantilla de canalización inteligente, puede configurar una canalización de implementación con la acción de reversión. A continuación, Code Stream crea automáticamente una o varias canalizaciones de reversión predeterminadas con tareas predefinidas que revierten la implementación en caso de error.

    Para obtener un ejemplo detallado sobre la forma de configurar una canalización de CD con la reversión mediante una plantilla de canalización inteligente, consulte Cómo revertir una implementación en Code Stream.

  • Al utilizar una canalización compartida para la reversión, no es necesario crear varias canalizaciones de reversión que realicen la misma función. Puede seleccionar la canalización compartida para revertir las tareas de las canalizaciones en diferentes proyectos.

    Para ver cómo configurar una tarea de canalización con reversión mediante una canalización compartida, consulte Crear y usar canalizaciones compartidas en Code Stream.

Qué sucede si la canalización de implementación tiene varias tareas o etapas con reversión

Si tiene varias tareas o tareas y etapas con la reversión agregada, tenga en cuenta que la secuencia de reversión varía.
Tabla 1. Determinación de la secuencia de reversión
Si agrega la reversión a... Cuándo se realiza la reversión...
Tareas paralelas Si se produce un error en una de las tareas paralelas, la reversión de la tarea se realiza después de que todas las tareas paralelas se hayan completado correctamente o con errores. La reversión no se realiza inmediatamente después de que se produce un error en la tarea.
Tanto la tarea dentro de una etapa como la etapa Si se produce un error en una tarea, se ejecuta la reversión de la tarea. Si la tarea se encuentra en un grupo de tareas paralelas, la reversión de la tarea se ejecuta después de que todas las tareas paralelas se hayan completado correctamente o con errores. La reversión de la etapa se ejecuta después de que la tarea se completa correctamente o con errores.

Considere una canalización que tiene:

  • Una etapa de producción con reversión
  • Un grupo de tareas paralelas, cada tarea con su propia reversión

La tarea con el nombre UPD Deploy US tiene la canalización de reversión RB_Deploy_US. Si se produce un error en UPD Deploy US, la reversión sigue el flujo definido en la canalización RB_Deploy_US.

En una etapa de canalización con tareas paralelas, la pestaña Reversión muestra la canalización de reversión utilizada si se produce un error en la tarea.

Si se produce un error en UPD Deploy US, la canalización RB_Deploy_US se ejecuta después de que UPD Deploy UK y UPD Deploy AU se hayan completado correctamente o con errores. La reversión no se realiza inmediatamente después de que se produce un error en UPD Deploy US. Debido a que la etapa de producción también tiene reversión, después de que se ejecuta la canalización RB_Deploy_US, se ejecuta la canalización de reversión de la etapa.