View a markdown version of this page

¿Qué es CodeDeploy? - 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.

¿Qué es CodeDeploy?

CodeDeploy es un servicio de implementación que automatiza las implementaciones de aplicaciones en instancias de Amazon EC2, instancias locales, funciones Lambda sin servidor o servicios de Amazon ECS.

Puede implementar una variedad de contenidos de aplicación prácticamente ilimitada, entre las que se incluyen:

  • Código

  • Funciones sin servidor AWS Lambda

  • Archivos de configuración y web

  • Executables

  • Paquetes

  • Scripts

  • Archivos multimedia

CodeDeploy puede implementar contenido de aplicaciones que se ejecute en un servidor y se almacene en buckets, GitHub repositorios o repositorios de Bitbucket de Amazon S3. CodeDeploy también puede implementar una función Lambda sin servidor. No es necesario hacer cambios en el código existente para poder utilizar CodeDeploy.

CodeDeploy le facilita:

  • Lanzar rápidamente nuevas características.

  • Actualiza las versiones de las AWS Lambda funciones.

  • Evitar tiempos de inactividad durante la implementación de las aplicaciones.

  • Gestionar el complejo proceso de actualización de las aplicaciones, evitando muchos de los riesgos asociados a las implementaciones manuales, que son susceptibles a errores.

El servicio se adapta a su infraestructura, por lo que puede implementar fácilmente en una sola instancia o en miles de ellas.

CodeDeploy funciona con varios sistemas para la gestión de la configuración, el control de fuentes, la integración continua, la entrega continua y el despliegue continuo. Para obtener más información, consulte Integraciones de productos.

La CodeDeploy consola también proporciona una forma de buscar rápidamente sus recursos, como repositorios, proyectos de compilación, aplicaciones de implementación y canalizaciones. Elija Ir a recurso o pulse la tecla / y, a continuación, escriba el nombre del recurso. Se muestran todas las coincidencias en la lista. En las búsquedas, no se distingue entre mayúsculas y minúsculas. Solo puede ver los recursos para los que tiene permiso. Para obtener más información, consulte Gestión de identidad y acceso para AWS CodeDeploy.

Ventajas de AWS CodeDeploy

CodeDeploy ofrece los siguientes beneficios:

  • Aplicaciones de servidor, sin servidor y de contenedor. CodeDeployle permite implementar tanto aplicaciones tradicionales en servidores como aplicaciones que implementan una versión de AWS Lambda función sin servidor o una aplicación de Amazon ECS.

  • Implementaciones automatizadas. CodeDeploy automatiza completamente las implementaciones de sus aplicaciones en sus entornos de desarrollo, pruebas y producción. CodeDeployescala con su infraestructura para que pueda implementarlas en una o en miles de instancias.

  • Minimizar el tiempo de inactividad. Si su aplicación usa la plataforma de EC2/On-Premises cómputo, CodeDeploy ayuda a maximizar la disponibilidad de la aplicación. Durante una implementación local, CodeDeploy realiza una actualización progresiva en todas las instancias de Amazon EC2. Es posible especificar el número de instancias que se desactivan a la vez para efectuar las actualizaciones. Durante una blue/green implementación, la última revisión de la aplicación se instala en las instancias de reemplazo. El tráfico se desvía a estas instancias en el momento que desee, bien inmediatamente o cuando haya terminado de probar el nuevo entorno. En ambos tipos de implementación, CodeDeploy supervisa el estado de la aplicación de acuerdo con las reglas que configure.

  • Detención y reversión. En caso de que haya errores, puede detener y revertir la implementación de forma automática o manual.

  • Control centralizado. Puede iniciar sus implementaciones y realizar un seguimiento del estado de las mismas a través de la CodeDeploy consola o del AWS CLI. Recibirá un informe que indica el momento en que se implementó cada revisión de la aplicación en cada instancia de Amazon EC2.

  • Fácil de adoptar. CodeDeploy es independiente de la plataforma y funciona con cualquier aplicación. Puedes reutilizar fácilmente tu código de configuración. CodeDeploy también se puede integrar con su proceso de lanzamiento de software o con su cadena de herramientas de entrega continua.

  • Implementaciones simultáneas. Si tiene más de una aplicación que utiliza la plataforma de EC2/On-Premises procesamiento, CodeDeploy puede implementarlas simultáneamente en el mismo conjunto de instancias.

