Ejercicio: Configuración de una implementación azul-verde

Completado

En esta demostración, investigará la implementación azul-verde.

Pasos

Ahora se verá cómo se puede usar una canalización de versión para implementar implementaciones azul-verde.

Para empezará, creará un proyecto con una canalización de versión que pueda implementar de nuevo la plantilla Partes ilimitadas.

Implementación inicial de una aplicación

  1. Vaya al generador de demostraciones de Azure DevOps en un explorador: https://azuredevopsdemogenerator.azurewebsites.net y haga clic en Sign in (Iniciar sesión).

    Se le pedirá que inicie sesión si es necesario.

  2. En la ventana Create New Project (Crear proyecto) seleccione la organización existente, establezca Project Name (Nombre del proyecto) en PU Hosted (Hospedado en PU) y haga clic en Choose template (Elegir plantilla).

    Choose template.

  3. Haga clic en el proyecto PartsUnlimited (no en PartsUnlimited-YAML), luego en Select Template (Seleccionar plantilla) y después en Create Project (Crear proyecto). Cuando finalice la implementación, haga clic en Navigate to the project (Navegar hasta el proyecto).

  4. En el menú principal de PU Hosted, Pipelines (Canalizaciones), después en Builds (Compilaciones), luego en Queue (Cola) y por último en Run (Ejecutar) para iniciar una compilación.

    La compilar debería ser correcta.

    Nota:

    Es posible que aparezcan advertencias, pero en este tutorial se pueden omitir.

    Build succeeded with warnings.

  5. En el menú principal, haga clic en Releases (Versiones). Como había un desencadenador de integración continua implementado, se ha intentado una versión. Pero aún no se ha configurado la versión, por lo que se producirá un error. Haga clic en Edit (Editar) para entrar en el modo de edición de la versión.

    Release pipeline edit.

  6. Seleccione la fase Dev (Desarrollo) en la lista desplegable situada junto a Tasks (Tareas) y, después, haga clic para seleccionar la tarea Azure Deployment (Implementación de Azure).

  7. En el panel Azure resource group deployment (Implementación del grupo de recursos de Azure), seleccione la suscripción de Azure y, después, haga clic en Authorize (Autorizar) cuando se le solicite. Cuando finalice la autorización, elija una Location (Ubicación) para la aplicación web.

    Nota

    Es posible que en este momento se le pida que inicie sesión en Azure.

    Resource group deployment.

  8. Haga clic en Azure App Service Deploy (Implementar Azure App Service) en la lista de tareas para abrir su configuración. Vuelva a seleccionar la suscripción de Azure. Establezca Deployment slot (Ranura de implementación) en Staging (Almacenamiento provisional).

    Staging app service deploy.

    Nota:

    La plantilla crea un sitio de producción y dos ranuras de implementación: Desarrollo y ensayo. Se usará Almacenamiento provisional para el sitio Verde.

  9. En la lista de tareas, haga clic en Desarrollo, y en el panel Trabajo de agente, seleccione Azure Pipelines para el grupo de Agentes y windows-latest para la Especificación de agentes.

    Agent job configuration.

  10. En el menú superior, haga clic en Pipelines (Canalizaciones). Haga clic en la fase Dev (Desarrollo) y, en la ventana de propiedades, cambie el nombre por Sitio verde. Haga clic en la fase QA y después en Delete (Eliminar) y Confirm (Confirmar). Haga clic en la fase Production (Producción) y después en Delete (Eliminar) y Confirm (Confirmar). Haga clic en Save (Guardar) y después en OK (Aceptar).

    Green site stages complete.

  11. Mantenga el puntero sobre la fase Sitio verde y haga clic en el icono Clone (Clonar) cuando aparezca. Cambie Stage name (Nombre de la fase) a Producción. En la lista desplegable Tasks (Tareas), seleccione Producción.

    Production tasks.

  12. Haga clic en la tarea Azure App Service Deploy (Implementar Azure App Service) y desactive la opción Deploy to slot (Implementar en ranura). Haga clic en Save (Guardar) y después en OK (Aceptar).

    No deploy to slot.

    El sitio de producción no se implementa en una ranura de implementación. Se implementa en el sitio principal.

  13. Haga clic en Create release (Crear versión) y después en Create (Crear) para crear la versión. Tras crearse, haga clic en el vínculo de versión para ver su estado.

    Release link.

    Después de un tiempo, la implementación se debe realizar correctamente.

    Deployment succeeded for green site and production.

Prueba del sitio verde y el sitio de producción

  1. Abra la hoja del grupo de recursos ASPDOTNET creado por la implementación del proyecto en Azure Portal. Observe los nombres de las aplicaciones web que se han implementado. Haga clic para abrir el panel de la aplicación web Staging*. Copie la dirección URL del lado superior izquierdo.

    Resource group and URL.

  2. Abra una nueva pestaña del explorador y vaya a la URL que ha copiado. La aplicación tardará un tiempo en compilarse, pero debería aparecer el sitio web Verde (en el espacio de ensayo).

    Parts Unlimited site on staging.

