Migrer des applications Spring Cloud vers Azure Spring Apps

Remarque

Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.

Ce guide décrit ce que vous devez savoir quand vous souhaitez migrer une application Spring Cloud existante à exécuter sur Azure Spring Apps.

Prémigration

Pour garantir la réussite de la migration, avant de commencer, effectuez les étapes d’évaluation et d’inventaire décrites dans les sections suivantes.

Si vous ne parvenez pas à respecter ces conditions de prémigration, consultez les guides de migration suivants :

  • Migrer des applications JAR exécutables vers des conteneurs sur Azure Kubernetes Service (aide planifiée)
  • Migrer des applications JAR exécutables vers des machines virtuelles Azure (aide planifiée)

Inspecter les composants d’application

Déterminer si le système de fichiers est utilisé et de quelle manière

Recherchez les instances où vos services écrivent et/ou lisent à partir du système de fichiers local. Identifiez où les fichiers temporaires/à courte durée de vie sont écrits et lus, et où les fichiers à longue durée de vie sont écrits et lus.

Remarque

Azure Spring Apps fournit 5 Go de stockage temporaire par instance Azure Spring Apps, monté en /tmp. Si des fichiers temporaires sont écrits au-delà de cette limite ou à un emplacement différent, des modifications du code seront nécessaires.

Contenu statique en lecture seule

Si votre application sert actuellement du contenu statique, vous aurez besoin d’un autre emplacement pour lui. Vous pouvez envisager de déplacer du contenu statique vers le Stockage Blob Azure et d’ajouter Azure CDN pour accélérer globalement les téléchargements. Pour plus d’informations, consultez Hébergement de sites web statiques dans le service Stockage Azure et Démarrage rapide : Intégrer un compte de stockage Azure à Azure CDN.

Contenu statique publié dynamiquement

Si votre application autorise le contenu statique chargé/produit par votre application mais immuable après sa création, vous pouvez utiliser le Stockage Blob Azure et Azure CDN comme décrit ci-dessus, avec une fonction Azure pour gérer les chargements et l’actualisation du réseau CDN. Nous avons mis à votre disposition un exemple d’implémentation dans Chargement et préchargement CDN de contenu statique avec Azure Functions.

Déterminer si l’un des services contient du code propre au système d’exploitation

Si votre application contient du code avec des dépendances vis-à-vis du système d’exploitation hôte, vous devez la refactoriser pour supprimer ces dépendances. Par exemple, vous pouvez avoir besoin de remplacer toute utilisation de / ou \ dans les chemins de système de fichiers par File.Separator ou Paths.get.

Basculer vers une plateforme prise en charge

Azure Spring Apps propose des versions spécifiques de Java et des versions spécifiques de Spring Boot et Spring Cloud. Pour garantir sa compatibilité, migrez d’abord votre application vers l’une des versions prises en charge de Java dans son environnement actuel, puis passez aux étapes de migration restantes. Veillez à tester entièrement la configuration obtenue. Utilisez la dernière version stable de votre distribution Linux dans ces tests.

Remarque

Cette validation s’avère particulièrement importante si votre serveur actuel s’exécute sur un JDK non pris en charge (comme Oracle JDK ou IBM OpenJ9).

Pour obtenir votre version actuelle de Java, connectez-vous à votre serveur de production et exécutez la commande suivante :

java -version

Pour les versions prises en charge de Java, Spring Boot et Spring Cloud, ainsi que des instructions pour la mise à jour, consultez Préparer une application pour le déploiement dans Azure Spring Apps.

Identifier les versions Spring Boot

Examinez les dépendances de chaque application en cours de migration pour déterminer sa version Spring Boot.

Maven

Dans les projets Maven, la version Spring Boot se trouve généralement dans l’élément <parent> du fichier 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

Dans les projets Gradle, la version Spring Boot se trouve généralement dans la section plugins, comme la version du plug-in org.springframework.boot :

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

Pour toutes les applications qui utilisent Spring Boot 1. x, suivez le guide de migration vers Spring Boot 2.0 pour les mettre à jour vers une version de Spring Boot prise en charge. Pour connaître les versions prises en charge, consultez la section Des versions Spring Boot et Spring Cloud de Préparer une application pour le déploiement dans Azure Spring Apps.

