Ejercicio: Implementación de la aplicación de Spring Boot con Redis en Azure
Ahora que ya todo se ejecuta en el equipo local, puede implementar la aplicación en la nube y probar su comportamiento en producción.
Creación de una instancia de Azure App Service
Cree una instancia de Azure App Service para hospedar la aplicación. Utilice el siguiente código de la CLI de Azure para crear un plan de App Service básico que use Linux y, después, agréguele una instancia de Java en App Service.
Para usar Java 11 o Java 17 en lugar de Java 8, use "JAVA|<version>-java<version>"
en lugar de "JAVA|8-jre8"
como entorno de ejecución para la aplicación web.
az appservice plan create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp-plan \
--is-linux \
--sku B1
az webapp create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp \
--runtime "JAVA|8-jre8" \
--plan $AZ_REDIS_NAME-webapp-plan
Nota
El código anterior reutiliza la variable $AZ_REDIS_NAME
para asignar un nombre al plan y a la instancia de App Service, pero puede usar otros nombres. El nombre de la instancia de App Service forma parte de la dirección URL, que debe ser única en Azure.
Puede realizar el siguiente paso mientras termina la implementación.
Implementación de la aplicación de Spring Boot en Azure App Service
En el archivo pom.xml del proyecto, agregue el siguiente complemento en la sección
<plugins>
:<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.11.0</version> <configuration> <schemaVersion>V2</schemaVersion> <resourceGroup>${env.AZ_RESOURCE_GROUP}</resourceGroup> <appName>${env.AZ_REDIS_NAME}-webapp</appName> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
Nota
En la configuración anterior, se usan las variables de entorno que ha configurado antes. Para que esta configuración funcione, asegúrese de establecer correctamente las variables
$AZ_RESOURCE_GROUP
y$AZ_REDIS_NAME
.Una vez finalizada la implementación de App Service, ejecute el siguiente comando para empaquetar la aplicación e implementarla en Azure:
./mvnw package azure-webapp:deploy
Cuando la implementación se completa correctamente, devuelve la siguiente línea:
Successfully deployed the artifact to https://<redisName>-webapp.azurewebsites.net
Anote la dirección URL de la aplicación en ejecución, como se muestra en la salida anterior, para usarla en la siguiente sección.
Prueba de la aplicación en Azure
Use la dirección URL de la aplicación para ejecutar los mismos comandos de dirección URL de cliente (cURL) en la nube que usó en el servidor local.
Para agregar un elemento de datos, ejecute el siguiente comando:
curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Para recuperar los datos, ejecute:
curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Para incrementar la sesión, ejecute el siguiente comando varias veces:
curl -b cookie.txt -c cookie.txt https://$AZ_REDIS_NAME-webapp.azurewebsites.net/session
El servidor local y el servicio en la nube usan la misma instancia de Redis, por tanto, se agrupan en clúster. Cualquier dato que escriba en una instancia estará disponible en la otra. El servicio en la nube se puede escalar horizontalmente agregando más nodos que usen la misma instancia de Redis para almacenar tanto datos empresariales como datos de sesión.