¿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 necesita realizar cambios en el código existente para poder usarlo. 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 Administración de identidades y accesos 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 utiliza la plataforma informática local EC2, esto CodeDeploy ayuda a maximizar la disponibilidad de la aplicación. Durante una implementación in situ, 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 implementación blue/green, la última revisión de la aplicación se instala en las instancias de sustitución. 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. Para ambos tipos de implementación, CodeDeploy realiza un seguimiento del estado de las aplicaciones 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 informática local EC2, CodeDeploy puede implementarlas simultáneamente en el mismo conjunto de instancias.

Descripción general de las plataformas informáticas CodeDeploy

CodeDeploy puede implementar aplicaciones en tres plataformas informáticas:

  • EC2/en las instalaciones: describe las instancias de servidores físicos que pueden ser instancias en la nube de Amazon EC2, servidores en las instalaciones o ambas cosas. Las aplicaciones creadas mediante la plataforma de informática EC2/en las instalaciones pueden estar formadas por archivos ejecutables, archivos de configuración, imágenes, etc.

    Las implementaciones que usan la plataforma de informática EC2/en las instalaciones administran la forma en que el tráfico se envía a las instancias mediante un tipo de implementación local o azul/verde. 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 desplaza a las versiones actualizadas de la función Lambda durante una implementación eligiendo una configuración canaria, lineal o all-at-once lineal.

  • Amazon ECS: se utiliza para implementar una aplicación en contenedor de Amazon ECS como un conjunto de tareas. CodeDeploy realiza una implementación azul/verde mediante la instalación de 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 canaria, lineal o all-at-once lineal.

    nota

    Las implementaciones azul/verde de Amazon ECS son compatibles con y. CodeDeploy AWS 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:

CodeDeploy componente EC2/en las instalaciones 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 aplicación de EC2/en las instalaciones utiliza la plataforma de informática de EC2/en las instalaciones. 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:

  • Implementación local: la aplicación de cada instancia del grupo de implementación se para, 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 informática de EC2/en las instalaciones pueden utilizar 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.

  • Implementación azul/verde: el funcionamiento de la implementación depende de la plataforma de informática que utilice:

    • Azul/verde en una plataforma de informática EC2/en las instalaciones: las instancias de un grupo de implementación (el entorno original) se sustituyen por otro conjunto de instancias (el entorno de sustitución) 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 de informática EC2/en las instalaciones, tenga en cuenta que las implementaciones azul/verde solo funcionan con instancias de Amazon EC2.

    • Azul/verde en una plataforma informática o AWS Lambda Amazon ECS: el tráfico se desplaza en incrementos según una configuración canaria, lineal o all-at-oncede implementación.

    • Implementaciones azules/verdes AWS CloudFormation: el tráfico pasa de los recursos actuales a los recursos actualizados como parte de una actualización de la pila. AWS CloudFormation Actualmente, solo se admiten implementaciones de ECS blue/green (azul/verde).

    Para obtener más información acerca de las implementaciones blue/green, consulte Información general de la implementación azul/verde.

nota

Con el CodeDeploy agente, puede realizar una implementación en una instancia en la que haya iniciado sesión sin necesidad de una aplicación, un grupo de implementación o incluso una cuenta. AWS Para obtener más 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.

Información general de la implementación azul/verde

Se utiliza una implementación azul/verde 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/en las instalaciones: se desvía el tráfico 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 son de color azul/verde. Una implementación de EC2/en las instalaciones puede ser local o azul/verde. Una implementación azul/verde ofrece diversas ventajas con respecto a la implementación local:

  • 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 de informática de EC2/en las instalaciones, es más rápido y seguro volver a cambiar a la versión más reciente de una aplicación. 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 utiliza la plataforma informática local EC2, se aprovisionan nuevas instancias para una implementación azul/verde y reflejan la mayoría de las configuraciones de servidor. up-to-date 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 implementación azul/verde AWS CloudFormation puede usar uno de los siguientes métodos:

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

  • Desde despliegues azules/verdes hasta AWS CloudFormation: puedes utilizarlos AWS CloudFormation para gestionar tus despliegues azules/verdes mediante actualizaciones de paquetes. 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, AWS 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 las implementaciones azul/verde de Amazon ECS CodeDeploy mediante su uso AWS CloudFormation en la Guía del AWS CloudFormation usuario.

    nota

    Solo se admite para implementaciones azul/verde de Amazon ECS.

La forma de configurar una implementación blue/green depende la plataforma de informática que utilice la implementación.

Implementación azul/verde en una plataforma informática o AWS Lambda 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

  • all-at-once

Para obtener información sobre cómo se desplaza el tráfico en configuraciones canarias, lineales o de all-at-once despliegue, consulteConfiguració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 de informática de AWS Lambda.

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.

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

nota

Debe usar instancias de Amazon EC2 para las implementaciones azul/verde en la plataforma de informática de EC2/en las instalaciones No se admiten instancias en las instalaciones para el tipo de implementación azul/verde.

Si utiliza la plataforma de informática de EC2/en las instalaciones, tenga en cuenta 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

Normalmente también hay una revisión de la aplicación ejecutándose en las instancias del entorno original, pero esto no es un requisito para una implementación blue/green.

Al crear un grupo de implementaciones para utilizarlo en implementaciones blue/green, puede elegir el modo de especificar el entorno de sustitución:

Copie un grupo de Auto Scaling de Amazon EC2 existente: durante la implementación azul/verde, CodeDeploy crea las instancias para su entorno de reemplazo durante la implementación. Con esta opción, CodeDeploy utiliza el grupo de Auto Scaling de Amazon EC2 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 ejecute una implementación blue/green, normalmente usará instancias que ya se habrán utilizado en una implementación in situ.

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

    • El equilibrador de carga que dirigirá el tráfico del entorno original al entorno de sustitución durante el proceso de implementación azul/verde.

    • 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.

Despliegue azul/verde mediante AWS CloudFormation

Puede gestionar las implementaciones CodeDeploy azules y verdes modelando sus recursos con una plantilla. AWS CloudFormation

Cuando modelas tus recursos azules/verdes con una AWS CloudFormation plantilla, creas una actualización de pila AWS 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 Puede ver el estado y el historial de la implementación en la plantilla CodeDeploy, pero no puede crear ni administrar CodeDeploy recursos fuera de la AWS CloudFormation plantilla.

nota

En el caso de las implementaciones en azul o verde AWS CloudFormation, no se crea una CodeDeploy aplicación o un grupo de implementaciones.

Este método solo admite implementaciones azul/verde de Amazon ECS. Para obtener más información sobre las implementaciones azul/verde, consulte. AWS CloudFormationCree una implementación ECS azul/verde de Amazon mediante AWS CloudFormation

Esperamos tener noticias suyas

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

Temas