Migración de aplicaciones de Spring Cloud a 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.

En esta guía se describe lo que debe tener en cuenta cuando quiera migrar una aplicación de Spring Cloud existente para que se ejecute en Azure Spring Apps.

Antes de la migración

Para asegurarse de que la migración se realiza correctamente, antes de empezar, complete los pasos de evaluación e inventario descritos en las secciones siguientes.

Si no puede cumplir alguno de los requisitos previos a la migración, consulte las siguientes guías de migración complementarias:

  • Migración de aplicaciones JAR ejecutables a contenedores en Azure Kubernetes Service (planeada)
  • Migración de aplicaciones JAR ejecutables a Azure Virtual Machines (planeada)

Inspección de los componentes de la aplicación

Determinación de si se usa el sistema de archivos y cómo

Busque cualquier instancia en la que los servicios lean o escriban en el sistema de archivos local. Identifique dónde se escriben y se leen los archivos temporales o a corto plazo, y dónde se escriben y se leen los archivos de larga duración.

Nota:

Azure Spring Apps proporciona 5 GB de almacenamiento temporal por instancia de Azure Spring Apps, montado en /tmp. Si la escritura de archivos temporales supera ese límite o se hace en una ubicación diferente, será necesario hacer cambios en el código.

Contenido estático de solo lectura

Si su aplicación actualmente sirve contenido estático, necesitará una ubicación alternativa para él. Quizás quiera considerar la posibilidad de mover el contenido estático a Azure Blob Storage y agregar Azure CDN para tener descargas de alta velocidad globalmente. Para más información, consulte Hospedaje de sitios web estáticos en Azure Storage e Inicio rápido: Integración de una cuenta de una instancia de Azure Storage con Azure CDN.

Contenido estático publicado dinámicamente

Si su aplicación permite que haya contenido estático que la aplicación carga o produce, pero que es inmutable una vez creado, puede usar Azure Blob Storage y Azure CDN con una función de Azure para controlar las cargas y la actualización de la red CDN. Hemos proporcionado una implementación de ejemplo para su uso en Cargar y carga previa en CDN de contenido estático con Azure Functions.

Determinación de si alguno de los servicios contiene código específico del sistema operativo

Si la aplicación contiene código con dependencias en el sistema operativo host, deberá refactorizarla para quitar esas dependencias. Por ejemplo, puede que necesite reemplazar el uso de / o \ en las rutas de acceso del sistema de archivos por File.Separator o Paths.get.

Cambio a una plataforma compatible

Azure Spring Apps ofrece versiones específicas de Java y versiones específicas de Spring Boot y Spring Cloud. Para garantizar la compatibilidad, migre primero la aplicación a una de las versiones de Java admitidas en su entorno actual antes de continuar con los pasos restantes de la migración. Asegúrese de probar por completo la configuración resultante. Use la versión estable más reciente de la distribución de Linux en dichas pruebas.

Nota:

Esta validación es especialmente importante si el servidor actual se está ejecutando en un JDK no compatible (como Oracle JDK o IBM OpenJ9).

Para obtener la versión actual de Java, inicie sesión en el servidor de producción y ejecute el siguiente comando:

java -version

Para obtener versiones compatibles de Java, Spring Boot y Spring Cloud, así como instrucciones para actualizarlas, consulte Preparación de una aplicación para la implementación en Azure Spring Apps.

Identificación de las versiones de Spring Boot

Examine las dependencias de cada aplicación que se va a migrar para determinar su versión de Spring Boot.

Maven

En los proyectos de Maven, la versión de Spring Boot se encuentra normalmente en el elemento <parent> del archivo POM:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.10</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
Gradle

En los proyectos de Gradle, la versión de Spring Boot se encontrará normalmente en la sección plugins, como la versión del complemento org.springframework.boot:

plugins {
  id 'org.springframework.boot' version '2.7.10'
  id 'io.spring.dependency-management' version '1.0.15.RELEASE'
  id 'java'
}

En el caso de aplicaciones que usen Spring Boot 1.x, siga la guía de migración de Spring Boot 2.0 para actualizarlas a una versión de Spring Boot compatible. Para las versiones compatibles, consulte la sección Versiones de Spring Boot y Spring Cloud de Preparación de una aplicación para la implementación en Azure Spring Apps.

Identificación de las versiones de Spring Cloud