Descripción general de las plataformas de CodeDeploy cómputo

CodeDeploy puede implementar aplicaciones en tres plataformas informáticas:

  • EC2/On-Premises: describe instancias de servidores físicos que pueden ser instancias en la nube de Amazon EC2, servidores locales o ambos. Las aplicaciones creadas con la plataforma EC2/On-Premises informática pueden estar compuestas por archivos ejecutables, archivos de configuración, imágenes y mucho más.

    Las implementaciones que utilizan la plataforma de EC2/On-Premises procesamiento administran la forma en que el tráfico se dirige a las instancias mediante un tipo de blue/green implementación o local. Para obtener más información, consulte Descripción general de los tipos de implementación CodeDeploy.

  • AWS Lambda: se usa para implementar aplicaciones que constan de una versión actualizada de una función Lambda. AWS Lambda administra la función Lambda en un entorno informático sin servidor compuesto por una estructura informática de alta disponibilidad. Toda la administración de los recursos de cómputo la realiza. AWS Lambda Para obtener más información, consulte Aplicaciones y informática sin servidor‭. Para obtener más información acerca de AWS Lambda las funciones Lambda, consulte. AWS Lambda

    Puede administrar la forma en que el tráfico se dirige a las versiones actualizadas de las funciones de Lambda durante una implementación eligiendo una configuración de valor controlado, lineal o integral.

  • Amazon ECS: se utiliza para implementar una aplicación contenerizada de Amazon ECS como un conjunto de tareas. CodeDeploy realiza una blue/green implementación instalando una versión actualizada de la aplicación como un nuevo conjunto de tareas de reemplazo. CodeDeploy redirige el tráfico de producción del conjunto de tareas de la aplicación original al conjunto de tareas de reemplazo. Cuando la implementación se realiza correctamente, se termina el conjunto de tareas original. Para obtener más información acerca de Amazon ECS, consulte Amazon Elastic Container Service.

    Puede administrar la forma en que el tráfico se desplaza al conjunto de tareas actualizado durante una implementación eligiendo una configuración controlada, lineal o todo a la vez.

    nota

    Las blue/green implementaciones de Amazon ECS son compatibles con CodeDeploy y CloudFormation. Los detalles de estas implementaciones se describen en secciones posteriores.

En la siguiente tabla se describe cómo se utilizan CodeDeploy los componentes con cada plataforma de cómputo. Para obtener más información, consulte lo siguiente:

CodeDeploy componente EC2/On-Premises AWS Lambda Amazon ECS
Grupo de implementación Implementa una revisión en un conjunto de instancias. Implementa una nueva versión de una función de Lambda sin servidor en una infraestructura informática de alta disponibilidad. Especifica el servicio de Amazon ECS con la aplicación en contenedor para implementar como un conjunto de tareas, un oyente de producción y de prueba opcional que se utiliza para enviar tráfico a la aplicación implementada, cuándo redirigir el tráfico y terminar el conjunto de tareas original de la aplicación implementada y configuración opcional de activador, alarma y restauración.
Implementación Implementa una nueva revisión que consta de una aplicación y AppSpec un archivo. AppSpec Especifica cómo implementar la aplicación en las instancias de un grupo de implementación. Desvía el tráfico de producción desde una versión de una función de Lambda a una nueva versión de la misma función. El AppSpec archivo especifica qué versión de la función Lambda se debe implementar. Implementa una versión actualizada de una aplicación contenerizada de Amazon ECS como un nuevo conjunto de tareas de reemplazo. CodeDeploy redirige el tráfico de producción del conjunto de tareas con la versión original al nuevo conjunto de tareas de reemplazo con la versión actualizada. Cuando se completa la implementación, se termina el conjunto de tareas original.
Configuración de implementación Configuración que determina la velocidad de implementación y el número mínimo de instancias que deben estar en buen estado en cualquier momento durante una implementación. Configuración que determina cómo se desvía el tráfico a las versiones de la función de Lambda actualizadas. Configuración que determina cómo se desvía el tráfico al conjunto de tareas actualizado de Amazon ECS.
Revisión Combinación de un AppSpec archivo y archivos de aplicación, como ejecutables, archivos de configuración, etc. AppSpec Archivo que especifica qué función de Lambda se debe implementar y qué funciones de Lambda pueden ejecutar pruebas de validación durante los ganchos de eventos del ciclo de vida de la implementación.