Identifier les versions Spring Cloud

Examinez les dépendances de chaque application que vous migrez, afin de déterminer la version des composants Spring Cloud qu’elle utilise.

Maven

Dans les projets Maven, la version de Spring Cloud est généralement définie dans la propriété spring-cloud.version :

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

Dans les projets Gradle, la version de Spring Cloud est généralement définie dans le bloc « extra properties » :

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

Vous devez mettre à jour toutes les applications pour utiliser les versions prises en charge de Spring Cloud. Pour obtenir la liste des versions prises en charge, consultez la section Des versions Spring Boot et Spring Cloud de Préparer une application pour le déploiement dans Azure Spring Apps.

Identifier les solutions d’agrégation de journaux

Identifiez les solutions d’agrégation de journaux utilisées par les applications que vous migrez. Vous devez configurer les paramètres de diagnostic dans la migration pour rendre les événements journalisés disponibles pour la consommation. Pour plus d’informations, consultez la section Vérifier la journalisation de la console et configurer les paramètres de diagnostic.

Identifier les agents de Gestion des performances des applications (APM)

Identifiez les agents de surveillance des performances des applications en cours d’utilisation avec vos applications. Azure Spring Apps prend en charge l’intégration à Application Recommandations, New Relic, Elastic APM, Dynatrace et AppDynamics. Si l’application utilise un APM pris en charge, configurez l’intégration dans la migration. Si l’application n’utilise pas un APM pris en charge, envisagez d’utiliser l’application Recommandations à la place. Pour plus d’informations, consultez la section Migration .

Identifier les dépendances Zipkin

Déterminez si votre application a des dépendances sur Zipkin. Mettez à jour l’application pour utiliser l’Recommandations d’application à la place. Pour plus d’informations, consultez Utiliser l’application Recommandations l’agent in-process Java dans Azure Spring Apps et la section Post-migration.

Inventorier les ressources externes

Identifiez les ressources externes, telles que les sources de données, les répartiteurs de messages JMS et les URL d’autres services. Dans les applications Spring Cloud, vous trouverez généralement la configuration de ces ressources à l’un des emplacements suivants :

  • Dans le dossier src/main/Directory, dans un fichier généralement nommé application.properties ou application.yml
  • Dans le référentiel Spring Cloud Config que vous avez identifié à l’étape précédente.

Bases de données

Pour les bases de données SQL, identifiez la chaîne de connexion.

Pour une application Spring boot, les chaînes de connexion apparaissent généralement dans les fichiers de configuration.

Voici un exemple de fichier application.properties :

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

Voici un exemple de fichier application.yaml :

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

Pour plus d’informations sur les scénarios de configuration possibles, consultez la documentation Spring Data :

Répartiteurs de messages JMS

Identifiez le ou les répartiteurs utilisés en recherchant les dépendances pertinentes dans le manifeste de la build (en général un fichier pom.xml ou build.gradle).

Par exemple, une application Spring Boot utilisant ActiveMQ contient généralement cette dépendance dans son fichier pom.xml :

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

Les applications Spring Boot utilisant des répartiteurs commerciaux contiennent généralement des dépendances directement sur les bibliothèques de pilotes JMS des répartiteurs. Voici un exemple de fichier build.gradle :

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

Une fois que vous avez identifié le ou les répartiteurs en cours d’utilisation, recherchez les paramètres correspondants. Dans les applications Spring Cloud, vous les trouverez généralement dans les fichiers application.properties et application.yml dans le répertoire de l’application, ou dans le dépôt du serveur de configuration Spring Cloud.

Voici un exemple ActiveMQ tiré d’un fichier 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

Pour plus d’informations sur la configuration d’ActiveMQ, consultez la documentation sur la messagerie Spring Boot.

Voici un exemple IBM MQ tiré d’un fichier application.yaml :

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

Pour plus d’informations sur la configuration d’IBM MQ, consultez la documentation sur les composants d’IBM MQ Spring.

Identifier les caches externes

Identifiez les caches externes en cours d’utilisation. Redis est fréquemment utilisé par le biais de Spring Data Redis. Pour plus d’informations sur la configuration, consultez la documentation de Spring Data Redis.