Examine las dependencias de cada aplicación que va a migrar para determinar la versión de los componentes de Spring Cloud que usa.

Maven

En los proyectos de Maven, la versión de Spring Cloud normalmente se establece en la propiedad spring-cloud.version:

  <properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>2021.0.6</spring-cloud.version>
  </properties>
Gradle

En los proyectos de Gradle, la versión de Spring Cloud normalmente se establece en el bloque "extra properties" (propiedades adicionales):

ext {
  set('springCloudVersion', "2021.0.6")
}

Debe actualizar todas las aplicaciones para usar las versiones admitidas de Spring Cloud. Para obtener una lista de las versiones admitidas, consulte la sección Versiones de Spring Boot y Spring Cloud de Preparación de una aplicación para la implementación en Azure Spring Apps.

Identificación de soluciones de agregación de registros

Identifique las soluciones de agregación de registros que usen las aplicaciones que va a migrar. Debe configurar las opciones de diagnóstico en la migración para que los eventos registrados estén disponibles para su consumo. Para obtener más información, consulte la sección Asegurar el registro de la consola y configurar las opciones de diagnóstico.

Identificación de los agentes de administración del rendimiento de la aplicación (APM)

Identifique los agentes de supervisión del rendimiento de las aplicaciones en uso con las aplicaciones. Azure Spring Apps admite la integración con Application Ideas, New Relic, Elastic APM, Dynatrace y AppDynamics. Si la aplicación usa un APM compatible, configure la integración en la migración. Si la aplicación no usa un APM compatible, considere la posibilidad de usar Application Ideas en su lugar. Para obtener más información, consulte la sección Migración .

Identificación de las dependencias de Zipkin

Determine si la aplicación tiene dependencias en Zipkin. Actualice la aplicación para que use Application Ideas en su lugar. Para obtener información, consulte Uso de Application Ideas Java In-Process Agent en Azure Spring Apps y la sección Posterior a la migración.

Recursos externos de inventario

Identifique los recursos externos, tales como los orígenes de datos, los agentes de mensajes JMS y las direcciones URL de otros servicios. En las aplicaciones de Spring Cloud, la configuración de estos recursos normalmente se encuentra en una de las siguientes ubicaciones:

  • En la carpeta src/main/directory, en un archivo llamado normalmente application.properties o application.yml.
  • En el repositorio de configuración de Spring Cloud que identificó en el paso anterior.

Bases de datos

Identifique la cadena de conexión de todas las bases de datos SQL.

En el caso de una aplicación de Spring Boot, las cadenas de conexión suelen aparecer en los archivos de configuración.

A continuación se muestra un ejemplo de un archivo application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/mysql_db
spring.datasource.username=dbuser
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

A continuación se muestra un ejemplo de un archivo application.yaml:

spring:
  data:
    mongodb:
      uri: mongodb://mongouser:deepsecret@mongoserver.contoso.com:27017

Consulte la documentación de Spring Data para ver posibles escenarios de configuración:

Agentes de mensajes de JMS

Identifique a los agentes en uso; para ello, busque las dependencias pertinentes en el manifiesto de compilación (normalmente, un archivo pom.xml o build.gradle).

Por ejemplo, una aplicación de Spring Boot con ActiveMQ normalmente contendría esta dependencia en su archivo pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

Las aplicaciones de Spring Boot que usan agentes comerciales suelen contener dependencias directamente en las bibliotecas de controladores JMS de los agentes. A continuación se muestra un ejemplo de un archivo build.gradle:

    dependencies {
      ...
      compile("com.ibm.mq:com.ibm.mq.allclient:9.0.4.0")
      ...
    }

Una vez identificados los agentes en uso, busque la configuración correspondiente. En las aplicaciones de Spring Cloud, normalmente se encuentran en los archivos application.properties y application.yml, en el directorio de la aplicación, o en el repositorio de Spring Cloud Config Server.

A continuación, se muestra un ejemplo de ActiveMQ de un archivo application.properties:

spring.activemq.brokerurl=broker:(tcp://localhost:61616,network:static:tcp://remotehost:61616)?persistent=false&useJmx=true
spring.activemq.user=admin
spring.activemq.password=tryandguess

Para más información sobre la configuración de ActiveMQ, consulte la documentación de Spring Boot sobre mensajería.

A continuación, se muestra un ejemplo de IBM MQ de un archivo application.yaml:

ibm:
  mq:
    queueManager: qm1
    channel: dev.ORDERS
    connName: localhost(14)
    user: admin
    password: big$ecr3t

Para más información sobre la configuración de IBM MQ, consulte la documentación IBM MQ Spring sobre componentes.

Identificación de cachés externas

Identifique cualquier caché externa en uso. Con frecuencia, Redis se usa a través de Spring Data Redis. Para más información de configuración, consulte la documentación de Spring Data Redis.

Determine si los datos de la sesión se almacenan en memoria caché mediante Spring Session; para ello, consulte la configuración correspondiente (en Java o XML).

Proveedores de identidades

Identifique todos los proveedores de identidades y todas las aplicaciones de Spring Cloud que requieran autenticación o autorización. Para obtener información sobre cómo configurar proveedores de identidades, consulte los siguientes recursos:

Recursos configurados mediante Tanzu Application Service de VMware (antes llamado Pivotal Cloud Foundry)

En el caso de las aplicaciones administradas con TAS, los recursos externos, incluidos los recursos descritos anteriormente, a menudo se configuran mediante enlaces de servicio TAS. Para ver la configuración de estos recursos, use la CLI de TAS (Cloud Foundry) para ver la variable VCAP_SERVICES de la aplicación.

# Log into TAS, if needed (enter credentials when prompted)
cf login -a <API endpoint>

# Set the organization and space containing the application, if not already selected during login.
cf target org <organization name>
cf target space <space name>

# Display variables for the application
cf env <Application Name>

Examine la variable VCAP_SERVICES para obtener los valores de configuración de los servicios externos enlazados a la aplicación. Para obtener más información, consulte Documentación de TAS (Cloud Foundry).

Todos los demás recursos externos

No es factible documentar todas las dependencias externas posibles en esta guía. Es responsabilidad del equipo comprobar que puede cumplir todas las dependencias externas de la aplicación después de la migración.

Orígenes y secretos de configuración de inventario

Contraseñas y cadenas seguras de inventario

Compruebe si hay cadenas secretas y contraseñas en todas las propiedades, los archivos de configuración y las variables de entorno de las implementaciones de producción. En una aplicación de Spring Cloud, normalmente encontrará estas cadenas en el archivo application.properties o application.yml en servicios individuales, o en el repositorio de Spring Cloud Config.

Certificados de inventario

Documente todos los certificados utilizados para los puntos de conexión SSL públicos o la comunicación con las bases de datos de back-end y otros sistemas. Para ver todos los certificados de los servidores de producción, ejecute el siguiente comando:

keytool -list -v -keystore <path to keystore>

Determinación de si se usa Spring Cloud Vault

Si usa Spring Cloud Vault para almacenar secretos y acceder a ellos, identifique el almacén de secretos de reserva (por ejemplo, HashiCorp Vault o CredHub). Después, identifique todos los secretos utilizados por el código de la aplicación.

Localización del origen del servidor de configuración

Si la aplicación usa una instancia de Spring Cloud Config Server, identifique dónde se almacena la configuración. Normalmente, encontrará esta opción en el archivo bootstrap.yml o bootstrap.properties o, en ocasiones, en el archivo application.yml o application.properties. La opción tendrá un aspecto similar a la del ejemplo siguiente:

spring.cloud.config.server.git.uri: file://${user.home}/spring-cloud-config-repo

Aunque git es habitualmente el almacén de datos de reserva de Spring Cloud Config, como se ha indicado anteriormente, es posible que se esté usando uno de los otros servidores de back-end posibles. Consulte la documentación de Spring Cloud Config para más información sobre otros servidores de back-end, como Relational Database (JDBC), SVN y el sistema de archivos local.

Nota:

Si los datos del servidor de configuración se almacenan de forma local, como GitHub Enterprise, deberá ponerlos a disposición de Azure Spring Apps a través de un repositorio de Git.

Inspección de la arquitectura de implementación

Requisitos de hardware para cada servicio

Para cada uno de los servicios de Spring Cloud (sin incluir el servidor de configuración, el registro o la puerta de enlace), documente la siguiente información:

  • Número de instancias en ejecución.
  • Número de CPU asignadas a cada instancia.
  • Cantidad de RAM asignada a cada instancia.

Documentación de la distribución y replicación geográfica

Determine si las aplicaciones de Spring Boot están distribuidas actualmente entre varias regiones o centros de datos. Documente los requisitos de tiempo de actividad o el Acuerdo de Nivel de Servicio de las aplicaciones que va a migrar.

Identificación de los clientes que omiten el registro del servicio

Identifique las aplicaciones cliente que invoquen a cualquiera de los servicios que se van a migrar sin usar el registro de Spring Cloud Service. Después de la migración, estas invocaciones ya no serán posibles. Actualice estos clientes para usar Spring Cloud OpenFeign antes de la migración.

Migración

Quitar configuraciones restringidas

En los servicios que va a migrar, busque y quite las asignaciones explícitas de la siguiente configuración restringida. Estas propiedades se insertan automáticamente en el entorno de la aplicación para acceder al servidor de configuración y a la detección de servicios. Si estas propiedades están en los archivos de aplicación de Config Server, es posible que experimente conflictos y un comportamiento inesperado. Para más información, consulte la sección Restricción de Configuración de un servidor de configuración de Spring Cloud administrado en Azure Spring Apps.

  • eureka.client.service-url.defaultZone
  • eureka.client.tls.keystore
  • eureka.instance.preferIpAddress
  • eureka.instance.instance-id
  • server.port
  • spring.cloud.config.tls.keystore
  • spring.config.import
  • spring.application.name
  • spring.jmx.enabled
  • management.endpoints.jmx.exposure.include

Creación de una instancia y aplicaciones de Azure Spring Apps

Aprovisione una instancia de Azure Spring Apps en la suscripción de Azure. A continuación, aprovisione una aplicación para cada servicio que vaya a migrar. No incluya el registro de Spring Cloud ni los servidores de configuración. Incluya el servicio Spring Cloud Gateway. Para obtener instrucciones, consulte Inicio rápido: Implementación de la primera aplicación en Azure Spring Apps.

Preparación de Spring Cloud Config Server

Configure el servidor de configuración en la instancia de Azure Spring Apps. Para más información, consulte Configuración de una instancia de Config Server en Spring Cloud para su servicio.

Nota:

Si el repositorio actual de Spring Cloud Config está en el sistema de archivos local o local, primero debe migrar o replicar los archivos de configuración en un repositorio privado basado en la nube, como GitHub, Azure Repos o BitBucket.

Comprobación del registro de la consola y configuración de los valores de diagnóstico

Configure el registro para que toda la salida se enrute a la consola y no a los archivos.

Después de implementar una aplicación en Azure Spring Apps, agregue una configuración de diagnóstico para que los eventos registrados estén disponibles para su consumo, por ejemplo a través de Log Analytics de Azure Monitor.

LogStash/ELK Stack

Si usa LogStash/ELK Stack para la agregación de registros, configure los diagnósticos para transmitir la salida de la consola a un centro de eventos de Azure. Después, use el complemento LogStash EventHub para ingerir los eventos registrados en LogStash.

Splunk

Si usa Splunk para la agregación de registros, configure los diagnósticos para transmitir la salida de la consola a Azure Blob Storage. Después, use el complemento de Splunk para Microsoft Cloud Services para ingerir los eventos registrados en Splunk.

Configuración de almacenamiento persistente

Si alguna parte de la aplicación lee o escribe en el sistema de archivos local, deberá configurar el almacenamiento persistente para reemplazar el sistema de archivos local. Para más información, consulte Uso del almacenamiento persistente integrado en Azure Spring Apps.

Debe escribir los archivos temporales en el directorio /tmp. Para que este directorio sea independiente del sistema operativo, puede obtenerlo mediante System.getProperty("java.io.tmpdir"). También puede usar java.nio.Files::createTempFile para crear archivos temporales.

Componentes de VMware Tanzu

En el nivel Enterprise, el servicio de configuración de aplicaciones para VMware Tanzu® se proporciona para admitir la configuración externa para las aplicaciones. Managed Spring Cloud Config Server no está disponible en el nivel Enterprise y solo está disponible en el nivel Estándar y Básico de Azure Spring Apps.

Application Configuration Service for Tanzu

Application Configuration Service for Tanzu es uno de los componentes comerciales de VMware Tanzu. El servicio de configuración de aplicaciones para Tanzu es nativo de Kubernetes y es diferente de Spring Cloud Config Server. Application Configuration Service for Tanzu permite la administración de recursos ConfigMap nativos de Kubernetes que se rellenan a partir de las propiedades definidas en uno o varios repositorios de Git.

En el nivel Enterprise, no hay Spring Cloud Config Server, pero puede usar Application Configuration Service for Tanzu para administrar configuraciones centralizadas. Para más información, consulte Uso de Application Configuration Service for Tanzu.

Para usar Application Configuration Service for Tanzu, realice los pasos siguientes para cada una de las aplicaciones:

  1. Agregue un enlace de aplicación explícito para declarar que la aplicación necesita usar Application Configuration Service for Tanzu.

    Nota:

    Al cambiar el estado entre enlazado y desenlazado, debe reiniciar o volver a implementar la aplicación para que el cambio surta efecto.

  2. Establezca patrones de archivo de configuración. Los patrones de archivo de configuración permiten elegir qué aplicación y perfil usa la aplicación. Para más información, consulte la sección Patrón de Uso de Application Configuration Service for Tanzu.

    Otra opción es establecer los patrones de archivo de configuración al mismo tiempo que la implementación de la aplicación, como se muestra en el ejemplo siguiente:

    az spring app deploy \
        --name <app-name> \
        --artifact-path <path-to-your-JAR-file> \
        --config-file-pattern <config-file-pattern>
    

El servicio de configuración de aplicaciones para Tanzu se ejecuta en Kubernetes. Para ayudar a habilitar una experiencia de desarrollo local transparente, proporcionamos las siguientes sugerencias.

  • Si ya tiene un repositorio de Git para almacenar la configuración externaizada, puede configurar Spring Cloud Config Server localmente como configuración centralizada para la aplicación. Después de que se inicie Config Server, clona el repositorio de Git y proporciona el contenido del repositorio a través de su controlador web. Para más información, consulte Configuración de Spring Cloud en la documentación de Spring. spring-cloud-config-client proporciona la capacidad de que la aplicación recoja automáticamente la configuración externa del servidor de configuración.

  • Si no tiene un repositorio de Git o no quiere configurar Config Server localmente, puede usar el archivo de configuración directamente en el proyecto. Se recomienda usar un perfil para aislar el archivo de configuración para que solo se use en el entorno de desarrollo. Por ejemplo, use dev como perfil. A continuación, puede crear un archivo application-dev.yml en la carpeta src/main/resource para almacenar la configuración. Para que la aplicación use esta configuración, inicie la aplicación localmente con --spring.profiles.active=dev.

Registro de servicio de Tanzu

VMware Tanzu® Service Registry es uno de los componentes comerciales de VMware Tanzu. Tanzu Service Registry proporciona las aplicaciones de nivel Empresarial con una implementación del patrón de detección de servicios, uno de los principios clave de una arquitectura basada en microservicios. Las aplicaciones pueden usar tanzu Service Registry para detectar y llamar dinámicamente a los servicios registrados. Es preferible usar tanzu Service Registry para configurar manualmente cada cliente de un servicio, lo que puede ser difícil o adoptar alguna forma de convención de acceso, que puede ser frágil en producción. Para más información, consulte Uso de Tanzu Service Registry.

Migración de secretos de Spring Cloud Vault a Azure KeyVault

Para inyectar secretos directamente en las aplicaciones mediante Spring con el iniciador de Spring Boot para Azure KeyVault. Para más información, consulte Cómo usar el iniciador de Spring Boot para Azure Key Vault.

Nota:

La migración puede requerir que se cambie el nombre de algunos secretos. Actualice el código de la aplicación como sea necesario.

Migración de todos los certificados a KeyVault

Azure Spring Apps no proporciona acceso al almacén de claves JRE, por lo que debe migrar certificados a Azure KeyVault y cambiar el código de la aplicación para acceder a los certificados en KeyVault. Para más información, consulte Introducción a los certificados de Key Vault y Biblioteca cliente de certificados de Azure Key Vault para Java.

Configuración de integraciones de administración del rendimiento de aplicaciones (APM)

Azure Spring Apps ofrece las siguientes integraciones de APM. Siga los vínculos para habilitar el APM que necesita:

Si la aplicación no usa un APM compatible, considere la posibilidad de usar Application Ideas en su lugar. Azure Spring Apps ofrece una integración profunda con Application Ideas para la administración del rendimiento y la respuesta en tiempo real a las aberraciones.

Deshabilitación de clientes y puntos de conexión de métricas en las aplicaciones

Quite todos los clientes de métricas usados y todos los puntos de conexión de métricas expuestos en las aplicaciones.

Implementación de los servicios

Implemente cada una de las aplicaciones de Spring migradas (no incluidas las instancias de Spring Cloud Config y Registry), como se describe en Inicio rápido: Implementación de la primera aplicación en Azure Spring Apps.

Configuración de secretos por servicio y configuraciones externalizadas

Puede insertar cualquier opción de configuración de servicio en cada servicio como variables de entorno. En Azure Portal, use los pasos siguientes:

  1. Vaya a la instancia de Azure Spring Apps y seleccione Aplicaciones.
  2. Seleccione el servicio que desea configurar.
  3. Seleccione Configuración.
  4. Especifique las variables que quiere configurar.
  5. Seleccione Guardar.

Spring Cloud App Configuration Settings

Migración y habilitación del proveedor de identidades

Si alguna de las aplicaciones de Spring Cloud requiere autenticación o autorización, asegúrese de que estén configuradas para tener acceso al proveedor de identidades:

  • Si el proveedor de identidades es Microsoft Entra ID, no se deben realizar cambios.
  • Si el proveedor de identidades es un bosque de Active Directory local, considere la posibilidad de implementar una solución de identidad híbrida con el identificador de Microsoft Entra. Para más instrucciones, consulte la documentación sobre identidades híbridas.
  • Si el proveedor de identidades es otra solución local, como PingFederate, consulte el tema Instalación personalizada de Microsoft Entra Conectar para configurar la federación con el identificador de Microsoft Entra. Como alternativa, considere la posibilidad de usar Spring Security para usar el proveedor de identidades mediante OAuth2/OpenID Connect o SAML.

Actualización de aplicaciones cliente

Actualice la configuración de todas las aplicaciones cliente para usar los puntos de conexión publicados de Azure Spring Apps para las aplicaciones migradas.

Después de la migración

  • Considere la posibilidad de agregar una canalización de implementación para realizar implementaciones automáticas y coherentes. Hay instrucciones disponibles para Azure Pipelines, para Acciones de GitHub y para Jenkins.

  • Considere la posibilidad de usar implementaciones de ensayo para probar los cambios de código en producción antes de que estén disponibles para algunos o todos los usuarios finales. Para más información, consulte Configuración de un entorno de ensayo en Azure Spring Apps.

  • Considere la posibilidad de agregar enlaces de servicio para conectar la aplicación a las bases de datos de Azure admitidas. Estos enlaces de servicio eliminarán la necesidad de proporcionar información de conexión, incluidas las credenciales, a las aplicaciones de Spring Cloud.

  • Considere la posibilidad de usar Ideas de App de Azure para supervisar el rendimiento y las interacciones de las aplicaciones. Para más información, consulte Agente In-Process de Java de Application Insights en Azure Spring Apps.

  • Considere la posibilidad de agregar reglas de alerta y grupos de acciones de Azure Monitor para detectar y resolver rápidamente las condiciones anómalas. Para más información, consulte Tutorial: Supervisión de recursos de Spring Cloud mediante alertas y grupos de acciones.

  • Considere la posibilidad de replicar la implementación de Azure Spring Apps en otra región para una menor latencia y mayor confiabilidad y tolerancia a errores. Use Azure Traffic Manager para equilibrar la carga entre las implementaciones, o use Azure Front Door para agregar la descarga de SSL y un firewall de aplicaciones web con protección contra DDoS.

  • Si no es necesaria la replicación geográfica, considere la posibilidad de agregar una puerta de enlace de aplicación de Azure para agregar la descarga SSL y un firewall de aplicaciones web con protección contra DDoS.

  • Si las aplicaciones usan componentes heredados de Spring Cloud Netflix, considere la posibilidad de reemplazarlos por alternativas actuales:

    Heredado Actuales
    Spring Cloud Azure Spring Cloud Service Registry
    Spring Cloud Netflix Zuul Spring Cloud Gateway
    Spring Cloud Netflix Archaius Spring Cloud Config Server
    Spring Cloud Netflix Ribbon Spring Cloud Load Balancer (equilibrador de carga en el lado cliente)
    Spring Cloud Hystrix Spring Cloud Circuit Breaker + Resilience4J
    Spring Cloud Netflix Turbine Micrometer + Prometheus