Integrar IaC en canalizaciones CI/CD

Automatización de despliegues en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Primero el código, la infraestructura después

primero-codigo

  • El código se despliega con CodePipeline; la infraestructura se actualiza a mano
  • Devs escalan Lambda; ops redimensiona la cola SQS
  • La deriva entre código e infra provoca caídas
  • Conecta CloudFormation en la misma canalización
Automatización de despliegues en AWS

CloudFormation como acción en la canalización

accion-canalizacion

  • CodePipeline admite una acción de despliegue de CloudFormation
  • La canalización pasa un artefacto de plantilla a la acción
  • Modos: CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • Se ejecuta junto a acciones de código fuente, build y despliegue de app
Automatización de despliegues en AWS

Una canalización extremo a extremo típica

tipica

  • Origen: un push en Git dispara la canalización
  • Build: genera una plantilla + artefacto de app
  • Desplegar infra: CloudFormation crea o actualiza el stack
  • Desplegar app: CodeDeploy envía la nueva versión
Automatización de despliegues en AWS

Reversión automática si falla el stack

  • Las actualizaciones fallidas se revierten automáticamente al último estado correcto
  • La etapa de la canalización falla y detiene las siguientes
  • Las alertas de fallo del Capítulo 1 se activan automáticamente

automatico

Automatización de despliegues en AWS

Stacks anidados para plantillas modulares

  • Un stack anidado se declara como tipo AWS::CloudFormation::Stack
  • Divide una plantilla de 2.000 líneas en módulos reutilizables
  • El stack padre pasa parámetros y lee salidas
  • Cada módulo se despliega de forma independiente dentro del padre

anidados

Automatización de despliegues en AWS

StackSets para varias cuentas y regiones

  • Un StackSet despliega una plantilla en muchas cuentas y regiones
  • Útil para líneas base de seguridad, guardarraíles, infra compartida
  • Añade o quita instancias de stack sin reescribir la plantilla
  • Gestión centralizada, despliegue local

stackset

Automatización de despliegues en AWS

Elegir la forma adecuada

forma-adecuada

  • Stack único: app pequeña, un entorno
  • Stacks anidados: plantilla grande, componentes modulares
  • StackSets: misma plantilla, muchas cuentas y regiones
  • Los tres encajan bien con CodePipeline
Automatización de despliegues en AWS

¡Vamos a practicar!

Automatización de despliegues en AWS

Preparing Video For Download...