Puede publicar una aplicación desplegada en un gran número de instancias o con una arquitectura de servicios compleja en varias fases. En cada fase, la aplicación se actualiza solo en algunas instancias. La publicación por fases se completa cuando la aplicación se ha actualizado en todas las instancias. Este tema describe cómo implementar una publicación por fases de una aplicación en la consola de Enterprise Distributed Application Service (EDAS).
Descripción general
Durante una publicación por fases, la aplicación se actualiza solo en algunas instancias en cada fase. Si ocurre un error durante el proceso, puede finalizarlo y revertir la aplicación. Una vez corregido el error, puede volver a publicar la aplicación por fases.
Cuando una aplicación en un clúster de Kubernetes se publica en varias fases, las instancias de la aplicación se distribuyen equitativamente entre cada fase. Si no es posible una distribución equitativa, se asigna un menor número de instancias a las primeras fases en comparación con las posteriores.
Escenario
Por ejemplo, suponga que una aplicación está desplegada en 10 instancias y es necesario actualizar su versión de V1 a V2 en todas ellas.
La siguiente figura muestra cómo se publica la aplicación en las instancias según una directiva específica en tres fases.

Notas de uso
Si publica una aplicación en un clúster de Kubernetes en varias fases, se crea un Deployment para dicha publicación.
Procedimiento
Inicie sesión en la consola de EDAS consola de EDAS.
En el panel de navegación izquierdo, seleccione . En la barra de navegación superior, seleccione una región. En la parte superior de la página Applications, seleccione un namespace de microservicios en la lista desplegable Microservices Namespace. A continuación, haga clic en el nombre de la aplicación que desea gestionar.
En la esquina superior derecha de la página de application overview, seleccione .
En la sección Phased Release de la página Select Deployment Mode, haga clic en Start Deployment en la esquina superior derecha.
-
En la página Phased Release, cargue el paquete de despliegue de la nueva versión de la aplicación.
Parámetro
Descripción
Application Runtime Environment
Especifique un entorno de ejecución para la aplicación. Valor predeterminado: Standard Java Application Runtime Environment.
Java Environment
Especifique un entorno de Java para la aplicación. Valores válidos: Open JDK 8 [Latest Version:1.8.0_191], Open JDK 7, Open JDK 17, Open JDK 11, JDK 8, JDK 7, Dragonwell 8, Dragonwell 17 y Dragonwell 11.
Current Environment
Se muestra el entorno de ejecución actual de la aplicación. Este entorno solo se visualiza si la aplicación se desplegó mediante un paquete JAR o WAR. EDAS actualiza automáticamente el entorno de Java o el entorno de ejecución de su aplicación a la versión más reciente.
File Uploading Method
Especifique un método de carga de archivos. Valores válidos: Upload JAR Package y JAR Package Address.
NotaEl método de carga de archivos que especifique debe coincidir con el método utilizado para desplegar la aplicación. Se admiten paquetes JAR, paquetes WAR e imágenes. En este ejemplo se utiliza un paquete JAR.
Upload JAR Package
Si establece el parámetro File Uploading Method en Upload JAR Package, haga clic en Click to Upload para cargar un paquete JAR.
JAR Package Address
Si establece el parámetro File Uploading Method en JAR Package Address, introduzca la URL de un paquete JAR.
NotaSi introduce la URL de un objeto de Object Storage Service (OSS) con firma, EDAS almacena el objeto en caché para operaciones posteriores, como reversiones y escalados horizontales, al publicar la aplicación por fases.
Container Registry Repository Type
NotaEl parámetro Container Registry Repository Type solo está disponible si despliega aplicaciones Java, Tomcat o EDAS-Container (HSF) en clústeres de ACK. Este parámetro no está disponible si despliega aplicaciones en clústeres de ACK Serverless (ASK).
Debe instalar el componente aliyun-acr-credential-helper. Para obtener más información, consulte Use the aliyun-acr-credential-helper component to pull images without secrets.
Si desea utilizar un repositorio de imágenes de Container Registry Enterprise Edition, configure el acceso a través de VPC. Para obtener más información, consulte Configure access over VPCs.
La tarea de compilación de imágenes para la aplicación se ejecuta en su clúster y consume sus recursos. El límite de recursos predeterminado para una sola tarea de compilación de imágenes es de 1 GB por núcleo. Para obtener más información sobre cómo ajustar los límites de recursos para las tareas de compilación de imágenes, consulte How do I adjust resource limits for image building?
Si utiliza un repositorio de Container Registry Personal Edition o Container Registry Enterprise Edition para almacenar la imagen creada, la tarea de compilación de imágenes se ejecuta en su clúster. Las tareas de compilación están sujetas a las siguientes reglas de afinidad de programación y tolerancia:
-
EDAS no programa tareas de compilación en nodos que tengan la etiqueta
edas.image.build=disable. -
EDAS programa preferentemente tareas de compilación en nodos que tengan la etiqueta
edas.image.build=enable. Sin embargo, también puede programar tareas de compilación en nodos que no tengan la etiquetaedas.image.build. -
Las tareas de compilación pueden tolerar nodos que tengan el taint
key=edas.image.build, effect=NoSchedule.
Nota-
Si no desea programar tareas de compilación en nodos específicos, agregue la etiqueta
edas.image.build=disablea dichos nodos. -
Si desea usar un nodo como nodo dedicado para una tarea de compilación, agregue la etiqueta
edas.image.build=enabley el taintkey=edas.image.build, effect=NoScheduleal nodo. Esto evita que los pods que no toleran el taint se programen en ese nodo.
Region of Container Registry
Seleccione la región donde reside su imagen de Container Registry. Este parámetro es obligatorio solo si establece el parámetro Container Registry Repository Type en Container Registry Enterprise Edition.
Container Registry
Seleccione su imagen de contenedor. Este parámetro es obligatorio solo si establece el parámetro Container Registry Repository Type en Container Registry Enterprise Edition.
Image Repository Namespace
Seleccione el namespace de microservicios donde reside su repositorio de imágenes en la lista desplegable. También puede hacer clic en + Create Namespace para crear un namespace de microservicios.
Version
Número de versión del paquete de despliegue JAR. Especifique un número de versión o haga clic en Use Timestamp as Version Number para generar un número de versión.
Time Zone
Zona horaria de la aplicación. Especifique la zona horaria de la región indicada en formato UTC.
Single-pod Resource Quota
CPU, memoria y almacenamiento temporal que desea reservar para un pod. Si desea especificar un límite, introduzca un valor numérico. Valor predeterminado: 0. Un valor de 0 indica que no se impone ningún límite. Las cuotas máximas o mínimas de CPU, memoria y almacenamiento temporal dependen del rendimiento del clúster.
-
Configure los parámetros en la sección Release Policy.

