Implementación azul/verde en una plataforma de informática de EC2/en las instalaciones - AWS CodeDeploy

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.

Implementación azul/verde en una plataforma de informática de EC2/en las instalaciones

En este tema se proporciona información sobre los componentes y el flujo de trabajo de las CodeDeploy implementaciones que utilizan la plataforma informática local EC2. Para obtener información sobre las implementaciones azul/verde, consulte Información general de la implementación azul/verde.

Componentes de una implementación en una plataforma de informática EC2/en las instalaciones

El siguiente diagrama muestra los componentes de una CodeDeploy implementación en una plataforma informática local de EC2.

Los componentes de una CodeDeploy implementación en una plataforma informática local de EC2.

Flujo de trabajo de implementación en una plataforma de informática de EC2/en las instalaciones

En el diagrama siguiente se muestran los principales pasos en la implementación de revisiones de aplicaciones:

Los pasos principales de la implementación de las revisiones de las aplicaciones.

Estos pasos incluyen:

  1. Cree una aplicación y asígnele un nombre que identifique de forma exclusiva las revisiones de la aplicación que desea implementar y la plataforma informática de la aplicación. CodeDeploy usa este nombre durante una implementación para asegurarse de que hace referencia a los componentes de implementación correctos, como el grupo de implementación, la configuración de la implementación y la revisión de la aplicación. Para obtener más información, consulte Cree una aplicación con CodeDeploy.

  2. Configure un grupo de implementaciones especificando un tipo de implementación y las instancias en las que desea implementar las revisiones de la aplicación. Una implementación in situ actualiza instancias con la última revisión de la aplicación. Una implementación "blue/green" registra un conjunto de instancias de sustitución para el grupo de implementaciones con un balanceador de carga y cancela el registro de las instancias originales.

    Puede especificar las etiquetas aplicadas a las instancias, los nombres de grupos de Amazon EC2 Auto Scaling o ambas cosas.

    Si especificas un grupo de etiquetas en un grupo de despliegues, se CodeDeploy despliega en instancias que tengan aplicada al menos una de las etiquetas especificadas. Si especificas dos o más grupos de etiquetas, se CodeDeploy despliega solo en las instancias que cumplen los criterios de cada uno de los grupos de etiquetas. Para obtener más información, consulte Tagging Instances for Deployments.

    En todos los casos, las instancias deben configurarse para usarse en una implementación (es decir, deben estar etiquetadas o pertenecer a un grupo de Auto Scaling de Amazon EC2) y tener el CodeDeploy agente instalado y en ejecución.

    Le proporcionamos una AWS CloudFormation plantilla que puede utilizar para configurar rápidamente una instancia de Amazon EC2 basada en Amazon Linux o Windows Server. También le proporcionamos el CodeDeploy agente independiente para que pueda instalarlo en instancias de Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux (RHEL) o Windows Server. Para obtener más información, consulte Cree un grupo de despliegue con CodeDeploy.

    También puede especificar las siguientes opciones:

    • Notificaciones de Amazon SNS. Cree activadores que envíen notificaciones a los suscriptores de un tema de Amazon SNS cuando ocurran eventos específicos, como eventos de éxito o error, en las implementaciones e instancias. Para obtener más información, consulte Monitoring Deployments with Amazon SNS Event Notifications.

    • Administración de implementaciones basadas en alarmas. Implemente el monitoreo de CloudWatch alarmas de Amazon para detener las implementaciones cuando sus métricas superen o caigan por debajo de los umbrales establecidos. CloudWatch

    • Restauraciones de implementaciones automáticas. Configure una implementación para que se restaure automáticamente a la última revisión correcta conocida si se produce un error en una implementación o si se supera el umbral de la alarma.

  3. Especifique una configuración de implementación para indicar en cuántas instancias se deben implementar simultáneamente las revisiones de la aplicación y describir las condiciones de éxito y fracaso de la implementación. Para obtener más información, consulte View Deployment Configuration Details.

  4. Cargue una revisión de la aplicación en Amazon S3 o GitHub. Además de los archivos que desee implementar y de los scripts que desee ejecutar durante la implementación, debe incluir un archivo de especificaciones de la aplicación (AppSpec archivo). Este archivo contiene las instrucciones de implementación, como, por ejemplo, dónde se deben copiar los archivos en cada instancia y cuándo se deben ejecutar los scripts de implementación. Para obtener más información, consulte Trabajar con revisiones de aplicaciones para CodeDeploy.

  5. Implemente la revisión de la aplicación en el grupo de implementaciones. El CodeDeploy agente de cada instancia del grupo de implementación copia la revisión de la aplicación de Amazon S3 o GitHub a la instancia. A continuación, el CodeDeploy agente separa la revisión y, utilizando el AppSpec archivo, copia los archivos en las ubicaciones especificadas y ejecuta los scripts de implementación. Para obtener más información, consulte Cree una implementación con CodeDeploy.

  6. Compruebe los resultados de la implementación. Para obtener más información, consulte Supervisión de los despliegues en CodeDeploy.

  7. Vuelva a implementar una revisión. Se recomienda hacer esto si se necesita corregir un error en el contenido de origen o ejecutar los scripts de la implementación en un orden diferente o solucionar una implementación que dio error. Para ello, reagrupe el contenido fuente revisado, los scripts de despliegue y el AppSpec archivo en una nueva revisión y, a continuación, cargue la revisión en el GitHub depósito o repositorio de Amazon S3. Luego ejecute una nueva implementación en el mismo grupo de implementaciones con la nueva revisión. Para obtener más información, consulte Cree una implementación con CodeDeploy.

