Configuración de un entorno de ensayo en Azure Spring Apps

Nota:

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

Este artículo se aplica a: ✔️ Java ❌ C#

La información de este artículo puede ponerse en práctica en:❌ Básico ✔️ Estándar ✔️ Enterprise

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 Apps. 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

  • Una instancia de Azure Spring Apps existente en el plan Estándar.
  • Azure CLI.

En este artículo se usa una aplicación compilada a partir de Spring Initializr. Si quiere usar otra aplicación en este ejemplo, realice un 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 Apps, siga las instrucciones de las secciones siguientes.

Instalación de la extensión de la CLI de Azure

Instale la extensión Azure Spring Apps para la CLI de Azure mediante el comando siguiente:

az extension add --name spring

Preparación de la aplicación y las implementaciones

Para compilar la aplicación, siga estos pasos:

  1. Genere el código de la aplicación de ejemplo mediante Spring Initializr con esta configuración.

  2. Descargue el código.

  3. 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 Apps!";
      }
    
    }
    
  4. Compile el archivo .jar:

    mvn clean package -DskipTests
    
  5. Cree la aplicación en la instancia de Azure Spring Apps:

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --runtime-version Java_17 \
        --assign-endpoint
    
  6. Implemente la aplicación en Azure Spring Apps:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    
  7. Modifique 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 Apps! THIS IS THE GREEN DEPLOYMENT";
      }
    
    }
    
  8. Vuelva a compilar el archivo .jar:

    mvn clean package -DskipTests
    
  9. Cree la implementación verde:

    az spring app deployment create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --app demo \
        --name green \
        --runtime-version Java_17 \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    

Visualización de aplicaciones e implementaciones

Para visualizar las aplicaciones implementadas, siga estos pasos.

  1. Vaya a la instancia de Azure Spring Apps en Azure Portal.

  2. En el panel de navegación, abra el panel Aplicaciones para ver las aplicaciones de la instancia de servicio.

    Captura de pantalla del panel Aplicaciones que muestra las aplicaciones de la instancia de servicio.

  3. Seleccione una aplicación para ver los detalles.

    Captura de pantalla de la aplicación de demostración que muestra la página Información general con la configuración disponible.

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

    Captura de pantalla que muestra las implementaciones enumeradas de la aplicación.

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

    Captura de pantalla que muestra la dirección URL de la aplicación implementada.

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

    Captura de pantalla que muestra la dirección URL de la aplicación predeterminada.

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

    Captura de pantalla que muestra la dirección URL de 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 como dirección URL devuelve una dirección URL con el formato https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/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 de contexto (server.servlet.context-path) para la demostración de la aplicación en el servidor de configuración como somepath, la ruta de acceso a la implementación verde cambia a https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/....

Si visita la demostración de la aplicación orientada al público en este momento, debería ver la página anterior sin su nuevo cambio.

Establecimiento de la implementación green como entorno de producción

  1. 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.

  2. 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).

    Captura de pantalla que muestra las selecciones para establecer la compilación de ensayo en producción.

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

    Captura de pantalla que muestra la URL de la aplicación ahora en producción.

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 app deploy \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name demo \
    --deployment green \
    --artifact-path demo.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 app deployment delete \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name <staging-deployment-name> \
    --app demo

Pasos siguientes