Déterminez si les données de session sont mises en cache par le biais de Spring Session en recherchant la configuration correspondante (en Java ou XML).

Fournisseurs d’identité

Identifiez tous les fournisseurs d’identité et toutes les applications Spring Cloud qui nécessitent l’authentification et/ou l’autorisation. Pour plus d’informations sur la configuration des fournisseurs d’identité, consultez les ressources suivantes :

Ressources configurées via VMware Tanzu Application Service (TAS) (anciennement Pivotal Cloud Foundry)

Pour les applications gérées avec TAS, les ressources externes, y compris les ressources décrites précédemment, sont souvent configurées par le biais de liaisons de service TAS. Pour examiner la configuration de ces ressources, utilisez l’interface CLI TAS (Cloud Foundry) afin d’afficher la variable VCAP_SERVICES pour l’application.

# 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>

Examinez la variable VCAP_SERVICES pour connaître les paramètres de configuration des services externes liés à l’application. Pour plus d’informations, consultez la documentation TAS (Cloud Foundry).

Toutes les autres ressources externes

Il n’est pas possible de décrire dans ce guide toutes les dépendances externes possibles. Après la migration, il vous incombe de vérifier que vous pouvez satisfaire à toutes les dépendances externes de votre application.

Secrets et sources de configuration d’inventaire

Mots de passe d’inventaire et chaînes sécurisées

Recherchez les secrets et mots de passe dans l’ensemble des propriétés, des fichiers de configuration et des variables d’environnement dans le ou les déploiements de production. Dans une application Spring Cloud, vous trouverez généralement ces chaînes dans le fichier application.properties ou application.yml dans les services individuels ou dans le dépôt Spring Cloud Config.

Inventorier les certificats

Documentez tous les certificats utilisés pour les points de terminaison SSL publics ou la communication avec les bases de données back-end et autres systèmes. Vous pouvez voir tous les certificats présents sur les serveurs de production en exécutant la commande suivante :

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

Déterminer si Spring Cloud Vault est utilisé

Si vous utilisez Spring Cloud Vault pour stocker des secrets et y accéder, identifiez le magasin de stockage des secrets (par exemple, HashiCorp Vault ou CredHub). Identifiez ensuite tous les secrets utilisés par le code d’application.

Localiser la source du serveur de configuration

Si votre application utilise un serveur Spring Cloud Config, identifiez l’emplacement de stockage de la configuration. Ce paramètre se trouve généralement dans le fichier bootstrap.yml ou bootstrap.properties, ou parfois dans le fichier application.yml ou application.properties. Le paramètre doit ressembler à l’exemple qui suit :

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

Bien que Git soit le plus souvent utilisé en tant que magasin de stockage de Spring Cloud Config, comme indiqué plus haut, l’un des autres back-ends possibles peut être en cours d’utilisation. Consultez la documentation de Spring Cloud Config pour plus d’informations sur d’autres back-ends, tels que base de données relationnelle (JDBC), SVN et le système de fichiers local.

Remarque

Si vos données de serveur de configuration sont stockées localement, telles que GitHub Enterprise, vous devez la rendre disponible pour Azure Spring Apps via un dépôt Git.

Inspecter l’architecture de déploiement

Documenter la configuration matérielle requise pour chaque service

Pour chacun de vos services Spring Cloud (sauf le serveur de configuration, le registre ou la passerelle), documentez les informations suivantes :

  • Nombre d’instances en cours d’exécution
  • Nombre de processeurs alloués à chaque instance
  • Quantité de mémoire vive allouée à chaque instance

Documenter la géoréplication/distribution

Déterminez si les applications Spring Cloud sont actuellement distribuées entre plusieurs régions ou centres de données. Documentez les conditions de disponibilité/contrat SLA pour les applications que vous migrez.

Identifier les clients qui contournent le registre de services

Identifiez toutes les applications clientes qui appellent l’un des services à migrer sans utiliser le registre de services Spring Cloud. Après la migration, ces appels ne seront plus possibles. Mettez à jour ces clients pour qu’ils utilisent Spring Cloud OpenFeign avant la migration.

