Uso de estrategias de implementación - AWS AppConfig

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de estrategias de implementación

Una estrategia de implementación le permite publicar lentamente los cambios en los entornos de producción en el plazo de minutos u horas. Una estrategia de AWS AppConfig implementación define los siguientes aspectos importantes de una implementación de configuración.

Opción Descripción

Tipo de implementación

El tipo de despliegue define cómo se despliega o despliega la configuración. AWS AppConfig admite los tipos de despliegue lineal y exponencial.

  • Lineal: para este tipo, AWS AppConfig procesa el despliegue mediante incrementos del factor de crecimiento distribuidos uniformemente a lo largo del despliegue. A continuación, se muestra un ejemplo de cronograma para una implementación de 10 horas que utiliza un crecimiento lineal del 20%:

    Tiempo transcurrido Implementación en curso

    0 horas

    0%

    2 horas

    20%

    4 horas

    40%

    6 horas

    60%

    8 horas

    80%

    10 horas

    100%

  • Exponencial: para este tipo, AWS AppConfig procesa la implementación exponencialmente utilizando la siguiente fórmula: G*(2^N). En esta fórmula, G es el porcentaje de pasos especificado por el usuario y N es el número de pasos hasta que la configuración se implementa en todos los destinos. Por ejemplo, si especifica un factor de crecimiento de 2, el sistema implementa la configuración de la siguiente manera:

    2*(2^0) 2*(2^1) 2*(2^2)

    Expresada numéricamente, la implementación se despliega de la siguiente manera: 2 % de los destinos, 4 % de los destinos, 8 % de los destinos, y así sucesivamente hasta que la configuración se haya implementado en todos los destinos.

Porcentaje de pasos (factor de crecimiento)

Esta configuración especifica el porcentaje de intermediarios objetivo durante cada paso de la implementación.

nota

En el SDK y la Referencia de la API de AWS AppConfig, step percentage se llama growth factor.

Tiempo de implementación

Esta configuración especifica la cantidad de tiempo durante la cual se AWS AppConfig despliega en los hosts. No se trata de un valor de tiempo de espera. Se trata de una ventana de tiempo durante la cual la implementación se procesa en intervalos.

Tiempo procesamiento

Esta configuración especifica la cantidad de tiempo que AWS AppConfig monitorea las CloudWatch alarmas de Amazon después de que la configuración se haya implementado en el 100% de sus destinos, antes de considerar que la implementación se ha completado. Si se activa una alarma durante este tiempo, AWS AppConfig revierte la implementación. Debe configurar los permisos para AWS AppConfig realizar la reversión en función de CloudWatch las alarmas. Para obtener más información, consulte (Opcional) Configure los permisos para la reversión en función de las alarmas CloudWatch .

Puede elegir una estrategia predefinida incluida AWS AppConfig o crear la suya propia.

Estrategias de implementación predefinidas

AWS AppConfig incluye estrategias de despliegue predefinidas para ayudarle a implementar rápidamente una configuración. En lugar de crear sus propias estrategias, puede elegir una de las siguientes opciones al implementar una configuración.

Estrategia de implementación Descripción

AppConfig. PercentEvery Lineal: 20 (6 minutos)

AWS recomendado:

Esta estrategia implementa la configuración en el 20 % de todos los objetivos cada seis minutos para una implementación de un 30 minutos. El sistema monitorea CloudWatch las alarmas de Amazon durante 30 minutos. Si no se reciben alarmas en este momento, se completa la implementación. Si se activa una alarma durante este tiempo, AWS AppConfig revierte la implementación.

Recomendamos usar esta estrategia para las implementaciones de producción porque se ajusta a las AWS mejores prácticas e incluye un énfasis adicional en la seguridad de las implementaciones debido a su larga duración y tiempo de inactividad.

AppConfig. Canary, 10 por ciento, 20 minutos

AWS recomendado:

Esta estrategia procesa la implementación exponencialmente utilizando un factor de crecimiento del 10 % durante 20 minutos. El sistema monitorea CloudWatch las alarmas durante 10 minutos. Si no se reciben alarmas en este momento, se completa la implementación. Si se activa una alarma durante este tiempo, AWS AppConfig revierte el despliegue.

