Fundamentos de CodeDeploy y appspec.yml

Automatización de despliegues en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Qué hace CodeDeploy

flujo

  • Publica código en EC2, Lambda o ECS
  • Extrae el artefacto de compilación desde S3, GitHub o Bitbucket
  • Ejecuta tu script de despliegue según los eventos del ciclo de vida
  • Revierte automáticamente si algo falla
Automatización de despliegues en AWS

Componentes clave de CodeDeploy

flujo

  • Aplicación: un nombre que agrupa despliegues
  • Grupo de despliegue: qué destinos reciben la versión
  • Configuración de despliegue: cómo avanza el rollout (lotes de instancias o cambio de tráfico)
  • Revisión: el paquete de artefactos a desplegar
Automatización de despliegues en AWS

Conoce appspec.yml

appspec

  • Archivo YAML en la raíz de la revisión
  • version: 0.0 y os: linux requeridos al inicio
  • Indica a CodeDeploy qué archivos van dónde
  • Indica a CodeDeploy qué ejecutar y cuándo
Automatización de despliegues en AWS

Eventos del ciclo de vida en EC2

  • Tú escribes: ApplicationStop, BeforeInstall, AfterInstall
  • Tú escribes: ApplicationStart, ValidateService
  • El sistema ejecuta: DownloadBundle, Install
  • Cada hook es un script de shell o PowerShell en la instancia

diagrama

Automatización de despliegues en AWS

Eventos del ciclo de vida en Lambda

  • Lambda solo tiene dos hooks: BeforeAllowTraffic y AfterAllowTraffic
  • Los hooks son funciones de Lambda, no scripts de shell
  • CodeDeploy cambia el alias a la nueva versión
  • No hay instancias a las que conectarse ni archivos que copiar

comparación

Automatización de despliegues en AWS

Un appspec.yml real para EC2

  • version: 0.0 y os: linux al inicio
  • files: copia el contenido de app.zip en /var/www/app
  • BeforeInstall, AfterInstall, ApplicationStart: scripts de ciclo de vida
  • ValidateService: smoke test que confirma el éxito

zip

Automatización de despliegues en AWS

¡Vamos a practicar!

Automatización de despliegues en AWS

Preparing Video For Download...