Tous les produits
Search
Centre de documentation

Microservices Engine:Configure a canary release

Dernière mise à jour :Aug 11, 2026

Microservices Engine (MSE) prend en charge le déploiement canari, qui vous permet de déployer des modifications de configuration sur un petit sous-ensemble d'instances pour vérification avant un déploiement complet. Cette pratique minimise le risque de déployer des configurations défectueuses. Cette rubrique décrit comment configurer un déploiement canari pour une instance Nacos dans MSE.

Prérequis

Remarque
  • Nous vous recommandons d'utiliser la version 2.x ou ultérieure du client Nacos.

Informations contextuelles

Lorsque vous gérez les configurations de cluster de manière centralisée, la modification d'une configuration écrase généralement l'ancienne et pousse la mise à jour vers toutes les instances du cluster. Cette approche de diffusion complète est risquée, car une seule erreur de configuration peut entraîner l'échec de l'ensemble du cluster.

Par conséquent, lors de la modification des configurations, nous vous recommandons d'effectuer d'abord un déploiement canari. Cela permet de pousser la nouvelle configuration vers un petit sous-ensemble de machines pour une validation initiale. Si les modifications sont validées, vous pouvez étendre progressivement la diffusion jusqu'à ce qu'elle couvre toutes les instances, réduisant ainsi le risque associé aux changements de configuration.

Lors d'un changement de configuration, vous sélectionnez des nœuds spécifiques pour le déploiement canari. MSE Nacos prend en charge deux méthodes de déploiement canari : le déploiement canari basé sur l'adresse IP et le déploiement canari basé sur les tags.

Déploiement canari basé sur l'adresse IP

Pour les systèmes de petite taille, cette méthode est souvent suffisante et réduit considérablement le risque d'échecs de déploiement dus à des erreurs de configuration.

Créer une configuration canari

  1. Connectez-vous à la console MSE, et sélectionnez une région dans la barre de navigation supérieure.

  2. Dans le volet de navigation de gauche, choisissez Microservices Registry > Instances.

  3. Sur la page Instances, cliquez sur le nom de l'instance.

  4. Dans le volet de navigation de gauche, choisissez Configuration Management > Configurations.

  5. Dans la colonne Actions de la configuration cible, cliquez sur Edit. Dans le panneau Edit Configuration, définissez Release Type sur IP-based Canary Release.

  6. Cliquez sur la zone de saisie Application Node IP Address et sélectionnez les adresses IP pour le déploiement canari dans la liste.

    Vous pouvez également saisir manuellement les adresses IP. La saisie semi-automatique est prise en charge.

    Remarque

    Les adresses IP spécifient les machines abonnées à la configuration. Utilisez des virgules (,) pour séparer plusieurs adresses.

  7. Après avoir modifié la configuration, cliquez sur Canary Release. Dans la boîte de dialogue Comparison of Configuration Content, consultez le Current Official Version Content et le Current Release Content, puis cliquez sur Release.

Afficher la configuration canari

  1. Connectez-vous à la console MSE, et sélectionnez une région dans la barre de navigation supérieure.

  2. Dans le volet de navigation de gauche, choisissez Microservices Registry > Instances.

  3. Sur la page Instances, cliquez sur le nom de l'instance.

  4. Dans le volet de navigation de gauche, choisissez Configuration Management > Configurations.

  5. Recherchez la configuration actuellement en déploiement canari et, dans la colonne Actions, cliquez sur Edit.

  6. Dans le panneau Edit Configuration, cliquez sur l'onglet Beta(IP) pour afficher les informations du déploiement canari.

    L'onglet Beta(IP) affiche les détails du déploiement canari : le type de déploiement est ip address-based canary release, l'adresse IP du nœud d'application est 172.16, le format de configuration est Properties et le contenu de la configuration est useLocalCache=false. En bas de la page, vous trouverez les boutons Canary Release, Stop Canary Release et Full Release.

Autres opérations

  • Stop Canary Release : Sur l'onglet Beta(IP) du panneau Edit Configuration, cliquez sur Stop Canary Release pour annuler le déploiement canari.

  • Full Release : Sur l'onglet Beta(IP) du panneau Edit Configuration, cliquez sur Full Release. Dans la boîte de dialogue Comparison of Configuration Content qui s'affiche, confirmez les informations de configuration et cliquez sur Full Release. La configuration canari devient la nouvelle version officielle, mettant fin au déploiement canari.

Le déploiement canari basé sur l'adresse IP présente les problèmes suivants :

  • Pour les clients utilisant Nacos 1.x, le serveur ne peut pas obtenir avec précision l'adresse IP du client, car le trafic est acheminé via une instance Server Load Balancer (SLB).

  • Dans une architecture basée sur Kubernetes, la reconstruction d'un nœud peut modifier son adresse IP, rendant invalide un déploiement canari basé sur l'adresse IP.