Recomendamos usar esta estrategia para las implementaciones de producción porque se ajusta a las AWS mejores prácticas para las implementaciones de configuración.

AppConfig.AllAtOnce

Quick (Inmediata):

Esta estrategia implementa la configuración en todos los destinos inmediatamente. El sistema monitorea CloudWatch las alarmas durante 10 minutos. Si no se reciben alarmas en este momento, se completa la implementación. Si se activa una alarma durante este tiempo, AWS AppConfig revierte la implementación.

AppConfig4. LinealPercentEvery: 50 x 30 segundos

Prueba/demostración:

Esta estrategia implementa la configuración en la mitad de todos los objetivos cada 30 segundos para una implementación de un minuto. El sistema monitorea CloudWatch las alarmas de Amazon durante 1 minuto. Si no se reciben alarmas en este momento, se completa la implementación. Si se activa una alarma durante este tiempo, AWS AppConfig revierte la implementación.

Recomendamos utilizar esta estrategia solo con fines de prueba o demostración, ya que tiene una duración y tiempo de cocción cortos.

Creación de una estrategia de implementación

Si no quiere utilizar una de las estrategias de despliegue predefinidas, puede crear la suya propia. Puede crear un máximo de 20 estrategias de implementación. Al implementar una configuración, puede elegir la estrategia de implementación que funcione mejor para la aplicación y el entorno.

Creación de una estrategia de implementación de AWS AppConfig (consola)

Utilice el siguiente procedimiento para crear una estrategia de AWS AppConfig despliegue mediante la AWS Systems Manager consola.

Para crear una estrategia de implementación
  1. Abra la AWS Systems Manager consola en https://console.aws.amazon.com/systems-manager/appconfig/.

  2. En el panel de navegación, elija Estrategias de despliegue y, a continuación, elija Crear estrategia de despliegue.

  3. En Name (Nombre), escriba un nombre para la estrategia de implementación.

  4. En Description (Descripción), introduzca información sobre la estrategia de implementación.

  5. En Deployment type (Tipo de implementación), elija un tipo.

  6. En Step percentage (Porcentaje de pasos), elija el porcentaje de intermediarios objetivo durante cada paso de la implementación.

  7. En Deployment time (Tiempo de implementación), especifique la duración total de la implementación en minutos u horas.

  8. En Bake Time, introduce el tiempo total, en minutos u horas, para monitorizar CloudWatch las alarmas de Amazon antes de continuar con el siguiente paso de una implementación o antes de considerar que la implementación se ha completado.

  9. En la sección Tags (Etiquetas) introduzca una clave y un valor opcional. Puede especificar un máximo de 50 etiquetas para un recurso.

  10. Elija Create deployment strategy (Crear estrategia de implementación).

importante

Si ha creado un perfil de configuración para AWS CodePipeline, entonces, debe crear una canalización en la CodePipeline que se especifique AWS AppConfig como proveedor de despliegue. No tiene que realizar Implementar una configuración. Sin embargo, debe configurar un cliente para recibir las actualizaciones de la configuración de la aplicación, tal y como se describe en Recuperación de configuraciones mediante una llamada directa a las API. Para obtener información sobre cómo crear una canalización que se especifique AWS AppConfig como proveedor de despliegue, consulte el Tutorial: Creación de un canal que se utilice AWS AppConfig como proveedor de despliegue en la Guía del AWS CodePipeline usuario.

Continúe en Implementar una configuración.

Creación de una estrategia de implementación de AWS AppConfig (línea de comandos)

El siguiente procedimiento describe cómo utilizar AWS CLI (en Linux o Windows) o cómo AWS Tools for PowerShell crear una estrategia de AWS AppConfig despliegue.

