Lorsqu'un service EAS compte des dizaines ou des centaines de réplicas, une mise à jour progressive complète présente un risque de déploiement important, car elle n'offre aucun contrôle par lots ni mécanisme de pause. La fonctionnalité de plan de mise à jour répond à ce besoin en prenant en charge deux modes : le lot manuel (Partition) et le lot automatique (Batch Update). Vous maîtrisez ainsi le rythme des déploiements à grande échelle et effectuez rapidement un retour arrière en cas de problème.
Concepts clés
-
Plusieurs modes de mise à jour : Deux modes sont pris en charge : le lot manuel (Partition) et le lot automatique (Batch Update).
Caractéristique
Manual Batching (Partition)
Auto-Batching(Batch Update)
Contrôle
Totalement manuel ; vous faites avancer chaque lot
Le système fait avancer les lots automatiquement après la configuration
Charge opérationnelle
Plus élevée
Plus faible
Flexibilité
Maximale
Moyenne
Idéal pour
Déploiements canaris de services en ligne critiques
Mises à jour courantes de services à grande échelle
Contrôle total tout au long de la mise à jour : Mettez en pause, effectuez un retour arrière ou modifiez la stratégie de lot à tout moment pendant la mise à jour. Supprimez le plan pour revenir à la stratégie de remplacement complet par défaut.
Visibilité en temps réel de l'état : La section Update Plan de l'onglet Auto Scaling de la page des détails du service affiche l'état en temps réel, la progression, le compte à rebours des lots et d'autres informations clés.
Démarrage rapide
L'exemple suivant décrit la création d'un plan de mise à jour et la réalisation d'une mise à jour de service à l'aide du lot manuel sur un service comportant 10 réplicas.
Prérequis : activer la fonctionnalité de plan de mise à jour
La fonctionnalité de plan de mise à jour ne peut être activée que lors de la création d'un nouveau service. Il est impossible de l'activer en mettant à jour un service existant.
Lors de la création d'un service, ajoutez "eas.aliyun.com/enable-rollout": "true" au champ features de la configuration JSON. Sans ce paramètre, la fonctionnalité de plan de mise à jour n'est pas disponible. Exemple :
{
"metadata": {
"instance": 10
},
"features": {
"eas.aliyun.com/enable-rollout": "true"
}
}
Étape 1 : Créer un plan de mise à jour
Cliquez sur le service cible pour ouvrir la page des détails du service EAS.
Cliquez sur l'onglet Auto Scalingg, puis dans la section Update Plan, cliquez sur Create Update Plan.
Dans le panneau qui s'affiche depuis la droite, sélectionnez Manual Batching et définissez le Update Instance Count sur
2/10.Cliquez sur OK.
Une fois le plan de mise à jour créé, la section Update Plan affiche l'état Pending.(Currently pending: The configuration is saved and will be executed as scheduled after you submit the change in 'Update Service'.)
Étape 2 : Déclencher la mise à jour
Cliquez sur Update sur la page des détails du service et envoyez la nouvelle configuration du service.
Le système démarre la mise à jour selon le plan : il met d'abord à jour 2 réplicas, puis se met en pause et attend. La section Update plan affiche la progression actuelle (2/10).
Étape 3 : Vérifier et passer au lot suivant
Vérifiez vos métriques métier (latence, taux d'erreur, etc.). Si aucun problème n'est détecté, modifiez le plan et définissez le nombre cible de réplicas sur 10. Le système met à jour les 8 réplicas restants jusqu'à la fin de la mise à jour.
Si des problèmes sont détectés, modifiez le plan de mise à jour et définissez le nombre cible de réplicas sur 0. Tous les réplicas mis à jour reviennent à la version précédente.
Référence des états
Le plan de mise à jour utilise un modèle d'état à deux niveaux : le niveau supérieur correspond à la phase, et le second niveau à l'étape (qui n'existe que lorsque la phase est Active).
Not configured : Aucun plan de mise à jour n'existe. La mise à jour du service déclenche un remplacement complet.
Pending : Un plan a été créé et attend une mise à jour du service pour être activé.
-
Active : La mise à jour a été déclenchée et le système remplace les réplicas par lots. Trois étapes existent au sein de l'état Active :
Current batch executing : Le lot est en cours d'exécution ; le nombre de mises à jour approche la cible.
Current batch paused : Un utilisateur a suspendu l'exécution ; la progression est gelée.
Current batch completed : La cible du lot a été atteinte. Le système attend que vous fassiez avancer manuellement (lot manuel) ou que le compte à rebours expire (lot automatique).
-
Completed : La série actuelle de mises à jour est terminée.
Une nouvelle mise à jour du service redéclenche le plan et fait passer l'état à Active.
La modification du plan fait passer l'état à Pending et attend la prochaine mise à jour du service.
Le tableau suivant indique les opérations disponibles pour chaque état :
Opération | Non configuré | En attente | Actif | Terminé | ||
Lot actuel en cours d'exécution | Lot actuel en pause | Lot actuel terminé | ||||
Créer un plan | ✓ | |||||
Modifier le plan | ✓ | ✓ | ✓ | ✓ | ✓ | |
Supprimer le plan | ✓ | ✓ | ✓ | ✓ | ✓ | |
Mettre en pause | ✓ | |||||
Reprendre | ✓ | |||||
Mettre à jour le service | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Notes d'utilisation
Modification d'un plan actif : Les nouveaux paramètres prennent effet immédiatement. Si le plan est actuellement en pause, la modification le reprend automatiquement.
Modification d'un plan terminé : La configuration est enregistrée mais ne déclenche pas automatiquement une mise à jour. Mettez à nouveau à jour le service pour appliquer le nouveau plan.
Suppression d'un plan actif : Les réplicas restants continuent d'être mis à jour selon la stratégie de remplacement complet. Aucun retour arrière n'est effectué.
Mise à l'échelle alors qu'un plan de mise à jour existe : Les paramètres du plan restent inchangés et s'appliquent en fonction du nombre réel de réplicas au moment de l'exécution.
Définition du nombre de réplicas du premier lot sur 0 en mode manuel : Cette valeur est valide. La mise à jour du service est déclenchée immédiatement, mais se met en pause au point de départ, en attendant que vous fassiez avancer manuellement.
Définition de la taille du lot ≥ nombre total de réplicas en mode automatique : Tous les réplicas sont mis à jour en un seul lot, ce qui équivaut à un remplacement complet.
Configuration JSON
Configurez le plan de mise à jour en définissant les paramètres dans le champ metadata.rolling_strategy de la configuration JSON du service.
Structure de configuration complète
{
"metadata": {
"rolling_strategy": {
"max_surge": "25%",
"max_unavailable": "20%",
"partition": 5,
"paused": false,
"batch_update": {
"interval": "5m",
"batch_size": 2
}
}
}
}
Référence des champs
|
Champ |
Type |
Description |
Par défaut |
|
|
Nombre ou pourcentage |
Nombre maximal de réplicas supplémentaires autorisés pendant une mise à jour |
0 |
|
|
Nombre ou pourcentage |
Nombre maximal de réplicas pouvant être indisponibles pendant une mise à jour |
20 % |
|
|
Nombre ou pourcentage |
Lot manuel : nombre de réplicas à mettre à jour dans le lot actuel |
— |
|
|
Booléen |
Indique si la mise à jour doit être mise en pause. S'applique aux deux modes. |
false |
|
|
Chaîne de durée (par exemple, |
Lot automatique : temps d'attente entre la fin d'un lot et le début du suivant |
— |
|
|
Nombre ou pourcentage |
Lot automatique : nombre de réplicas à mettre à jour par lot |
Égal à |
Exemples de configuration
Lot manuel : déploiement canari
{
"metadata": {
"instance": 10,
"rolling_strategy": {
"partition": 2,
"max_unavailable": 1
}
}
}
10 réplicas au total. Les 2 premiers sont mis à jour ; les 8 restants conservent l'ancienne version jusqu'à ce que vous fassiez avancer le plan.
Lot automatique : service à grande échelle
{
"metadata": {
"instance": 100,
"rolling_strategy": {
"batch_update": {
"interval": "10m",
"batch_size": 5
}
}
}
}
100 réplicas au total. Le système met automatiquement à jour 5 réplicas toutes les 10 minutes.
Pause d'urgence
{
"metadata": {
"rolling_strategy": {
"paused": true
}
}
}
Retour arrière rapide
{
"metadata": {
"rolling_strategy": {
"partition": 0
}
}
}
Définissez partition sur 0 pour ramener tous les réplicas mis à jour à la version précédente. Cela fonctionne pour les modes de lot manuel et de lot automatique.
FAQ
Q : Comment effectuer un retour arrière rapide ?
Si vous découvrez un problème lors d'une mise à jour (par exemple, lors du passage de V2 à V3), utilisez l'approche suivante pour un retour arrière optimal :
Basculez le plan de mise à jour vers le lot manuel et définissez le nombre cible de réplicas sur 0. Tous les réplicas mis à jour reviennent à la version précédente (V2).
Mettez à jour la configuration du service (vers V4 ou toute autre version stable).
Modifiez le plan de mise à jour selon vos besoins pour poursuivre le déploiement.
Si la mise à jour est déjà terminée et que tous les réplicas exécutent la nouvelle version (V3), il n'est plus possible d'effectuer un retour arrière via le plan de mise à jour. Accédez à la liste des versions du service et sélectionnez une version spécifique vers laquelle revenir.
Q : Les paramètres de lot manuel et de lot automatique peuvent-ils être définis simultanément ?
Non. Le paramètre partition (lot manuel) est prioritaire. Lorsque partition est défini, le système ignore tous les paramètres de lot automatique.
Q : Comment mettre en pause une mise à jour en cours ?
Définissez paused: true. Cela fonctionne pour les modes de lot manuel et de lot automatique.
Q : Que se passe-t-il si je ne définis pas de taille de lot pour le lot automatique ?
Le système utilise la valeur de max_unavailable comme taille de lot.
Q : Que se passe-t-il si je ne définis pas d'intervalle de lot pour le lot automatique ?
La taille du lot s'applique toujours, mais le système ne passera pas automatiquement au lot suivant. Cela équivaut au lot manuel et nécessite que vous fassiez avancer chaque lot manuellement.