Configuración de instancias

Debe configurar instancias antes de implementar revisiones en la aplicación por primera vez. Si la revisión de una aplicación requiere tres servidores de producción y dos servidores de copia de seguridad, lanzará o utilizará cinco instancias.

Para aprovisionar instancias manualmente:

  1. Instale el CodeDeploy agente en las instancias. El CodeDeploy agente se puede instalar en instancias de Amazon Linux, Ubuntu Server, RHEL y Windows Server.

  2. Habilite el etiquetado si está utilizando etiquetas para identificar instancias en un grupo de implementación. CodeDeploy se basa en etiquetas para identificar y agrupar las instancias en grupos CodeDeploy de implementación. Si bien los tutoriales de Introducción utilizaron ambos, puede usar una clave o un valor para definir una etiqueta para un grupo de implementaciones.

  3. Inicie instancias de Amazon EC2 con un perfil de instancia de IAM adjunto. El perfil de la instancia de IAM debe adjuntarse a una instancia de Amazon EC2 a medida que se lanza para que CodeDeploy el agente verifique la identidad de la instancia.

  4. Cree un rol de servicio. Proporcione acceso al servicio para CodeDeploy poder ampliar las etiquetas de su AWS cuenta.

Para una implementación inicial, la AWS CloudFormation plantilla hace todo esto por ti. Crea y configura nuevas instancias únicas de Amazon EC2 basadas en Amazon Linux o Windows Server con CodeDeploy el agente ya instalado. Para obtener más información, consulte Trabajar con instancias para CodeDeploy.

nota

Para una implementación azul/verde, puede elegir entre usar las instancias que ya tiene para el entorno de reemplazo o dejar que se le CodeDeploy aprovisionen nuevas instancias como parte del proceso de implementación.

Carga de la revisión de la aplicación

Coloca un AppSpec archivo en la carpeta raíz de la estructura de carpetas de contenido fuente de la aplicación. Para obtener más información, consulte Application Specification Files.

Empaquete la estructura de carpetas del contenido de origen de la aplicación en un formato de archivo de almacenamiento como zip, tar o tar comprimido. Suba el archivo de almacenamiento (la revisión) a un depósito o GitHub repositorio de Amazon S3.

nota

Los formatos de archivo tar y tar comprimido (.tar y .tar.gz) no son compatibles con las instancias de Windows Server.

Creación de la aplicación y los grupos de implementación