Déploiement canari basé sur les tags

MSE Nacos 2.2.3.3 et versions ultérieures prennent en charge le déploiement canari basé sur les tags. Vous pouvez définir des tags sur les nœuds d'application cliente, puis cibler ces tags pour un déploiement canari.

Important
  • Le déploiement canari basé sur les tags est pris en charge dans MSE Nacos 2.2.3.3 et versions ultérieures. Vous devez mettre à niveau votre moteur vers la version 2.2.3.3 ou ultérieure.

  • Les tags d'application personnalisés pour le déploiement canari sont pris en charge dans Nacos Client open source 2.3.2 et versions ultérieures. Vous devez mettre à niveau votre client vers la version 2.3.2 ou ultérieure.

  • Pour injecter des tags à l'aide de variables d'environnement, vous devez mettre à niveau le client Nacos vers la version 2.4.2 ou ultérieure.

Définir les tags d'application cliente

Vous pouvez définir des tags d'application, au format clé-valeur, à l'aide de propriétés, de paramètres JVM ou de variables d'environnement. Si une clé est spécifiée à plusieurs endroits, la priorité est la suivante : propriétés > paramètres JVM > variables d'environnement. Le paramètre nacos.config.gray.label est le tag intégré par défaut pour les déploiements canaris de configuration dans Nacos.

//1. Pass using properties.
Properties properties = new Properties();
properties.put(PropertyKeyConst.SERVER_ADDR, "your endpoint");
properties.put("project.name", "your app name");
properties.put("nacos.config.gray.label","yourgrayname");
//2. Set using JVM parameters.
// Set the startup parameter -Dnacos.config.gray.label=yourgrayname
//3. Specify using environment variables.
// Set the environment variable nacos_config_gray_label=yourgrayname
 String dataId = "gray_test_dataid";
 String group = "test-group";
 configService.addListener(dataId, group, new Listener() {
        @Override
        public Executor getExecutor() {
            return null;
        }
        @Override
        public void receiveConfigInfo(String configInfo) {
            System.out.println("receiveConfig:" + configInfo);
        }
 });

Publier un déploiement canari basé sur les tags

  • Afficher les tags des écouteurs

    Après avoir injecté des tags d'application sur le client, vous pouvez afficher la liste des écouteurs de configuration sur le serveur pour vérifier les tags de chaque écouteur.

    Cliquez sur l'onglet Listening Query. Vous pouvez constater que le tag du nœud d'application de l'écouteur est nacos.config.gray.label:yourgrayname et que l'état de la poussée est Push succeeded.

  • Publier une configuration canari basée sur les tags

    Cliquez sur Edit Configuration, sélectionnez Tag-based Canary Release, puis sélectionnez les paires clé-valeur des tags existants sur vos nœuds d'application. Vous pouvez voir le nombre de nœuds correspondant aux tags sélectionnés. Sur la page Edit Configuration, saisissez un Data ID (par exemple nacos-config-example-demo) et un Group (par exemple yang-group). Définissez Release Type sur tag-based canary release, sélectionnez nacos.config.gray.label pour Application Node Tag Key, ajoutez un tag canari (par exemple yourgrayname) à Application Node Tag Value et sélectionnez Properties pour Configuration Format. Ensuite, cliquez sur Canary Release.

Après la publication du déploiement canari basé sur les tags, vous pouvez afficher la version de configuration correspondant au client actuel dans l'onglet Configuration Listening Query. Vous pouvez afficher les détails de la version canari actuelle dans Configuration details.

Après avoir observé le groupe canari initial, vous pouvez étendre la portée du déploiement en modifiant les valeurs des tags jusqu'à ce que vous soyez prêt pour une diffusion complète. Cliquer sur Full Release arrête la version canari correspondante. Si le déploiement canari provoque des anomalies métier, cliquez sur Stop Canary Release pour annuler les modifications.

Questions connexes

Utilisation avancée des tags d'application