Migration

Supprimer les configurations restreintes

Dans les services que vous migrez, recherchez et supprimez toutes les affectations explicites des paramètres restreints suivants. Ces propriétés sont automatiquement injectées dans votre environnement d’application pour accéder au serveur de configuration et à la découverte des services. Si ces propriétés se trouvent dans vos fichiers d’application Config Server, vous pouvez rencontrer des conflits et un comportement inattendu. Pour plus d’informations, consultez la section Restriction de Configurer un serveur de configuration Spring Cloud managé dans 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

Créer une instance et des applications Azure Spring Apps

Provisionnez une instance Azure Spring Apps dans votre abonnement Azure. Ensuite, provisionnez une application pour chaque service que vous migrez. N’incluez pas les serveurs de configuration et le registre Spring Cloud. Incluez le service de passerelle Spring Cloud. Pour obtenir des instructions, consultez Démarrage rapide : Déployer votre première application sur Azure Spring Apps.

Préparer le serveur de configuration Spring Cloud

Configurez le serveur de configuration dans votre instance Azure Spring Apps. Pour plus d’informations, consultez Configurer une instance Spring Cloud Config Server pour votre service.

Remarque

Si votre dépôt Spring Cloud Config actuel se trouve sur le système de fichiers local ou local, vous devez d’abord migrer ou répliquer vos fichiers de configuration vers un référentiel privé basé sur le cloud, tel que GitHub, Azure Repos ou BitBucket.

Vérifier la journalisation de la console et configurer les paramètres de diagnostic

Configurez la journalisation afin que toute la sortie soit routée vers la console et non vers des fichiers.

Une fois qu’une application est déployée sur Azure Spring Apps, ajoutez un paramètre de diagnostic pour rendre les événements journalisés disponibles pour la consommation, par exemple via Azure Monitor Log Analytics.

Pile LogStash/ELK

Si vous utilisez la pile LogStash/ELK pour l’agrégation des journaux, configurez le paramètre de diagnostic pour envoyer en streaming la sortie de la console à un hub d’événements Azure. Ensuite, utilisez le plug-in LogStash EventHub pour ingérer les événements journalisés dans LogStash.

Splunk

Si vous utilisez Splunk pour l’agrégation des journaux, configurez le paramètre de diagnostic pour envoyer en streaming la sortie de la console au Stockage Blob Azure. Ensuite, utilisez le module complémentaire Splunk pour les services Microsoft Cloud pour ingérer les événements journalisés dans Splunk.

Configurer un stockage persistant

Si une partie de votre application lit ou écrit dans le système de fichiers local, vous devez configurer le stockage persistant pour remplacer le système de fichiers local. Pour plus d’informations, consultez Utiliser un stockage persistant intégré dans Azure Spring Apps.

Vous devez écrire les fichiers temporaires dans le répertoire /tmp. Pour l’indépendance du système d’exploitation, vous pouvez obtenir ce répertoire à l’aide de System.getProperty("java.io.tmpdir"). Vous pouvez également utiliser java.nio.Files::createTempFile pour créer des fichiers temporaires.

Composants de VMware Tanzu

Dans le niveau Entreprise, le service de configuration d’application pour VMware Tanzu® est fourni pour prendre en charge la configuration externalisée pour vos applications. Managed Spring Cloud Config Server n’est pas disponible dans le niveau Entreprise et n’est disponible que dans le niveau Standard et De base d’Azure Spring Apps.

Service de configuration des applications pour Tanzu

Le service de configuration des applications pour Tanzu est l’un des composants commerciaux de VMware Tanzu. Le service de configuration d’application pour Tanzu est natif de Kubernetes et différent de Spring Cloud Config Server. Application Configuration Service for Tanzu permet une gestion native Kubernetes des ressources ConfigMap qui sont renseignées avec les propriétés définies dans un ou plusieurs dépôts Git.

Dans le niveau Entreprise, il n’y a pas de Cloud Spring Config Server, mais vous pouvez utiliser Application Configuration Service for Tanzu pour gérer les configurations centralisées. Pour plus d’informations, consultez Utiliser Application Configuration Service for Tanzu