Nota:

Puede saber que el espacio de ensayo está en uso por la presencia del sufijo -staging en la dirección URL del sitio web.

  1. Abra otra pestaña nueva del explorador y vaya a la misma dirección URL, pero sin la ranura -staging. El sitio de producción también debería funcionar.

    Production site.

Nota:

Deje abiertas las dos ventanas del explorador para más adelante en el tutorial.

Configuración del intercambio y la aprobación azul-verde

Ahora que los dos sitios funcionan, se configurará la canalización de versión para la implementación azul-verde.

  1. En Azure DevOps, en el menú principal del proyecto PU Hosted, haga clic en Pipelines (Canalizaciones), después en Releases (Versiones) y luego en Edit (Editar) para volver al modo de edición.

  2. Haga clic en la fase Producción, luego en Delete (Eliminar) y después en Confirm (Confirmar) para quitarla. Haga clic en +Add (+Agregar) para agregar una fase adicional y después en Empty job (Trabajo vacío) para la plantilla. Establezca Stage name (Nombre de la fase) en Intercambiar azul-verde.

    New swap blue-green stage.

  3. Haga clic en Variables y modifique el Scope (Ámbito) de WebsiteName a Release (Versión).

    Variable scope.

  4. En la lista desplegable Tasks (Tareas), haga clic para seleccionar la fase Intercambiar azul-verde. Haga clic + en la parte derecha de Agent Job (Trabajo del agente) para agregar una tarea nueva. En el cuadro Search (Buscar), escriba CLI.

    CLI search.

  5. Mantenga el puntero sobre la plantilla Azure CLI (CLI de Azure) y, cuando aparezca el botón Add (Agregar), haga clic y después haga clic para seleccionar la tarea Azure CLI (CLI de Azure) para abrir su panel de configuración.

    Azure CLI settings pane.

  6. Configure el panel de la siguiente manera, con la suscripción, una Script Location (Ubicación de script) de Inline script (Script en línea) y el Inline Script (Script en línea):

    Az webapp deployment slot swap -g $(ResourceGroupName) -n $(WebsiteName) --slot Staging --target-slot production

    Azure CLI configured.

  7. En el menú situado sobre la lista de tareas, haga clic en Pipeline (Canalización). Haga clic en el icono Pre-deployment conditions (Condiciones previas a la implementación) para la fase Intercambiar azul-verde y, después, en el panel Triggers (Desencadenadores), habilite Pre-deployment approvals (Aprobaciones previas a la implementación).

  8. Configúrese como aprobador, haga clic en Save (Guardar) y después en OK (Aceptar).

    Approver enabled.

Prueba del intercambio azul-verde

  1. En el menú principal de PU Hosted, haga clic en Repos (Repositorios) y después en Files (Archivos) para abrir los archivos del proyecto. Vaya al archivo siguiente.

    Index view code.

    Se realizará un cambio estético para ver que el sitio web se ha actualizado. Se cambiará la palabra tires (ruedas) en la rotación de la página principal por tyres para el público internacional.

  2. Haga clic en Edit (Editar) para permitir la edición y, después, busque la palabra tires y reemplácela por tyres. Haga clic en Commit (Confirmar) y Commit (Confirmar) para guardar los cambios y desencadenar una compilación y una versión.

Update tyres.

  1. En el menú principal, haga clic en Pipelines (Canalizaciones) y después en Builds (Compilaciones). Espere a que la compilación de integración continua se complete correctamente.

    Build succeeded.

  2. En el menú principal, haga clic en Releases (Versiones). Haga clic para abrir la versión más reciente (en la parte superior de la lista).

    Approval required.

    Ahora se le pide que apruebe el intercambio de implementación a Producción. Se comprobará primero la implementación verde.

  3. Actualice la pestaña del explorador Sitio verde (es decir, el espacio de ensayo) y compruebe si ha aparecido el cambio. Ahora se muestra la palabra modificada.

    Green site updated.

  4. Actualice la pestaña del explorador del sitio Producción y observe que todavía no está actualizado.

    Production site unchanged.

  5. Como está satisfecho con el cambio, en los detalles de la versión, haga clic en Approve (Aprobar), después en Approve (Aprobar) y espere a que se complete la fase.

    Swap completed.

  6. Actualice la pestaña del explorador del sitio Producción y compruebe que ahora tiene el código actualizado.

    Production site updated.

Notas finales

Si comprueba el sitio verde, verá que tiene la versión anterior del código.

Es la diferencia fundamental con el intercambio, en lugar de simplemente un proceso de implementación típico de un sitio de ensayo a otro. Tiene una opción de reserva rápida si cambia los sitios si es necesario.