Outre la définition d'un seul tag tel que nacos.config.gray.label, Nacos vous permet de définir plusieurs tags et d'utiliser une interface SPI (Service Provider Interface) Collector de tags personnalisée. Cela offre plus de flexibilité pour définir et récupérer les tags.

  • Définir des tags à plusieurs valeurs.

    Nacos prend en charge l'injection de plusieurs paires clé-valeur en tant que tags d'application. Vous pouvez spécifier le paramètre nacos.app.conn.labels (par exemple nacos.app.conn.labels="k1=v1,k2=v2,k3=v3") dans les propriétés ou en tant que paramètre JVM. Vous pouvez également spécifier le paramètre nacos_app_conn_labels en tant que variable d'environnement.

    //1. Pass using properties.
    Properties properties = new Properties();
    properties.put(PropertyKeyConst.SERVER_ADDR, "your endpoint");
    properties.put("project.name", "your app name");
    properties.put("nacos.app.conn.labels","app=demo,site=hangzhou-c,otherkey=othervaue");
    //2. Set using JVM parameters.
    // Set the startup parameter -Dnacos.app.conn.labels="app=demo,site=hangzhou-c,otherkey=othervaue"
    //3. Specify using environment variables.
    // Set the environment variable nacos_app_conn_labels="app=demo,site=hangzhou-c,otherkey=othervaue"
    NacosConfigService configService = new NacosConfigService(properties);
    String dataId = "gray_test_dataid";
    String group = "test-group";
    configService.addListener(dataId, group, new Listener() {
            @Override
            public Executor getExecutor() {
                return null;
            }
            @Override
            public void receiveConfigInfo(String configInfo) {
                System.out.println("receiveConfig:" + configInfo);
            }
    });
    
  • SPI de tag d'application personnalisé

    Le client Nacos définit une SPI pour les tags d'application personnalisés. Vous pouvez implémenter l'interface com.alibaba.nacos.common.labels.LabelsCollector et publier votre classe d'implémentation en tant que service pour créer une SPI de tag d'application personnalisé.

    package your.demo.test;
    import com.alibaba.nacos.common.labels.LabelsCollector;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Properties;
    /**
     * TestLabelsCollector.
     *
     * @author yourname
     */
    public class TestLabelsCollector implements LabelsCollector {
        @Override
        public String getName() {
            return "testlables";
        }
        @Override
        public Map<String, String> collectLabels(Properties properties) {
            Map<String, String> labels = new HashMap<>();
            labels.put("test", "implements your lables logic");
            return labels;
        }
        @Override
        public int getOrder() {
            return 1;
        }
    }

Versions canaries parallèles

Une seule configuration peut avoir plusieurs versions, notamment une version officielle, une version canari basée sur l'adresse IP et plusieurs versions canaries basées sur les tags. Lorsque plusieurs versions existent, le serveur Nacos utilise l'ordre de priorité suivant pour faire correspondre et pousser les configurations : version canari basée sur l'adresse IP > version canari basée sur les tags > version officielle.

Lorsque plusieurs versions canaries basées sur les tags existent, elles sont triées par la valeur du champ priority . Une valeur plus élevée indique une priorité plus grande. Si les priorités sont égales, les versions sont triées par nom. Nous vous recommandons de définir une priorité claire pour chaque version canari.

Lorsque le serveur reçoit une demande d'un nœud d'application tagué, il vérifie d'abord s'il existe une version canari basée sur l'adresse IP correspondante. Si une correspondance est trouvée, cette version est renvoyée. Sinon, le serveur tente de faire correspondre une version canari basée sur les tags par priorité. Si une version basée sur les tags correspond, cette configuration est renvoyée. Si aucune version canari ne correspond, le serveur renvoie la version officielle. Vous pouvez afficher quelle version de configuration est associée à chaque nœud d'application sur la page Listening Query de la console MSE.

Remarque

MSE Nacos 2.3.0 et versions ultérieures prennent en charge les versions canaries parallèles. Le nombre de versions canaries pour une seule configuration est limité. Par défaut, vous pouvez avoir un maximum de cinq versions canaries basées sur les tags. Toute tentative de création supplémentaire sera bloquée.

Planification des tags d'application

Lors de la planification des tags pour vos nœuds d'application, définissez-les en fonction de l'impact métier afin de permettre des déploiements progressifs et de réduire le risque lié aux changements. Voici les meilleures pratiques courantes :

  • Utilisez les noms d'application comme tags. Démarrez le déploiement canari sur les applications non critiques. Après avoir confirmé l'absence de problèmes, étendez le déploiement pour inclure les applications principales.

  • Vous pouvez isoler le trafic des machines amont et aval au niveau de la couche d'entrée du trafic. Par exemple, vous pouvez identifier un lot de machines pour les tests des utilisateurs internes et leur attribuer un tag canari unique. Cela vous permet de créer un déploiement canari ciblant spécifiquement les utilisateurs internes.

Format des tags d'application

Les clés et les valeurs des tags ne peuvent contenir que des lettres majuscules et minuscules, des chiffres, des traits de soulignement (_), des tirets (-) et des points (.). Les tags dans tout autre format sont ignorés. Si vous spécifiez plusieurs paires clé-valeur à l'aide du paramètre nacos.app.conn.labels, vous devez suivre le format "k1=v1,k2=v2,k3=v3" . Si vous transmettez une valeur mal formée telle que "k1=v1,k2", la partie k2 est ignorée et l'entrée est analysée comme k1=v1.