Pour utiliser Application Configuration Service for Tanzu, suivez ces étapes pour chacune de vos applications :

  1. Ajoutez une liaison d’application explicite pour déclarer que votre application doit utiliser Application Configuration Service for Tanzu.

    Remarque

    Lorsque vous modifiez l’état de liaison, vous devez redémarrer ou redéployer l’application pour que le changement prenne effet.

  2. Définissez des modèles de fichier config. Les modèles de fichier de configuration vous permettent de choisir l’application et le profil que l’application utilise. Pour plus d’informations, consultez la section Modèle de Utiliser Application Configuration Service for Tanzu.

    Une autre option est de définir les modèles de fichier config en même temps que votre déploiement d’application, comme illustré dans l’exemple suivant :

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

Le service de configuration d’application pour Tanzu s’exécute sur Kubernetes. Pour vous aider à activer une expérience de développement local transparente, nous fournissons les suggestions suivantes.

  • Si vous disposez déjà d’un référentiel Git pour stocker votre configuration externalisée, vous pouvez configurer Spring Cloud Config Server localement en tant que configuration centralisée pour votre application. Une fois le serveur de configuration démarré, il clone le référentiel Git et fournit le contenu du référentiel via son contrôleur web. Pour plus d’informations, consultez Spring Cloud Config dans la documentation Spring. La spring-cloud-config-client possibilité pour votre application de récupérer automatiquement la configuration externe à partir du serveur de configuration.

  • Si vous n’avez pas de référentiel Git ou si vous ne souhaitez pas configurer le serveur de configuration localement, vous pouvez utiliser le fichier de configuration directement dans votre projet. Nous vous recommandons d’utiliser un profil pour isoler le fichier de configuration afin qu’il soit utilisé uniquement dans votre environnement de développement. Par exemple, utilisez-le dev comme profil. Ensuite, vous pouvez créer un fichier application-dev.yml dans le dossier src/main/resource pour stocker la configuration. Pour que votre application utilise cette configuration, démarrez l’application localement avec --spring.profiles.active=dev.

Registre des services Tanzu

VMware Tanzu® Service Registry est l’un des composants commerciaux de VMware Tanzu. Tanzu Service Registry fournit vos applications de niveau Entreprise avec une implémentation du modèle de découverte de services, l’un des principaux principes d’une architecture basée sur un microservice. Vos applications peuvent utiliser Tanzu Service Registry pour découvrir et appeler dynamiquement des services inscrits. L’utilisation de Tanzu Service Registry est préférable à la configuration manuelle de chaque client d’un service, qui peut être difficile ou adopter une forme de convention d’accès, qui peut être fragile en production. Pour plus d’informations, consultez Utiliser le registre de services Tanzu.

Migrer les secrets du coffre Spring Cloud vers Azure Key Vault

Vous pouvez injecter des secrets directement dans des applications par le biais de Spring à l’aide d’Azure Key Vault Spring Boot Starter. Pour plus d’informations, consultez Guide pratique pour utiliser Spring Boot Starter pour Azure Key Vault.

Remarque

La migration peut vous obliger à renommer certains secrets. Mettez à jour votre code d’application en conséquence.

Migrer tous les certificats vers Key Vault

Azure Spring Apps ne fournit pas d’accès au magasin de clés JRE. Vous devez donc migrer des certificats vers Azure KeyVault et modifier le code de l’application pour accéder aux certificats dans KeyVault. Pour plus d’informations, consultez Bien démarrer avec les certificats Key Vault et Bibliothèque de client de certificats Azure Key Vault pour Java.

Configurer les intégrations de gestion des performances des applications (APM)

Azure Spring Apps offre les intégrations APM suivantes. Suivez les liens pour activer l’APM dont vous avez besoin :

Si votre application n’utilise pas un APM pris en charge, envisagez d’utiliser l’application Recommandations à la place. Azure Spring Apps offre une intégration approfondie à Application Recommandations pour la gestion des performances et la réponse en temps réel aux aberrations.

Désactiver les clients et les points de terminaison de métriques dans vos applications

Supprimez tous les clients de métriques utilisés ou tous les points de terminaison de métriques exposés dans vos applications.

Déployer les services