Un AppSpec archivo que especifica:

  • La definición de tareas de Amazon ECS para el servicio de Amazon ECS con la aplicación en contenedores que se va a implementar.

  • El contenedor en el que se implementa la aplicación actualizada.

  • Un puerto para el contenedor donde se redirige el tráfico de producción.

  • Ajustes de configuración de red opcionales y funciones de Lambda que pueden ejecutar pruebas de validación durante enlaces de eventos de ciclo de vida de implementación.

Aplicación Colección de grupos de implementación y revisiones. Una EC2/On-Premises aplicación usa la plataforma de EC2/On-Premises cómputo. Colección de grupos de implementación y revisiones. Una aplicación utilizada para una AWS Lambda implementación usa la plataforma de procesamiento AWS Lambda sin servidor. Colección de grupos de implementación y revisiones. Una aplicación utilizada para una implementación de Amazon ECS utiliza la plataforma de informática de Amazon ECS.

Descripción general de los tipos de implementación CodeDeploy

CodeDeploy ofrece dos opciones de tipos de despliegue:

  • In-place despliegue: se detiene la aplicación de cada instancia del grupo de despliegue, se instala la última revisión de la aplicación y se inicia y valida la nueva versión de la aplicación. Puede utilizar un equilibrador de carga de modo que se cancele el registro de cada instancia durante su implementación y, a continuación, vuelva a ponerse en servicio una vez completada la implementación. Solo las implementaciones que usan la plataforma de EC2/On-Premises procesamiento pueden usar implementaciones locales. Para obtener más información acerca de las implementaciones locales, consulte Información general de la implementación local.

    nota

    AWS Las implementaciones de Lambda y Amazon ECS no pueden usar un tipo de implementación local.

  • Blue/green implementación: el comportamiento de la implementación depende de la plataforma informática que utilice:

    • Blue/green en una plataforma de EC2/On-Premises procesamiento: las instancias de un grupo de implementación (el entorno original) se sustituyen por un conjunto diferente de instancias (el entorno de reemplazo) siguiendo estos pasos:

      • Las instancias se aprovisionan en el entorno de sustitución.

      • La revisión de aplicación más reciente se instala en las instancias de sustitución.

      • Existe un tiempo de espera opcional para actividades como las pruebas de aplicaciones y la verificación del sistema.

      • Las instancias del entorno de sustitución se registran en uno o más equilibradores de carga de Elastic Load Balancing, lo que provoca que el tráfico se redirija a ellos. Las instancias del entorno original se anulan del registro y se pueden cerrar o mantener en ejecución para otros usos.

      nota

      Si utiliza una plataforma EC2/On-Premises informática, tenga en cuenta que blue/green las implementaciones solo funcionan con instancias de Amazon EC2.

    • Blue/green en una plataforma informática AWS Lambda o Amazon ECS: el tráfico se desplaza en incrementos según una configuración de implementación canaria, lineal o de una sola vez.

    • Blue/green De un despliegue a otro CloudFormation: el tráfico pasa de los recursos actuales a los recursos actualizados como parte de una actualización de la pila. CloudFormation Actualmente, solo se admiten las blue/green implementaciones de ECS.

    Para obtener más información sobre blue/green las implementaciones, consulte. Descripción general de una implementación blue/green

