Application et déploiement dans 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.

Cet article s’applique à : ✔️ Java ✔️ C#

Cet article s’applique au : Niveau ✔️ De base/Standard ✔️ Entreprise

L’application et le déploiement sont les deux concepts clés du modèle de ressources d’Azure Spring Apps. Dans Azure Spring Apps, une application est l’abstraction d’une application métier. Une version de code ou de binaire déployée comme application s’exécute dans un déploiement. Les applications s’exécutent dans une instance de service Azure Spring Apps ou simplement dans une instance de service, comme indiqué ci-dessous.

Diagram showing the relationship between the apps and deployments.

Vous pouvez avoir plusieurs instances de service au sein d’un seul abonnement Azure, mais le service Azure Spring Apps est plus facile à utiliser quand toutes les applications qui composent une application métier résident dans une instance de service unique. L’une des raisons est que les applications sont susceptibles de communiquer entre elles. Ils peuvent facilement le faire à l’aide du registre du service Eureka dans l’instance de service.

Le plan Azure Spring Apps Standard permet à une application d’avoir un déploiement de production et un déploiement intermédiaire, afin de pouvoir effectuer facilement un déploiement bleu/vert.

Application

Les fonctionnalités/propriétés suivantes sont définies au niveau de l’application.

Fonctionnalités Description
Point de terminaison
public
URL permettant d’accéder à l’application.
Domaine
personnalisé
Enregistrement CNAME qui sécurise le domaine personnalisé.
Liaison de
service
Connexion prête à l’emploi avec d’autres services Azure.
Identité
managée
L’identité managée par l’ID Microsoft Entra permet à votre application d’accéder facilement à d’autres ressources protégées par Microsoft Entra, telles qu’Azure Key Vault.
Stockage
persistant
Paramètre qui permet aux données de conserver au-delà du redémarrage de l’application.

Déploiement

Les fonctionnalités/propriétés suivantes sont définies au niveau du déploiement et sont échangées lors de l’échange du déploiement de production et de préproduction.

Fonctionnalités Description
UC Nombre de vcores par instance d’application.
Mémoire Go de mémoire par instance d’application.
Nombre
d’instances
Nombre d’instances d’application, définies manuellement ou automatiquement.
Mise à l’échelle automatique Le nombre d’instances de mise à l’échelle est automatiquement basé sur des règles et des planifications prédéfinies.
Options
JVM
Options JVM à définir.
Variables
d’environnement
Variables d’environnement à définir.
Version du
runtime
Java 8 ou Java 11.

Environnement

Azure Spring Apps monte certains fichiers YAML en lecture seule sur vos applications déployées. Ces fichiers contiennent le contexte Azure d’un déploiement. La liste suivante présente les chemins d’accès et le contenu de ces fichiers YAML :

  • /etc/azure-spring-cloud/context/azure-spring-apps.yml

    AZURE_SPRING_APPS:
        SUBSCRIPTION_ID:  <your-azure-subscription-id>
        RESOURCE_GROUP: <your-resource-group-name>
        NAME: <your-azure-spring-apps-name>
    
  • /etc/azure-spring-cloud/context/azure-spring-apps-deployment.yml

    AZURE_SPRING_APPS:
         APP:
            NAME: <your-app-name>
         DEPLOYMENT:
            NAME: <your-deployment-name>
            ACTIVE: true # true if the deployment is in production, false if in staging
    

Si votre application est une application Spring Boot, ces deux chemins de fichier sont ajoutés à la variable d’environnement SPRING_CONFIG_ADDITIONAL_LOCATION . De cette façon, votre application peut charger ces propriétés en tant que configurations et les utiliser dans votre code. Par exemple, vous pouvez utiliser l’annotation @ConfigurationProperties pour lier les propriétés YAML à une classe Java. L’extrait de code suivant montre comment créer une @Configuration classe qui représente le contexte Azure :

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "azure-spring-apps")
@Data
public class AzureSpringAppsContext {

    private String subscriptionId;
    private String resourceGroup;
    private String name;

    private AppContext app;
    private DeploymentContext deployment;

    @Data
    public static class AppContext {
        private String name;
    }

    @Data
    public static class DeploymentContext {
        private String name;
        private boolean active;
    }
}

Pour toutes les autres applications polyglottes, vous devrez peut-être lire et accéder aux propriétés correspondantes à l’aide des bibliothèques de lecture/écriture de fichiers correspondantes dans vos applications.

Restrictions

  • Une application doit avoir un déploiement de production. L’API bloque la suppression d’un déploiement de production. Vous devez échanger un déploiement en préproduction avant de le supprimer.
  • Une application peut avoir au maximum deux déploiements. L’API bloque la création de plus de deux déploiements. Déployez votre nouveau binaire dans le déploiement de production ou intermédiaire existant.
  • La gestion du déploiement n’est pas disponible dans le plan de base. Utilisez le plan Standard ou Enterprise pour la fonctionnalité de déploiement bleu-vert.

Étapes suivantes