Características de AWS CodeDeploy

¿Por qué CodeDeploy?

AWS CodeDeploy es un servicio que automatiza los despliegues de aplicaciones en diferentes servicios informáticos, como Amazon Elastic Compute Cloud (Amazon EC2), AWS Fargate, AWS Lambda e instancias locales. CodeDeploy automatiza totalmente los despliegues de aplicaciones, ya que elimina la necesidad de realizar operaciones manuales. CodeDeploy evita los tiempos de inactividad en las aplicaciones durante las implementaciones gracias a la realización de actualizaciones continuas y al seguimiento del estado de la implementación. CodeDeploy le permite realizar un control centralizado de los despliegues a través de la Consola de administración de AWS, la Interfaz de la línea de comandos de AWS (AWS CLI), los SDK o las API, lo que le permite lanzar, controlar y monitorear los despliegues. Puede ver el progreso de la implementación desglosado para cada evento de configuración. CodeDeploy supervisa y almacena el historial reciente de las implementaciones, para que pueda analizar el calendario y el historial de cambios de las últimas implementaciones.

CodeDeploy se puede usar en todas las plataformas y en todos los lenguajes y, además, funciona con cualquier aplicación, por lo que puede volver a utilizar el código de configuración existente. También puede integrar con facilidad las implementaciones de la aplicación con el proceso de entrega de software existente o con la cadena de herramientas de entrega continua mediante la utilización de las API de CodeDeploy.

Despliegues automatizados

Puede repetir fácilmente el despliegue de una aplicación en diferentes grupos de instancias con CodeDeploy. CodeDeploy usa un modelo de instalación basado en archivos y comandos, que le permite implementar cualquier aplicación y volver a usar el código de configuración existente. Se puede utilizar el mismo código de configuración para implementar y comprobar de forma consistente las actualizaciones en las fases de implementación, comprobación y producción para instancias de Amazon EC2. Eliminar los pasos manuales en los despliegues aumenta la velocidad y fiabilidad del proceso de entrega de software.

CodeDeploy le permite integrar las actividades de despliegue y escalado del software para mantener actualizada su aplicación en un entorno de producción dinámico. Para las instancias de Amazon EC2, CodeDeploy se integra con el escalamiento automático. El escalamiento automático le permite escalar la capacidad de Amazon EC2 según las condiciones que defina, como los picos de tráfico. CodeDeploy recibe una notificación cuando una instancia nueva se lanza en un grupo de escalamiento automático y realiza automáticamente un despliegue de la aplicación antes de añadirla a un equilibrador de carga de Elastic Load Balancing (ELB).

Puede utilizar CodeDeploy para automatizar el despliegue de software en sus entornos de desarrollo, pruebas y producción en cualquier instancia, incluidas las instancias de sus centros de datos (las instancias deberán poder conectarse a los puntos de enlace públicos de AWS). De este modo, es posible utilizar un solo servicio para implementar aplicaciones de manera uniforme en arquitecturas híbridas.

Minimizar el tiempo de inactividad

Las aplicaciones no requieren tiempo de inactividad cuando se actualizan a una versión nueva con CodeDeploy. AWS CodeDeploy puede realizar despliegues azul-verde en instancias de Amazon EC2, un servicio de Amazon Elastic Container Service (Amazon ECS) (tanto del tipo de lanzamiento de Amazon EC2 como de Fargate) o una función de Lambda. Con una implementación azul/verde, se lanza una nueva versión de su aplicación junto con la versión anterior. Cuando la nueva revisión se evalúe y establezca como lista, CodeDeploy puede conmutar el tráfico de su versión anterior a su nueva versión según sus especificaciones.

CodeDeploy también puede realizar una actualización continua en un grupo de instancias de Amazon EC2 donde solo se desconecta una fracción de las instancias a la vez. CodeDeploy funciona de manera progresiva en las instancias, por lo que se mantiene la disponibilidad de las aplicaciones para que continúen abasteciendo el tráfico. Para las funciones de Lambda, el tráfico entrante se redirige gradualmente de la versión antigua a la nueva.

El seguimiento del estado del despliegue funciona junto con actualizaciones continuas para mantener una alta disponibilidad de las aplicaciones durante los despliegues. Se pueden producir tiempos de inactividad inesperados si se implementan actualizaciones incorrectas. CodeDeploy monitorea su despliegue y lo detiene si hay un número excesivo de errores en las actualizaciones.

Puede detener el despliegue de una aplicación en curso con la consola, la CLI de AWS o cualquiera de los SDK de AWS. Simplemente puede volver a desplegar dicha revisión si desea continuar con el despliegue detenido en un momento posterior. También puede revertir los cambios inmediatamente mediante el redespliegue de la revisión anterior.

Control centralizado

Puede lanzar, controlar y monitorear los despliegues de su software directamente desde la consola o mediante la CLI, los SDK o las API de AWS. En caso de error, puede identificar la secuencia de comandos que lo originó. También puede enviar notificaciones push que le permitan monitorear el estado de los despliegues mediante SMS o correos electrónicos a través de Amazon Simple Notification Service (Amazon SNS).

Se puede implementar una aplicación en varios grupos de implementaciones. Los grupos de implementaciones se utilizan para adaptar las configuraciones a entornos específicos, como entornos de pruebas o producción. Puede probar una revisión en la fase de puesta en marcha y, a continuación, implementar el mismo código con las mismas instrucciones de implementación en el entorno de producción hasta que quede satisfecho.

CodeDeploy supervisa y almacena el historial reciente de los despliegues. Puede ver qué versiones de la aplicación están implementadas actualmente en cada uno de los grupos de implementaciones objetivo. Puede examinar el historial de cambios y el índice de éxito de las implementaciones anteriores en grupos de implementaciones específicos. También puede investigar el calendario de las implementaciones anteriores para obtener una vista detallada de los errores y los elementos correctos de la implementación.

Adopción sencilla

CodeDeploy usa un modelo de instalación basado en archivos y comandos, que le permite implementar cualquier aplicación y volver a usar el código de configuración existente. CodeDeploy usa una archivo de configuración único de AppSpec para ejecutar acciones, pruebas o verificaciones con cada evento del ciclo de vida (fase de despliegue). Los comandos pueden ser cualquier código, como un script shell, un programa personalizado o incluso una herramienta de administración de la configuración.

Es fácil integrar los despliegues de la aplicación en la cadena de herramientas de entrega de software existente mediante la utilización de las API de CodeDeploy. AWS CodePipeline y algunos socios de AWS ofrecen integraciones de CodeDeploy prediseñadas para ofrecer servicios de integración y entrega continuas (CI/CD), lo que simplifica el despliegue automático de la aplicación actualizada.

Recepción de notificaciones

Puede crear notificaciones para los eventos que afectan en sus implementaciones. Las notificaciones aparecerán como notificaciones de Amazon SNS. Cada notificación incluye un mensaje de estado, así como un enlace a los recursos cuyo evento la generó.