nota

Con el CodeDeploy agente, puede realizar un despliegue en una instancia en la que haya iniciado sesión sin necesidad de una aplicación, un grupo de despliegue o incluso una AWS cuenta. Para obtener información, consulte Utilice el CodeDeploy agente para validar un paquete de despliegue en una máquina local.

Información general de la implementación local

nota

AWS Las implementaciones de Lambda y Amazon ECS no pueden usar un tipo de implementación local.

Así es como funciona una implementación local:

  1. En primer lugar, debe crear contenido desplegable en su máquina de desarrollo local o entorno similar y, a continuación, añadir un archivo de especificaciones de la aplicación (archivo). AppSpec El AppSpec archivo es exclusivo de. CodeDeploy Define las acciones de despliegue que CodeDeploy desea ejecutar. Agrupa el contenido desplegable y el AppSpec archivo en un archivo y, a continuación, lo carga en un depósito o GitHub repositorio de Amazon S3. Este archivo de almacenamiento se denomina revisión de la aplicación (o simplemente revisión).

  2. A continuación, debe proporcionar CodeDeploy información sobre su implementación, como el GitHub depósito o repositorio de Amazon S3 desde el que extraer la revisión y en qué conjunto de instancias de Amazon EC2 se debe implementar su contenido. CodeDeploy llama grupo de implementación a un conjunto de instancias de Amazon EC2. Un grupo de implementación contiene instancias de Amazon EC2 etiquetadas individualmente, instancias de Amazon EC2 en grupos de Amazon EC2 Auto Scaling o ambas.

    Cada vez que cargue correctamente una nueva revisión de una aplicación que desee implementar en el grupo de implementaciones, el paquete correspondiente se marca como revisión de destino para ese grupo de implementaciones. En otras palabras, la revisión de la aplicación que debe implementarse en cada momento es la revisión de destino. También es la revisión que se extrae para las implementaciones automáticas.

  3. A continuación, el CodeDeploy agente de cada instancia sondea CodeDeploy para determinar qué y cuándo extraer del GitHub depósito o repositorio de Amazon S3 especificado.

  4. Por último, el CodeDeploy agente de cada instancia extrae la revisión de destino del GitHub depósito o repositorio de Amazon S3 y, siguiendo las instrucciones del AppSpec archivo, despliega el contenido en la instancia.

CodeDeploy mantiene un registro de las implementaciones para que pueda obtener el estado de las mismas, los parámetros de configuración de las mismas, el estado de las instancias, etc.

Descripción general de una implementación blue/green

Una blue/green implementación se utiliza para actualizar las aplicaciones y, al mismo tiempo, minimizar las interrupciones causadas por los cambios de una nueva versión de la aplicación. CodeDeploy aprovisiona la nueva versión de la aplicación junto con la versión anterior antes de redirigir el tráfico de producción.

  • AWS Lambda: el tráfico pasa de una versión de una función Lambda a una nueva versión de la misma función Lambda.

  • Amazon ECS: se desvía el tráfico desde un conjunto de tareas de su servicio de Amazon ECS a un conjunto de tareas de sustitución actualizado en el mismo servicio de Amazon ECS.

  • EC2/On-Premises: el tráfico se desvía desde un conjunto de instancias en el entorno original a un conjunto de instancias de sustitución.