Crear una estrategia de implementación paso a paso
  1. Abra el AWS CLI.

  2. Ejecute el siguiente comando para crear una estrategia de implementación.

    Linux
    aws appconfig create-deployment-strategy \ --name A_name_for_the_deployment_strategy \ --description A_description_of_the_deployment_strategy \ --deployment-duration-in-minutes Total_amount_of_time_for_a_deployment_to_last \ --final-bake-time-in-minutes Amount_of_time_AWS AppConfig_monitors_for_alarms_before_considering_the_deployment_to_be_complete \ --growth-factor The_percentage_of_targets_to_receive_a_deployed_configuration_during_each_interval \ --growth-type The_linear_or_exponential_algorithm_used_to_define_how_percentage_grows_over_time \ --replicate-to To_save_the_deployment_strategy_to_a_Systems_Manager_(SSM)_document \ --tags User_defined_key_value_pair_metadata_of_the_deployment_strategy
    Windows
    aws appconfig create-deployment-strategy ^ --name A_name_for_the_deployment_strategy ^ --description A_description_of_the_deployment_strategy ^ --deployment-duration-in-minutes Total_amount_of_time_for_a_deployment_to_last ^ --final-bake-time-in-minutes Amount_of_time_AWS AppConfig_monitors_for_alarms_before_considering_the_deployment_to_be_complete ^ --growth-factor The_percentage_of_targets_to_receive_a_deployed_configuration_during_each_interval ^ --growth-type The_linear_or_exponential_algorithm_used_to_define_how_percentage_grows_over_time ^ --name A_name_for_the_deployment_strategy ^ --replicate-to To_save_the_deployment_strategy_to_a_Systems_Manager_(SSM)_document ^ --tags User_defined_key_value_pair_metadata_of_the_deployment_strategy
    PowerShell
    New-APPCDeploymentStrategy ` --Name A_name_for_the_deployment_strategy ` --Description A_description_of_the_deployment_strategy ` --DeploymentDurationInMinutes Total_amount_of_time_for_a_deployment_to_last ` --FinalBakeTimeInMinutes Amount_of_time_AWS AppConfig_monitors_for_alarms_before_considering_the_deployment_to_be_complete ` --GrowthFactor The_percentage_of_targets_to_receive_a_deployed_configuration_during_each_interval ` --GrowthType The_linear_or_exponential_algorithm_used_to_define_how_percentage_grows_over_time ` --ReplicateTo To_save_the_deployment_strategy_to_a_Systems_Manager_(SSM)_document ` --Tag Hashtable_type_User_defined_key_value_pair_metadata_of_the_deployment_strategy

    El sistema devuelve información similar a la siguiente.

    Linux
    {
       "Id": "Id of the deployment strategy",
       "Name": "Name of the deployment strategy",
       "Description": "Description of the deployment strategy",
       "DeploymentDurationInMinutes": "Total amount of time the deployment lasted",
       "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
       "GrowthFactor": "The percentage of targets that received a deployed configuration during each interval",  
       "FinalBakeTimeInMinutes": "The amount of time AWS AppConfig monitored for alarms before considering the deployment to be complete",
       "ReplicateTo": "The Systems Manager (SSM) document where the deployment strategy is saved"
    }
    Windows
    {
       "Id": "Id of the deployment strategy",
       "Name": "Name of the deployment strategy",
       "Description": "Description of the deployment strategy",
       "DeploymentDurationInMinutes": "Total amount of time the deployment lasted",
       "GrowthType": "The linear or exponential algorithm used to define how percentage grew over time",
       "GrowthFactor": "The percentage of targets that received a deployed configuration during each interval",  
       "FinalBakeTimeInMinutes": "The amount of time AWS AppConfig monitored for alarms before considering the deployment to be complete",
       "ReplicateTo": "The Systems Manager (SSM) document where the deployment strategy is saved"
    }
    PowerShell
    ContentLength               : Runtime of the command
    DeploymentDurationInMinutes : Total amount of time the deployment lasted
    Description                 : Description of the deployment strategy
    FinalBakeTimeInMinutes      : The amount of time AWS AppConfig monitored for alarms before considering the deployment to be complete
    GrowthFactor                : The percentage of targets that received a deployed configuration during each interval
    GrowthType                  : The linear or exponential algorithm used to define how percentage grew over time
    HttpStatusCode              : HTTP Status of the runtime
    Id                          : The deployment strategy ID
    Name                        : Name of the deployment strategy
    ReplicateTo                 : The Systems Manager (SSM) document where the deployment strategy is saved
    ResponseMetadata            : Runtime Metadata