Configuración de un entorno de ensayo en Azure Spring Cloud
Este artículo se aplica a: ✔️ Java
En este artículo se explica cómo configurar una implementación de ensayo con el patrón de implementación azul-verde en Azure Spring Cloud. La implementación azul-verde es un patrón de entrega continua de Azure DevOps que se basa en mantener una versión existente (azul) activa mientras se implementa una nueva (verde). En este artículo se muestra cómo llevar la implementación de ensayo a producción sin cambiar la implementación de producción.
Requisitos previos
- Instancia de Azure Spring Cloud con un plan de tarifa Estándar
- Extensión de Azure Spring Cloud para la CLI de Azure
En este artículo se usa una aplicación compilada a partir de Spring Initializr. Si quiere usar otra aplicación en este ejemplo, deberá realizar un sencillo cambio en una parte pública de la aplicación para diferenciar la implementación de ensayo de la de producción.
Sugerencia
Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar las instrucciones de este artículo. Incluye herramientas comunes de Azure preinstaladas, entre las que se incluyen las versiones más recientes de Git, JDK, Maven y la CLI de Azure. Si ha iniciado sesión en su suscripción a Azure, inicie la instancia de Cloud Shell. Para obtener más información, consulte Información general de Azure Cloud Shell.
Para configurar la implementación azul-verde en Azure Spring Cloud, siga las instrucciones de las secciones siguientes.
Instalación de la extensión de la CLI de Azure
Para instalar la extensión de Azure Spring Cloud para la CLI de Azure, use el siguiente comando:
az extension add --name spring-cloud
Preparación de la aplicación y las implementaciones
Para compilar la aplicación, siga estos pasos:
Genere el código de la aplicación de ejemplo mediante Spring Initializr con esta configuración.
Descargue el código.
Agregue el siguiente archivo de origen HelloController.java a la carpeta *\src\main\java\com\example\hellospring*:
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Cloud!"; } }Compile el archivo .jar:
mvn clean package -DskipTestsCree la aplicación en la instancia de Azure Spring Cloud:
az spring-cloud app create -n demo -g <resourceGroup> -s <Azure Spring Cloud instance> --assign-endpointImplemente la aplicación en Azure Spring Cloud:
az spring-cloud app deploy -n demo -g <resourceGroup> -s <Azure Spring Cloud instance> --jar-path target\hellospring-0.0.1-SNAPSHOT.jarModifique el código para la implementación de ensayo:
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Cloud! THIS IS THE GREEN DEPLOYMENT"; } }Vuelva a compilar el archivo .jar:
mvn clean package -DskipTestsCree la implementación verde:
az spring-cloud app deployment create -n green --app demo -g <resourceGroup> -s <Azure Spring Cloud instance> --jar-path target\hellospring-0.0.1-SNAPSHOT.jar
Visualización de aplicaciones e implementaciones
Vea las aplicaciones implementadas siguiendo los procedimientos siguientes:
Vaya a la instancia de Azure Spring Cloud en Azure Portal.
Desde el panel izquierdo, abra el panel Aplicaciones para ver las aplicaciones de la instancia de servicio.

Puede seleccionar una aplicación y ver los detalles.

Abra Implementaciones para ver todas las implementaciones de la aplicación. La cuadrícula muestra las implementaciones de producción y de ensayo.

Seleccione la dirección URL para abrir la aplicación implementada actualmente.

Seleccione Producción en la columna Estado para ver la aplicación predeterminada.

Seleccione Ensayo en la columna Estado para ver la aplicación de ensayo.

Sugerencia
- Confirme que el punto de conexión de prueba termina con una barra diagonal (/), con el fin de asegurarse de que el archivo CSS se ha cargado correctamente.
- Si el explorador requiere que escriba las credenciales de inicio de sesión para ver la página, use Descodificar como dirección URL para descodificar el punto de conexión de prueba. La descodificación de URL devuelve una dirección URL con el formato https://<username>:<password>@<cluster-name>.test.azureapps.io/gateway/green. Use este formato para acceder al punto de conexión.
Nota
Los valores del servidor de configuración se aplican tanto al entorno de ensayo como al de producción. Por ejemplo, si establece la ruta de acceso del contexto (server.servlet.context-path) para la puerta de enlace de aplicaciones en el servidor de configuración como somepath, la ruta de acceso a la implementación green cambia a https://<username>:<password>@<cluster-name>.test.azureapps.io/gateway/green/somepath/... .
Si va a la puerta de enlace de aplicaciones pública en este momento, debería ver la página anterior sin el nuevo cambio.
Establecimiento de la implementación green como entorno de producción
Una vez que haya verificado el cambio en el entorno de ensayo, puede enviarlo a producción. En la página Aplicaciones > Implementaciones, seleccione la aplicación que se encuentra en Producción.
Seleccione los puntos suspensivos que hay al lado de Estado de registro de la implementación verde y, a continuación, seleccione Set as production (Establecer como producción).

Confirme que la dirección URL de la aplicación muestra los cambios.

Nota
Después de haber establecido la implementación green como entorno de producción, la implementación anterior se convierte en la implementación de ensayo.
Modificación de la implementación de ensayo
Si no está satisfecho con el cambio, puede modificar el código de la aplicación, compilar un nuevo paquete .jar y cargarlo en la implementación verde mediante la CLI de Azure:
az spring-cloud app deploy -g <resource-group-name> -s <service-instance-name> -n gateway -d green --jar-path gateway.jar
Eliminación de la implementación de ensayo
Para eliminar la implementación de ensayo desde Azure Portal, vaya a la página de la implementación de ensayo y seleccione el botón Eliminar.
Como alternativa, también puede eliminarla desde la CLI de Azure con el siguiente comando:
az spring-cloud app deployment delete -n <staging-deployment-name> -g <resource-group-name> -s <service-instance-name> --app gateway