Todas las implementaciones de AWS Lambda y Amazon ECS lo son. blue/green Una EC2/On-Premises implementación puede estar in situ o. blue/green Una blue/green implementación ofrece una serie de ventajas en comparación con una implementación in situ:

  • Puede instalar y probar una aplicación en el nuevo entorno de sustitución e implementarla en producción con solo redirigir el tráfico.

  • Si utiliza la plataforma EC2/On-Premises informática, volver a la versión más reciente de una aplicación es más rápido y fiable. Esto se debe a que el tráfico puede volver a dirigirse a las instancias originales, siempre que no se hayan terminado. Con una implementación in situ, las versiones deben revertirse a la versión anterior de la aplicación.

  • Si utilizas la plataforma de EC2/On-Premises procesamiento, se aprovisionan nuevas instancias para una blue/green implementación y reflejan las configuraciones de servidor más actualizadas. Esto ayuda a evitar la clase de problemas que a veces aparecen en las instancias que llevan mucho tiempo en ejecución.

  • Si utiliza la plataforma de procesamiento AWS Lambda, usted controla cómo se transfiere el tráfico de la versión original de la función AWS Lambda a la nueva versión de la función AWS Lambda.

  • Si utiliza la plataforma de informática de Amazon ECS, puede controlar cómo se desvía el tráfico del conjunto de tareas original al nuevo conjunto de tareas.

Una blue/green implementación con CloudFormation puede usar uno de los siguientes métodos:

  • CloudFormation plantillas para despliegues: cuando configuras despliegues con CloudFormation plantillas, los despliegues se activan mediante actualizaciones. CloudFormation Cuando cambias un recurso y subes un cambio de plantilla, una actualización de la pila CloudFormation inicia la nueva implementación. Para obtener una lista de los recursos que puede utilizar en CloudFormation las plantillas, consulteCloudFormation plantillas de CodeDeploy referencia.

  • Blue/green desde despliegues hasta CloudFormation: puedes utilizarlos CloudFormation para gestionar tus blue/green despliegues mediante actualizaciones de pilas. Defina los recursos blue y green (azules y verdes), además de especificar la configuración de enrutamiento y estabilización del tráfico dentro de la plantilla de pila. A continuación, si actualizas los recursos seleccionados durante una actualización de pila, CloudFormation generas todos los recursos verdes necesarios, desplaza el tráfico en función de los parámetros de enrutamiento de tráfico especificados y elimina los recursos azules. Para obtener más información, consulte Automatizar blue/green las implementaciones de Amazon ECS CodeDeploy mediante su uso CloudFormation en la Guía del AWS CloudFormation usuario.

    nota

    Solo se admite en las blue/green implementaciones de Amazon ECS.

La forma de configurar una blue/green implementación depende de la plataforma de cómputo que utilice la implementación.

Blue/Green implementación en una plataforma informática AWS Lambda o Amazon ECS

Si utiliza la AWS Lambda plataforma informática Amazon ECS, debe indicar cómo se desplaza el tráfico de la AWS Lambda función original o del conjunto de tareas de Amazon ECS a la nueva función o conjunto de tareas. Para indicar cómo se desvía el tráfico, debe especificar una de las siguientes configuraciones de implementación:

  • valor controlado

  • lineal

  • integral

Para obtener información sobre cómo se desvía el tráfico en configuraciones de implementación de valor controlado, lineales o integrales, consulte Configuración de implementación.

Para obtener más información sobre la configuración de implementación de Lambda, consulte Configuraciones de implementación en una plataforma AWS Lambda informática.

Para obtener más información sobre la configuración de implementación de Amazon ECS, consulte Configuraciones de implementación en una plataforma de informática de Amazon ECS.

Blue/Green despliegue en una plataforma EC2/on-premises informática

nota

Debe usar instancias de Amazon EC2 para las blue/green implementaciones en la EC2/On-Premises plataforma de procesamiento. On-premises las instancias no son compatibles con el tipo de blue/green implementación.

Si utilizas la plataforma de EC2/On-Premises procesamiento, se aplica lo siguiente:

Debe tener una o varias instancias de Amazon EC2 con etiquetas de identificación de Amazon EC2 o un grupo de Amazon EC2 Amazon EC2 Auto Scaling. Las instancias también deben cumplir los requisitos siguientes:

  • Cada instancia de Amazon EC2 debe tener asociado el perfil de instancia de IAM correcto.

  • El CodeDeploy agente debe estar instalado y en ejecución en cada instancia.

nota

Por lo general, también se ejecuta una revisión de la aplicación en las instancias de su entorno original, pero esto no es obligatorio para una blue/green implementación.