Un grupo de CodeDeploy implementación identifica un conjunto de instancias en función de sus etiquetas, los nombres de los grupos de Auto Scaling de Amazon EC2 o ambos. Se pueden implementar varias revisiones de la aplicación en la misma instancia. Una revisión de la aplicación se puede implementar en múltiples instancias.

Por ejemplo, podría agregar una etiqueta "Prod" a los tres servidores de producción y "Backup" a los dos servidores de backup. Estas dos etiquetas se pueden usar para crear dos grupos de implementación diferentes en la CodeDeploy aplicación, lo que le permite elegir qué conjunto de servidores (o ambos) debe participar en una implementación.

Puede utilizar varios grupos de etiquetas en un grupo de implementaciones para restringir las implementaciones con un conjunto más pequeño de instancias. Para obtener más información, consulte Tagging Instances for Deployments.

Implementación de la revisión de la aplicación

Ahora está listo para implementar la revisión de la aplicación desde Amazon S3 o GitHub en el grupo de implementación. Puede usar la CodeDeploy consola o el comando create-deployment. Hay parámetros que puede especificar para controlar la implementación, que incluyen la revisión, el grupo de implementaciones y la configuración de la implementación.

Actualización de la aplicación

Puede realizar actualizaciones en la aplicación y, a continuación, utilizar la CodeDeploy consola o ejecutar el comando create-deployment para realizar una revisión.

Implementaciones detenidas y que producen error

Puede usar la CodeDeploy consola o el comando stop-deployment para detener una implementación. Cuando se intenta detener la implementación, sucede una de estas tres cosas:

  • La implementación se detiene y la operación devuelve el estado “realizada correctamente”. En este caso, no se ejecutan más eventos del ciclo de vida de implementación en el grupo de implementaciones para la implementación detenida. Es posible que algunos archivos se hayan copiado y que algunos scripts ya se hayan ejecutado en una o varias de las instancias del grupo de implementaciones.

  • La implementación no se detiene inmediatamente y la operación devuelve el estado “pendiente”. En este caso, podrían seguir ejecutándose algunos eventos del ciclo de vida de implementación en el grupo de implementaciones. Es posible que algunos archivos se hayan copiado y que algunos scripts ya se hayan ejecutado en una o varias de las instancias del grupo de implementaciones. Después de finalizada la operación pendiente, las llamadas posteriores para detener la implementación devuelven el estado “realizada correctamente”.

  • La implementación no se puede detener y la operación devuelve un error. Para obtener más información, consulta la ErrorInformationreferencia sobre errores comunes en la AWS CodeDeploy API.

Al igual que las implementaciones detenidas, las que dan error pueden dar lugar a que algunos eventos del ciclo de vida de implementación ya se hayan ejecutado en una o varias de las instancias del grupo de implementaciones. Para averiguar por qué ha fallado una implementación, puede usar la CodeDeploy consola, get-deployment-instanceejecutar el comando o analizar los datos del archivo de registro de la implementación fallida. Para obtener más información, consulte Limpieza de revisiones de aplicación y archivos de registro y Vea los datos de registro de las implementaciones locales CodeDeploy de EC2/.

Reimplementaciones y restauración de implementaciones

CodeDeploy implementa las reversiones al volver a implementar, como una nueva implementación, una revisión previamente implementada.

Puede configurar un grupo de implementación para que se restaure automáticamente si se dan ciertas condiciones, por ejemplo, si falla una implementación o si se alcanza el umbral de monitorización de alarmas. Además, puede anular la configuración de restauración especificada para el grupo de implementaciones en una implementación individual.

También puede optar por restaurar una implementación que produjo error manualmente, volviendo a implementar una revisión implementada anteriormente.

En todos los casos, a la implementación nueva o restaurada se le asigna su propio ID de implementación. La lista de despliegues que puede ver en la CodeDeploy consola muestra cuáles son el resultado de un despliegue automático.

Para obtener más información, consulte Vuelva a implementar y revertir una implementación con CodeDeploy.