Déployez chacune des applications Spring migrées (sans inclure les serveurs Spring Cloud Config et Registry), comme décrit dans démarrage rapide : Déployer votre première application sur Azure Spring Apps.

Configurer les paramètres externes et les secrets par service

Vous pouvez injecter des paramètres de configuration par service dans chaque service en tant que variables d’environnement. Dans le portail Azure, effectuez les étapes suivantes :

  1. Accédez à l’instance Azure Spring Apps et sélectionnez Applications.
  2. Sélectionnez le service à configurer.
  3. Sélectionnez Configuration.
  4. Entrez les variables à configurer.
  5. Sélectionnez Enregistrer.

Spring Cloud App Configuration Settings

Migrer et activer le fournisseur d’identité

Si l’une des applications Spring Cloud nécessite une authentification ou une autorisation, vérifiez qu’elle est configurée pour accéder au fournisseur d’identité :

  • Si le fournisseur d’identité est l’ID Microsoft Entra, aucune modification ne doit être nécessaire.
  • Si le fournisseur d’identité est une forêt Active Directory local, envisagez d’implémenter une solution d’identité hybride avec l’ID Microsoft Entra. Pour obtenir de l’aide, consultez la documentation sur les identités hybrides.
  • Si le fournisseur d’identité est une autre solution locale, telle que PingFederate, consultez la rubrique d’installation personnalisée de Microsoft Entra Connecter pour configurer la fédération avec l’ID Microsoft Entra. Vous pouvez également utiliser Spring Security pour utiliser votre fournisseur d’identité par le biais d’OAuth2/OpenID Connect ou SAML.

Mettre à jour les applications clientes

Mettez à jour la configuration de toutes les applications clientes pour utiliser les points de terminaison Azure Spring Apps publiés pour les applications migrées.

Post-migration

  • Ajoutez un pipeline de déploiement afin de bénéficier de déploiements automatiques et cohérents. Des instructions sont disponibles pour Azure Pipelines, pour GitHub Actions et pour Jenkins.

  • Utilisez des déploiements intermédiaires pour tester les modifications de code en production avant qu’elles soient disponibles pour une partie ou l’ensemble de vos utilisateurs finaux. Pour plus d’informations, consultez Configurer un environnement de préproduction dans Azure Spring Apps.

  • Ajoutez des liaisons de service pour connecter votre application aux bases de données Azure prises en charge. Ces liaisons de service éliminent la nécessité de fournir des informations de connexion, y compris des informations d’identification, à vos applications Spring Cloud.

  • Envisagez d’utiliser azure Application Recommandations pour surveiller les performances et les interactions de vos applications. Pour plus d’informations, consultez Agent In-process Java d’Application Insights dans Azure Spring Apps.

  • Ajoutez des groupes d’actions et des règles d’alerte Azure Monitor pour détecter et résoudre rapidement les conditions aberrantes. Pour plus d’informations, consultez Tutoriel : Surveiller les ressources Spring Cloud à l’aide d’alertes et de groupes d’actions.

  • Envisagez de répliquer le déploiement d’Azure Spring Apps dans une autre région pour une latence plus faible et une fiabilité et une tolérance de panne plus élevées. Utilisez Azure Traffic Manager pour équilibrer la charge entre les déploiements, ou utilisez Azure Front Door pour ajouter le déplacement SSL et le pare-feu d’applications web avec la protection DDoS.

  • Si la géoréplication n’est pas nécessaire, ajoutez une passerelle d’application Azure pour ajouter le déplacement SSL et le pare-feu d’applications web avec la protection DDoS.

  • Si vos applications utilisent des composants Netflix Spring Cloud hérités, remplacez-les par les alternatives actuelles :

    Ancien Actuel
    Spring Cloud Eureka Registre de service Spring Cloud
    Spring Cloud Netflix Zuul Spring Cloud Gateway
    Spring Cloud Netflix Archaius Serveur de configuration Spring Cloud
    Spring Cloud Netflix Ribbon Spring Cloud LoadBalancer (équilibreur de charge côté client)
    Spring Cloud Hystrix Spring Cloud Circuit Breaker + Resilience4J
    Spring Cloud Netflix Turbine Micrometer + Prometheus