Al crear un grupo de implementaciones que se utiliza en blue/green las implementaciones, puede elegir cómo especificar el entorno de reemplazo:

Copie un grupo de Amazon EC2 Auto Scaling existente: durante blue/green la implementación CodeDeploy , crea las instancias para su entorno de reemplazo durante la implementación. Con esta opción, CodeDeploy utiliza el grupo Amazon EC2 Auto Scaling que especifique como plantilla para el entorno de reemplazo, que incluye el mismo número de instancias en ejecución y muchas otras opciones de configuración.

Elegir las instancias manualmente: puede especificar las instancias consideradas de sustitución mediante etiquetas de instancia de Amazon EC2, nombres de grupo de Amazon EC2 Auto Scaling o ambos. Si elige esta opción, no tendrá que especificar las instancias del entorno de sustitución hasta el momento de crear una implementación.

Así es como funciona:

  1. Ya cuenta con instancias o un grupo de Amazon EC2 Auto Scaling que sirven como entorno original. La primera vez que ejecuta una blue/green implementación, suele utilizar instancias que ya se utilizaron en una implementación local.

  2. En una CodeDeploy aplicación existente, se crea un grupo de blue/green implementaciones en el que, además de las opciones necesarias para una implementación local, se especifica lo siguiente:

    • El balanceador o balanceadores de carga que redirigen el tráfico desde el entorno original al entorno de reemplazo durante el blue/green proceso de implementación.

    • Si el tráfico debe dirigirse al entorno de sustitución de inmediato o esperar a que lo redirija manualmente.

    • La velocidad con la que se dirige el tráfico a las instancias de sustitución.

    • Si las instancias sustituidas deben terminarse o mantenerse en ejecución.

  3. Ahora creará una implementación para este grupo de implementaciones en la que ocurrirá lo siguiente:

    1. Si decide copiar un grupo de Amazon EC2 Auto Scaling, se preparan instancias para el entorno de sustitución.

    2. La revisión de aplicación especificada para la implementación se instala en las instancias de sustitución.

    3. Si ha especificado un tiempo de espera en la configuración del grupo de implementaciones, la implementación se pausa. Este es el momento en el que puede realizar pruebas y verificaciones en el entorno de sustitución. Si no redirige manualmente el tráfico antes de que finalice el periodo de espera, la implementación se detiene.

    4. Las instancias del entorno de sustitución se registran con un equilibrador de carga de Elastic Load Balancing y el tráfico comienza a dirigirse a ellas.

    5. Las instancias del entorno original se borran del registro y se terminan o se mantienen en ejecución, según lo que haya especificado para el grupo de implementaciones.

Blue/Green despliegue a través de CloudFormation

Puede gestionar CodeDeploy blue/green las implementaciones modelando sus recursos con una CloudFormation plantilla.

Cuando modelas tus blue/green recursos con una CloudFormation plantilla, creas una actualización de pila CloudFormation que actualiza tu conjunto de tareas. El tráfico de producción pasa del conjunto de tareas original del servicio a un conjunto de tareas de sustitución o bien todo a la vez, con implementaciones lineales y tiempos de procesamiento, o bien con implementaciones de valores controlados. La actualización de la pila inicia una implementación en CodeDeploy. Puedes ver el estado y el historial de la implementación en ella CodeDeploy, pero no puedes crear ni administrar CodeDeploy recursos fuera de la CloudFormation plantilla.

nota

En el blue/green caso de las implementaciones CloudFormation completas, no debe crear una CodeDeploy aplicación o un grupo de implementaciones.

Este método solo es compatible con las blue/green implementaciones de Amazon ECS. Para obtener más información sobre blue/green las implementaciones realizadas CloudFormation, consulte. Cree una blue/green implementación de Amazon ECS mediante CloudFormation

Esperamos tener noticias suyas

Agradecemos sus comentarios. Para ponerse en contacto con nosotros, visite el CodeDeploy foro.

Temas