Parámetro
Descripción
Release Batch
Número de fases en las que se publica la aplicación en las instancias.
Batch Mode
NotaEl parámetro Batch Mode solo se muestra si establece el parámetro Release Batch en un valor mayor que 1.
Valores válidos: Automatic y Manual.
Automatic: El sistema publica automáticamente la aplicación por fases en un intervalo especificado por el parámetro Interval. El parámetro Interval define el tiempo entre cada fase. Unidad: minutos.
Manual: Debe activar manualmente la publicación de la siguiente fase.
Deployment Interval Between Batches
Especifique un intervalo para desplegar la aplicación en las instancias de cada fase si el número de instancias es mayor que 1. Unidad: segundos.
(Opcional) Configure los ajustes avanzados según sus requisitos empresariales, como los parámetros en las secciones Scheduling Rules, Startup Commands, Environment Variables, Persistent Storage, Local Storage, Application Life Cycle Management y Log Collection Settings. Para obtener más información, consulte Advanced settings.
Después de configurar los parámetros, haga clic en OK.
Comprobación del resultado
En la página de change list de la aplicación, consulte el estado de la publicación por fases y el valor del parámetro Version a la derecha del parámetro Description. Si todas las fases muestran el estado Success y el valor del parámetro Version ha cambiado a V2, la publicación por fases se completó correctamente.
Reversión de una aplicación
Si durante una publicación por fases la aplicación no se actualiza a la nueva versión en una o más instancias, la publicación permanecerá en estado Executing. Al actualizar una aplicación, si una instancia de la primera fase deja de responder, vaya a la página de change list y haga clic en Roll Back para revertir la aplicación en esa instancia al paquete de despliegue y las configuraciones de la versión anterior.
Pueden ocurrir errores durante una publicación por fases. Para obtener más información sobre cómo solucionar errores, consulte How do I troubleshoot issues in a change process?
Errores como la indisponibilidad del paquete de despliegue o fallos en las comprobaciones de estado pueden provocar fallos en las actualizaciones de la aplicación. La actualización actual se finaliza automáticamente y la aplicación se revierte.
Durante una actualización, el tiempo máximo de espera para una sola fase es de 30 minutos. Si el proceso de actualización se suspende debido a un error de tiempo de espera, vaya a la página de change list para finalizar el proceso y revertir la aplicación.