Está en la página 1de 26

Empowering Devops con

Cloudformation y Codedeploy
Claudia Márquez | 2019
El propósito de toda
organización
es generar valor
Para esta generación de
valor, todos trabajamos
en un entorno de
creatividad continua
Para esta generación de
valor, todos trabajamos
en un entorno de
creatividad continua
Sin embargo, muchas veces se trabaja en equipos aislados
Desarrollo Operaciones

● Enfocado a entregar nuevas ● Enfocado en estabilidad


funcionalidades
Generándose confusión y poca visibilidad en los proyectos
...¿por qué el site se cayó?

OPS
DEV

QA
DevOps
¿Por qué DevOps?

96 veces más
entregas frecuentes de software

440 veces más


rápida recuperación ante errores. (MTTR)

46 veces más
plazos más rápidos de ejecución y entrega de cambios. (Lead Time)
¿Qué es DevOps?
● Cultura
● Prácticas
● Herramientas
Cultura
● Eliminación de silos
● Ownership
● Visibilidad y comunicación

“You build it, you run it”


- Werner Vogels
Prácticas
● Integración Continua
● Entrega y despliegues continuos
Prácticas
● Infraestructura como código
Prácticas
● Monitoreo y feedback
Cloudformation
AWS Cloudformation
CI/CD Pipeline para Cloudformation

Source Build Test Deploy

Versionar todo Validar la sintáxis TaskCat permite Desplegar las


- Plantillas (cfn-init) desplegar plantillas plantillas en los
- Parametros Controles de en múltiples distintos ambientes
- Archivos de
negocio / gobierno regiones y obtener
configuración
(cnf_nag) resultados
Alertar a equipos
cuando se produce
un error
CI/CD Pipeline para Cloudformation

Source Build Test Deploy

Stack
TaskCat
cfn-init
cfn_nag

Template
Stack Change set
CodeDeploy
CI/CD Pipeline con CodeDeploy

Source Build Test Deploy

E2E
Testing
CodeDeploy - Rolling Deployments

Elastic Load Balancing

Auto Scaling group

V1 V1 V1 V1 V1 V1 V1 V1 V1 V1
CodeDeploy - Rolling Deployments

Elastic Load Balancing

Auto Scaling group

V2 V2 V2 V2 V2 V2 V2 V2 V2 V2
CodeDeploy - Rolling Deployments

Elastic Load Balancing

Auto Scaling group

V2 V2 V2 V2 V2 V2 V2 V2 V2 V2
Validación de despliegues
● Problema: No hay validaciones automáticas para validar que el sistema
está funcionando correctamente.
● Solución:
○ Validar cada instancia que desplegamos
○ Configurar un porcentaje mínimo en la que la flota debe estar
funcionando correctamente.
○ Rollback si hay fallas.
Validar despliegue - Appspec.yml
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html
hooks:
ApplicationStart:
- location: scripts/start.sh
timeout: 3600
ValidateService:
- location: scripts/validate_service.sh
timeout: 3600
Porcentaje mínimo de instancias
Rollback

También podría gustarte